diff --git a/CHANGELOG.md b/CHANGELOG.md index a7311ad3c23..23c119cb8c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,7 +2,7 @@ CHANGELOG ========= ## HEAD (Unreleased) -_(none)_ +* Upgrade to v3.11.0 of the AWS Terraform Provider --- diff --git a/provider/cmd/pulumi-resource-aws/schema.json b/provider/cmd/pulumi-resource-aws/schema.json index 1b31a5fcebf..20f8591b990 100644 --- a/provider/cmd/pulumi-resource-aws/schema.json +++ b/provider/cmd/pulumi-resource-aws/schema.json @@ -5681,6 +5681,323 @@ } } }, + "aws:appmesh/GatewayRouteSpec:GatewayRouteSpec": { + "properties": { + "grpcRoute": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecGrpcRoute:GatewayRouteSpecGrpcRoute", + "description": "The specification of a gRPC gateway route.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "http2Route": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2Route:GatewayRouteSpecHttp2Route", + "description": "The specification of an HTTP/2 gateway route.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "httpRoute": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRoute:GatewayRouteSpecHttpRoute", + "description": "The specification of an HTTP gateway route.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:appmesh/GatewayRouteSpecGrpcRoute:GatewayRouteSpecGrpcRoute": { + "properties": { + "action": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecGrpcRouteAction:GatewayRouteSpecGrpcRouteAction", + "description": "The action to take if a match is determined.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "match": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecGrpcRouteMatch:GatewayRouteSpecGrpcRouteMatch", + "description": "The criteria for determining a request match.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "action", + "match" + ] + }, + "aws:appmesh/GatewayRouteSpecGrpcRouteAction:GatewayRouteSpecGrpcRouteAction": { + "properties": { + "target": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecGrpcRouteActionTarget:GatewayRouteSpecGrpcRouteActionTarget", + "description": "The target that traffic is routed to when a request matches the gateway route.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "target" + ] + }, + "aws:appmesh/GatewayRouteSpecGrpcRouteActionTarget:GatewayRouteSpecGrpcRouteActionTarget": { + "properties": { + "virtualService": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecGrpcRouteActionTargetVirtualService:GatewayRouteSpecGrpcRouteActionTargetVirtualService", + "description": "The virtual service gateway route target.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "virtualService" + ] + }, + "aws:appmesh/GatewayRouteSpecGrpcRouteActionTargetVirtualService:GatewayRouteSpecGrpcRouteActionTargetVirtualService": { + "properties": { + "virtualServiceName": { + "type": "string", + "description": "The name of the virtual service that traffic is routed to.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "virtualServiceName" + ] + }, + "aws:appmesh/GatewayRouteSpecGrpcRouteMatch:GatewayRouteSpecGrpcRouteMatch": { + "properties": { + "serviceName": { + "type": "string", + "description": "The fully qualified domain name for the service to match from the request.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "serviceName" + ] + }, + "aws:appmesh/GatewayRouteSpecHttp2Route:GatewayRouteSpecHttp2Route": { + "properties": { + "action": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2RouteAction:GatewayRouteSpecHttp2RouteAction", + "description": "The action to take if a match is determined.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "match": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2RouteMatch:GatewayRouteSpecHttp2RouteMatch", + "description": "The criteria for determining a request match.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "action", + "match" + ] + }, + "aws:appmesh/GatewayRouteSpecHttp2RouteAction:GatewayRouteSpecHttp2RouteAction": { + "properties": { + "target": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2RouteActionTarget:GatewayRouteSpecHttp2RouteActionTarget", + "description": "The target that traffic is routed to when a request matches the gateway route.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "target" + ] + }, + "aws:appmesh/GatewayRouteSpecHttp2RouteActionTarget:GatewayRouteSpecHttp2RouteActionTarget": { + "properties": { + "virtualService": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttp2RouteActionTargetVirtualService:GatewayRouteSpecHttp2RouteActionTargetVirtualService", + "description": "The virtual service gateway route target.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "virtualService" + ] + }, + "aws:appmesh/GatewayRouteSpecHttp2RouteActionTargetVirtualService:GatewayRouteSpecHttp2RouteActionTargetVirtualService": { + "properties": { + "virtualServiceName": { + "type": "string", + "description": "The name of the virtual service that traffic is routed to.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "virtualServiceName" + ] + }, + "aws:appmesh/GatewayRouteSpecHttp2RouteMatch:GatewayRouteSpecHttp2RouteMatch": { + "properties": { + "prefix": { + "type": "string", + "description": "Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "prefix" + ] + }, + "aws:appmesh/GatewayRouteSpecHttpRoute:GatewayRouteSpecHttpRoute": { + "properties": { + "action": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRouteAction:GatewayRouteSpecHttpRouteAction", + "description": "The action to take if a match is determined.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "match": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRouteMatch:GatewayRouteSpecHttpRouteMatch", + "description": "The criteria for determining a request match.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "action", + "match" + ] + }, + "aws:appmesh/GatewayRouteSpecHttpRouteAction:GatewayRouteSpecHttpRouteAction": { + "properties": { + "target": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRouteActionTarget:GatewayRouteSpecHttpRouteActionTarget", + "description": "The target that traffic is routed to when a request matches the gateway route.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "target" + ] + }, + "aws:appmesh/GatewayRouteSpecHttpRouteActionTarget:GatewayRouteSpecHttpRouteActionTarget": { + "properties": { + "virtualService": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpecHttpRouteActionTargetVirtualService:GatewayRouteSpecHttpRouteActionTargetVirtualService", + "description": "The virtual service gateway route target.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "virtualService" + ] + }, + "aws:appmesh/GatewayRouteSpecHttpRouteActionTargetVirtualService:GatewayRouteSpecHttpRouteActionTargetVirtualService": { + "properties": { + "virtualServiceName": { + "type": "string", + "description": "The name of the virtual service that traffic is routed to.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "virtualServiceName" + ] + }, + "aws:appmesh/GatewayRouteSpecHttpRouteMatch:GatewayRouteSpecHttpRouteMatch": { + "properties": { + "prefix": { + "type": "string", + "description": "Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "prefix" + ] + }, "aws:appmesh/MeshSpec:MeshSpec": { "properties": { "egressFilter": { @@ -7100,6 +7417,471 @@ "value" ] }, + "aws:appmesh/VirtualGatewaySpec:VirtualGatewaySpec": { + "properties": { + "backendDefaults": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecBackendDefaults:VirtualGatewaySpecBackendDefaults", + "description": "The defaults for backends.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "listener": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecListener:VirtualGatewaySpecListener", + "description": "The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "logging": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecLogging:VirtualGatewaySpecLogging", + "description": "The inbound and outbound access logging information for the virtual gateway.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "listener" + ] + }, + "aws:appmesh/VirtualGatewaySpecBackendDefaults:VirtualGatewaySpecBackendDefaults": { + "properties": { + "clientPolicy": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicy:VirtualGatewaySpecBackendDefaultsClientPolicy", + "description": "The default client policy for virtual gateway backends.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicy:VirtualGatewaySpecBackendDefaultsClientPolicy": { + "properties": { + "tls": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTls:VirtualGatewaySpecBackendDefaultsClientPolicyTls", + "description": "The Transport Layer Security (TLS) client policy.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTls:VirtualGatewaySpecBackendDefaultsClientPolicyTls": { + "properties": { + "enforce": { + "type": "boolean", + "language": { + "python": { + "mapCase": false + } + } + }, + "ports": { + "type": "array", + "items": { + "type": "integer" + }, + "description": "One or more ports that the policy is enforced for.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "validation": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation", + "description": "The TLS validation context.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "validation" + ] + }, + "aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation": { + "properties": { + "trust": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust", + "description": "The TLS validation context trust.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "trust" + ] + }, + "aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust": { + "properties": { + "acm": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm", + "description": "The TLS validation context trust for an AWS Certificate Manager (ACM) certificate.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "file": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile", + "description": "The TLS validation context trust for a local file.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm": { + "properties": { + "certificateAuthorityArns": { + "type": "array", + "items": { + "type": "string" + }, + "description": "One or more ACM Amazon Resource Name (ARN)s.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "certificateAuthorityArns" + ] + }, + "aws:appmesh/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile:VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile": { + "properties": { + "certificateChain": { + "type": "string", + "description": "The certificate chain for the certificate.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "certificateChain" + ] + }, + "aws:appmesh/VirtualGatewaySpecListener:VirtualGatewaySpecListener": { + "properties": { + "healthCheck": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecListenerHealthCheck:VirtualGatewaySpecListenerHealthCheck", + "description": "The health check information for the listener.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "portMapping": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecListenerPortMapping:VirtualGatewaySpecListenerPortMapping", + "description": "The port mapping information for the listener.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "tls": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecListenerTls:VirtualGatewaySpecListenerTls", + "description": "The Transport Layer Security (TLS) properties for the listener\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "portMapping" + ] + }, + "aws:appmesh/VirtualGatewaySpecListenerHealthCheck:VirtualGatewaySpecListenerHealthCheck": { + "properties": { + "healthyThreshold": { + "type": "integer", + "description": "The number of consecutive successful health checks that must occur before declaring listener healthy.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "intervalMillis": { + "type": "integer", + "description": "The time period in milliseconds between each health check execution.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "path": { + "type": "string", + "description": "The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "port": { + "type": "integer", + "description": "The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "protocol": { + "type": "string", + "description": "The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "timeoutMillis": { + "type": "integer", + "description": "The amount of time to wait when receiving a response from the health check, in milliseconds.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "unhealthyThreshold": { + "type": "integer", + "description": "The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "healthyThreshold", + "intervalMillis", + "protocol", + "timeoutMillis", + "unhealthyThreshold" + ], + "language": { + "nodejs": { + "requiredOutputs": [ + "healthyThreshold", + "intervalMillis", + "port", + "protocol", + "timeoutMillis", + "unhealthyThreshold" + ] + } + } + }, + "aws:appmesh/VirtualGatewaySpecListenerPortMapping:VirtualGatewaySpecListenerPortMapping": { + "properties": { + "port": { + "type": "integer", + "description": "The port used for the port mapping.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "protocol": { + "type": "string", + "description": "The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "port", + "protocol" + ] + }, + "aws:appmesh/VirtualGatewaySpecListenerTls:VirtualGatewaySpecListenerTls": { + "properties": { + "certificate": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecListenerTlsCertificate:VirtualGatewaySpecListenerTlsCertificate", + "description": "The listener's TLS certificate.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "mode": { + "type": "string", + "description": "The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "certificate", + "mode" + ] + }, + "aws:appmesh/VirtualGatewaySpecListenerTlsCertificate:VirtualGatewaySpecListenerTlsCertificate": { + "properties": { + "acm": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecListenerTlsCertificateAcm:VirtualGatewaySpecListenerTlsCertificateAcm", + "description": "An AWS Certificate Manager (ACM) certificate.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "file": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecListenerTlsCertificateFile:VirtualGatewaySpecListenerTlsCertificateFile", + "description": "A local file certificate.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:appmesh/VirtualGatewaySpecListenerTlsCertificateAcm:VirtualGatewaySpecListenerTlsCertificateAcm": { + "properties": { + "certificateArn": { + "type": "string", + "description": "The Amazon Resource Name (ARN) for the certificate.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "certificateArn" + ] + }, + "aws:appmesh/VirtualGatewaySpecListenerTlsCertificateFile:VirtualGatewaySpecListenerTlsCertificateFile": { + "properties": { + "certificateChain": { + "type": "string", + "description": "The certificate chain for the certificate.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "privateKey": { + "type": "string", + "description": "The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "certificateChain", + "privateKey" + ] + }, + "aws:appmesh/VirtualGatewaySpecLogging:VirtualGatewaySpecLogging": { + "properties": { + "accessLog": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecLoggingAccessLog:VirtualGatewaySpecLoggingAccessLog", + "description": "The access log configuration for a virtual gateway.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:appmesh/VirtualGatewaySpecLoggingAccessLog:VirtualGatewaySpecLoggingAccessLog": { + "properties": { + "file": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpecLoggingAccessLogFile:VirtualGatewaySpecLoggingAccessLogFile", + "description": "The file object to send virtual gateway access logs to.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, + "aws:appmesh/VirtualGatewaySpecLoggingAccessLogFile:VirtualGatewaySpecLoggingAccessLogFile": { + "properties": { + "path": { + "type": "string", + "description": "The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "path" + ] + }, "aws:appmesh/VirtualNodeSpec:VirtualNodeSpec": { "properties": { "backendDefaults": { @@ -9414,6 +10196,32 @@ "predefinedMetricType" ] }, + "aws:backup/PlanAdvancedBackupSetting:PlanAdvancedBackupSetting": { + "properties": { + "backupOptions": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = \"enabled\" }` to enable Windows VSS backup option and create a VSS Windows backup.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "resourceType": { + "type": "string", + "description": "The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "aws:backup/PlanRule:PlanRule": { "properties": { "completionWindow": { @@ -15081,6 +15889,9 @@ "s3control": { "type": "string" }, + "s3outposts": { + "type": "string" + }, "sagemaker": { "type": "string" }, @@ -36559,6 +37370,14 @@ } } }, + "s3outposts": { + "type": "string", + "language": { + "python": { + "mapCase": false + } + } + }, "sagemaker": { "type": "string", "language": { @@ -83533,7 +84352,7 @@ "properties": { "name": { "type": "string", - "description": "The name of the rule to exclude.\n", + "description": "The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use.\n", "language": { "python": { "mapCase": false @@ -127895,7 +128714,7 @@ "properties": { "name": { "type": "string", - "description": "The name of the rule to exclude.\n", + "description": "The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use.\n", "language": { "python": { "mapCase": false @@ -128663,6 +129482,56 @@ }, "type": "object" }, + "aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties": { + "properties": { + "customSecurityGroupId": { + "type": "string", + "description": "The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "defaultOu": { + "type": "string", + "description": "The default organizational unit (OU) for your WorkSpace directories. Should conform `\"OU=\u003cvalue\u003e,DC=\u003cvalue\u003e,...,DC=\u003cvalue\u003e\"` pattern.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "enableInternetAccess": { + "type": "boolean", + "description": "Indicates whether internet access is enabled for your WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "enableMaintenanceMode": { + "type": "boolean", + "description": "Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html)..\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "userEnabledAsLocalAdministrator": { + "type": "boolean", + "description": "Indicates whether users are local administrators of their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object" + }, "aws:workspaces/IpGroupRule:IpGroupRule": { "properties": { "description": { @@ -128873,6 +129742,64 @@ "requiredInputs": [] } } + }, + "aws:workspaces/getDirectoryWorkspaceCreationProperties:getDirectoryWorkspaceCreationProperties": { + "properties": { + "customSecurityGroupId": { + "type": "string", + "description": "The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "defaultOu": { + "type": "string", + "description": "The default organizational unit (OU) for your WorkSpace directories.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "enableInternetAccess": { + "type": "boolean", + "description": "Indicates whether internet access is enabled for your WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "enableMaintenanceMode": { + "type": "boolean", + "description": "Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).\n", + "language": { + "python": { + "mapCase": false + } + } + }, + "userEnabledAsLocalAdministrator": { + "type": "boolean", + "description": "Indicates whether users are local administrators of their WorkSpaces.\n", + "language": { + "python": { + "mapCase": false + } + } + } + }, + "type": "object", + "required": [ + "customSecurityGroupId" + ], + "language": { + "nodejs": { + "requiredInputs": [] + } + } } }, "provider": { @@ -134320,7 +135247,7 @@ }, "routeKey": { "type": "string", - "description": "The route key for the route.\n" + "description": "The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`.\n" }, "routeResponseSelectionExpression": { "type": "string", @@ -134376,7 +135303,7 @@ }, "routeKey": { "type": "string", - "description": "The route key for the route.\n" + "description": "The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`.\n" }, "routeResponseSelectionExpression": { "type": "string", @@ -134434,7 +135361,7 @@ }, "routeKey": { "type": "string", - "description": "The route key for the route.\n" + "description": "The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`.\n" }, "routeResponseSelectionExpression": { "type": "string", @@ -136042,6 +136969,148 @@ }, "deprecationMessage": "aws.applicationloadbalancing.TargetGroupAttachment has been deprecated in favor of aws.alb.TargetGroupAttachment" }, + "aws:appmesh/gatewayRoute:GatewayRoute": { + "description": "Provides an AWS App Mesh gateway route resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.appmesh.GatewayRoute(\"example\", {\n meshName: \"example-service-mesh\",\n virtualGatewayName: aws_appmesh_virtual_gateway.example.name,\n spec: {\n httpRoute: {\n action: {\n target: {\n virtualService: {\n virtualServiceName: aws_appmesh_virtual_service.example.name,\n },\n },\n },\n match: {\n prefix: \"/\",\n },\n },\n },\n tags: {\n Environment: \"test\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.appmesh.GatewayRoute(\"example\",\n mesh_name=\"example-service-mesh\",\n virtual_gateway_name=aws_appmesh_virtual_gateway[\"example\"][\"name\"],\n spec=aws.appmesh.GatewayRouteSpecArgs(\n http_route=aws.appmesh.GatewayRouteSpecHttpRouteArgs(\n action=aws.appmesh.GatewayRouteSpecHttpRouteActionArgs(\n target=aws.appmesh.GatewayRouteSpecHttpRouteActionTargetArgs(\n virtual_service=aws.appmesh.GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs(\n virtual_service_name=aws_appmesh_virtual_service[\"example\"][\"name\"],\n ),\n ),\n ),\n match=aws.appmesh.GatewayRouteSpecHttpRouteMatchArgs(\n prefix=\"/\",\n ),\n ),\n ),\n tags={\n \"Environment\": \"test\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.AppMesh.GatewayRoute(\"example\", new Aws.AppMesh.GatewayRouteArgs\n {\n MeshName = \"example-service-mesh\",\n VirtualGatewayName = aws_appmesh_virtual_gateway.Example.Name,\n Spec = new Aws.AppMesh.Inputs.GatewayRouteSpecArgs\n {\n HttpRoute = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteArgs\n {\n Action = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteActionArgs\n {\n Target = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteActionTargetArgs\n {\n VirtualService = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs\n {\n VirtualServiceName = aws_appmesh_virtual_service.Example.Name,\n },\n },\n },\n Match = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteMatchArgs\n {\n Prefix = \"/\",\n },\n },\n },\n Tags = \n {\n { \"Environment\", \"test\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewGatewayRoute(ctx, \"example\", \u0026appmesh.GatewayRouteArgs{\n\t\t\tMeshName: pulumi.String(\"example-service-mesh\"),\n\t\t\tVirtualGatewayName: pulumi.Any(aws_appmesh_virtual_gateway.Example.Name),\n\t\t\tSpec: \u0026appmesh.GatewayRouteSpecArgs{\n\t\t\t\tHttpRoute: \u0026appmesh.GatewayRouteSpecHttpRouteArgs{\n\t\t\t\t\tAction: \u0026appmesh.GatewayRouteSpecHttpRouteActionArgs{\n\t\t\t\t\t\tTarget: \u0026appmesh.GatewayRouteSpecHttpRouteActionTargetArgs{\n\t\t\t\t\t\t\tVirtualService: \u0026appmesh.GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs{\n\t\t\t\t\t\t\t\tVirtualServiceName: pulumi.Any(aws_appmesh_virtual_service.Example.Name),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\tMatch: \u0026appmesh.GatewayRouteSpecHttpRouteMatchArgs{\n\t\t\t\t\t\tPrefix: pulumi.String(\"/\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the gateway route.\n" + }, + "createdDate": { + "type": "string", + "description": "The creation date of the gateway route.\n" + }, + "lastUpdatedDate": { + "type": "string", + "description": "The last update date of the gateway route.\n" + }, + "meshName": { + "type": "string", + "description": "The name of the service mesh in which to create the gateway route.\n" + }, + "meshOwner": { + "type": "string", + "description": "The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to.\n" + }, + "name": { + "type": "string", + "description": "The name to use for the gateway route.\n" + }, + "resourceOwner": { + "type": "string", + "description": "The resource owner's AWS account ID.\n" + }, + "spec": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpec:GatewayRouteSpec", + "description": "The gateway route specification to apply.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + }, + "virtualGatewayName": { + "type": "string", + "description": "The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with.\n" + } + }, + "required": [ + "arn", + "createdDate", + "lastUpdatedDate", + "meshName", + "meshOwner", + "name", + "resourceOwner", + "spec", + "virtualGatewayName" + ], + "inputProperties": { + "meshName": { + "type": "string", + "description": "The name of the service mesh in which to create the gateway route.\n" + }, + "meshOwner": { + "type": "string", + "description": "The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to.\n" + }, + "name": { + "type": "string", + "description": "The name to use for the gateway route.\n" + }, + "spec": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpec:GatewayRouteSpec", + "description": "The gateway route specification to apply.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + }, + "virtualGatewayName": { + "type": "string", + "description": "The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with.\n" + } + }, + "requiredInputs": [ + "meshName", + "spec", + "virtualGatewayName" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering GatewayRoute resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the gateway route.\n" + }, + "createdDate": { + "type": "string", + "description": "The creation date of the gateway route.\n" + }, + "lastUpdatedDate": { + "type": "string", + "description": "The last update date of the gateway route.\n" + }, + "meshName": { + "type": "string", + "description": "The name of the service mesh in which to create the gateway route.\n" + }, + "meshOwner": { + "type": "string", + "description": "The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to.\n" + }, + "name": { + "type": "string", + "description": "The name to use for the gateway route.\n" + }, + "resourceOwner": { + "type": "string", + "description": "The resource owner's AWS account ID.\n" + }, + "spec": { + "$ref": "#/types/aws:appmesh/GatewayRouteSpec:GatewayRouteSpec", + "description": "The gateway route specification to apply.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + }, + "virtualGatewayName": { + "type": "string", + "description": "The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with.\n" + } + }, + "type": "object" + } + }, "aws:appmesh/mesh:Mesh": { "description": "Provides an AWS App Mesh service mesh resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst simple = new aws.appmesh.Mesh(\"simple\", {});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nsimple = aws.appmesh.Mesh(\"simple\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var simple = new Aws.AppMesh.Mesh(\"simple\", new Aws.AppMesh.MeshArgs\n {\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewMesh(ctx, \"simple\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### Egress Filter\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst simple = new aws.appmesh.Mesh(\"simple\", {\n spec: {\n egressFilter: {\n type: \"ALLOW_ALL\",\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nsimple = aws.appmesh.Mesh(\"simple\", spec=aws.appmesh.MeshSpecArgs(\n egress_filter=aws.appmesh.MeshSpecEgressFilterArgs(\n type=\"ALLOW_ALL\",\n ),\n))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var simple = new Aws.AppMesh.Mesh(\"simple\", new Aws.AppMesh.MeshArgs\n {\n Spec = new Aws.AppMesh.Inputs.MeshSpecArgs\n {\n EgressFilter = new Aws.AppMesh.Inputs.MeshSpecEgressFilterArgs\n {\n Type = \"ALLOW_ALL\",\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewMesh(ctx, \"simple\", \u0026appmesh.MeshArgs{\n\t\t\tSpec: \u0026appmesh.MeshSpecArgs{\n\t\t\t\tEgressFilter: \u0026appmesh.MeshSpecEgressFilterArgs{\n\t\t\t\t\tType: pulumi.String(\"ALLOW_ALL\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { @@ -136290,6 +137359,134 @@ "type": "object" } }, + "aws:appmesh/virtualGateway:VirtualGateway": { + "description": "Provides an AWS App Mesh virtual gateway resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.appmesh.VirtualGateway(\"example\", {\n meshName: \"example-service-mesh\",\n spec: {\n listener: {\n portMapping: {\n port: 8080,\n protocol: \"http\",\n },\n },\n },\n tags: {\n Environment: \"test\",\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.appmesh.VirtualGateway(\"example\",\n mesh_name=\"example-service-mesh\",\n spec=aws.appmesh.VirtualGatewaySpecArgs(\n listener=aws.appmesh.VirtualGatewaySpecListenerArgs(\n port_mapping=aws.appmesh.VirtualGatewaySpecListenerPortMappingArgs(\n port=8080,\n protocol=\"http\",\n ),\n ),\n ),\n tags={\n \"Environment\": \"test\",\n })\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.AppMesh.VirtualGateway(\"example\", new Aws.AppMesh.VirtualGatewayArgs\n {\n MeshName = \"example-service-mesh\",\n Spec = new Aws.AppMesh.Inputs.VirtualGatewaySpecArgs\n {\n Listener = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerArgs\n {\n PortMapping = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerPortMappingArgs\n {\n Port = 8080,\n Protocol = \"http\",\n },\n },\n },\n Tags = \n {\n { \"Environment\", \"test\" },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewVirtualGateway(ctx, \"example\", \u0026appmesh.VirtualGatewayArgs{\n\t\t\tMeshName: pulumi.String(\"example-service-mesh\"),\n\t\t\tSpec: \u0026appmesh.VirtualGatewaySpecArgs{\n\t\t\t\tListener: \u0026appmesh.VirtualGatewaySpecListenerArgs{\n\t\t\t\t\tPortMapping: \u0026appmesh.VirtualGatewaySpecListenerPortMappingArgs{\n\t\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\t\tProtocol: pulumi.String(\"http\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Environment\": pulumi.String(\"test\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### Access Logs and TLS\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.appmesh.VirtualGateway(\"example\", {\n meshName: \"example-service-mesh\",\n spec: {\n listener: {\n portMapping: {\n port: 8080,\n protocol: \"http\",\n },\n tls: {\n certificate: {\n acm: {\n certificateArn: aws_acm_certificate.example.arn,\n },\n },\n mode: \"STRICT\",\n },\n },\n logging: {\n accessLog: {\n file: {\n path: \"/var/log/access.log\",\n },\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.appmesh.VirtualGateway(\"example\",\n mesh_name=\"example-service-mesh\",\n spec=aws.appmesh.VirtualGatewaySpecArgs(\n listener=aws.appmesh.VirtualGatewaySpecListenerArgs(\n port_mapping=aws.appmesh.VirtualGatewaySpecListenerPortMappingArgs(\n port=8080,\n protocol=\"http\",\n ),\n tls=aws.appmesh.VirtualGatewaySpecListenerTlsArgs(\n certificate=aws.appmesh.VirtualGatewaySpecListenerTlsCertificateArgs(\n acm=aws.appmesh.VirtualGatewaySpecListenerTlsCertificateAcmArgs(\n certificate_arn=aws_acm_certificate[\"example\"][\"arn\"],\n ),\n ),\n mode=\"STRICT\",\n ),\n ),\n logging=aws.appmesh.VirtualGatewaySpecLoggingArgs(\n access_log=aws.appmesh.VirtualGatewaySpecLoggingAccessLogArgs(\n file=aws.appmesh.VirtualGatewaySpecLoggingAccessLogFileArgs(\n path=\"/var/log/access.log\",\n ),\n ),\n ),\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.AppMesh.VirtualGateway(\"example\", new Aws.AppMesh.VirtualGatewayArgs\n {\n MeshName = \"example-service-mesh\",\n Spec = new Aws.AppMesh.Inputs.VirtualGatewaySpecArgs\n {\n Listener = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerArgs\n {\n PortMapping = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerPortMappingArgs\n {\n Port = 8080,\n Protocol = \"http\",\n },\n Tls = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerTlsArgs\n {\n Certificate = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerTlsCertificateArgs\n {\n Acm = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerTlsCertificateAcmArgs\n {\n CertificateArn = aws_acm_certificate.Example.Arn,\n },\n },\n Mode = \"STRICT\",\n },\n },\n Logging = new Aws.AppMesh.Inputs.VirtualGatewaySpecLoggingArgs\n {\n AccessLog = new Aws.AppMesh.Inputs.VirtualGatewaySpecLoggingAccessLogArgs\n {\n File = new Aws.AppMesh.Inputs.VirtualGatewaySpecLoggingAccessLogFileArgs\n {\n Path = \"/var/log/access.log\",\n },\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewVirtualGateway(ctx, \"example\", \u0026appmesh.VirtualGatewayArgs{\n\t\t\tMeshName: pulumi.String(\"example-service-mesh\"),\n\t\t\tSpec: \u0026appmesh.VirtualGatewaySpecArgs{\n\t\t\t\tListener: \u0026appmesh.VirtualGatewaySpecListenerArgs{\n\t\t\t\t\tPortMapping: \u0026appmesh.VirtualGatewaySpecListenerPortMappingArgs{\n\t\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\t\tProtocol: pulumi.String(\"http\"),\n\t\t\t\t\t},\n\t\t\t\t\tTls: \u0026appmesh.VirtualGatewaySpecListenerTlsArgs{\n\t\t\t\t\t\tCertificate: \u0026appmesh.VirtualGatewaySpecListenerTlsCertificateArgs{\n\t\t\t\t\t\t\tAcm: \u0026appmesh.VirtualGatewaySpecListenerTlsCertificateAcmArgs{\n\t\t\t\t\t\t\t\tCertificateArn: pulumi.Any(aws_acm_certificate.Example.Arn),\n\t\t\t\t\t\t\t},\n\t\t\t\t\t\t},\n\t\t\t\t\t\tMode: pulumi.String(\"STRICT\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tLogging: \u0026appmesh.VirtualGatewaySpecLoggingArgs{\n\t\t\t\t\tAccessLog: \u0026appmesh.VirtualGatewaySpecLoggingAccessLogArgs{\n\t\t\t\t\t\tFile: \u0026appmesh.VirtualGatewaySpecLoggingAccessLogFileArgs{\n\t\t\t\t\t\t\tPath: pulumi.String(\"/var/log/access.log\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the virtual gateway.\n" + }, + "createdDate": { + "type": "string", + "description": "The creation date of the virtual gateway.\n" + }, + "lastUpdatedDate": { + "type": "string", + "description": "The last update date of the virtual gateway.\n" + }, + "meshName": { + "type": "string", + "description": "The name of the service mesh in which to create the virtual gateway.\n" + }, + "meshOwner": { + "type": "string", + "description": "The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to.\n" + }, + "name": { + "type": "string", + "description": "The name to use for the virtual gateway.\n" + }, + "resourceOwner": { + "type": "string", + "description": "The resource owner's AWS account ID.\n" + }, + "spec": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpec:VirtualGatewaySpec", + "description": "The virtual gateway specification to apply.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + } + }, + "required": [ + "arn", + "createdDate", + "lastUpdatedDate", + "meshName", + "meshOwner", + "name", + "resourceOwner", + "spec" + ], + "inputProperties": { + "meshName": { + "type": "string", + "description": "The name of the service mesh in which to create the virtual gateway.\n" + }, + "meshOwner": { + "type": "string", + "description": "The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to.\n" + }, + "name": { + "type": "string", + "description": "The name to use for the virtual gateway.\n" + }, + "spec": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpec:VirtualGatewaySpec", + "description": "The virtual gateway specification to apply.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + } + }, + "requiredInputs": [ + "meshName", + "spec" + ], + "stateInputs": { + "description": "Input properties used for looking up and filtering VirtualGateway resources.\n", + "properties": { + "arn": { + "type": "string", + "description": "The ARN of the virtual gateway.\n" + }, + "createdDate": { + "type": "string", + "description": "The creation date of the virtual gateway.\n" + }, + "lastUpdatedDate": { + "type": "string", + "description": "The last update date of the virtual gateway.\n" + }, + "meshName": { + "type": "string", + "description": "The name of the service mesh in which to create the virtual gateway.\n" + }, + "meshOwner": { + "type": "string", + "description": "The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to.\n" + }, + "name": { + "type": "string", + "description": "The name to use for the virtual gateway.\n" + }, + "resourceOwner": { + "type": "string", + "description": "The resource owner's AWS account ID.\n" + }, + "spec": { + "$ref": "#/types/aws:appmesh/VirtualGatewaySpec:VirtualGatewaySpec", + "description": "The virtual gateway specification to apply.\n" + }, + "tags": { + "type": "object", + "additionalProperties": { + "type": "string" + }, + "description": "A map of tags to assign to the resource.\n" + } + }, + "type": "object" + } + }, "aws:appmesh/virtualNode:VirtualNode": { "description": "Provides an AWS App Mesh virtual node resource.\n\n## Breaking Changes\n\nBecause of backward incompatible API changes (read [here](https://github.com/awslabs/aws-app-mesh-examples/issues/92)), `aws.appmesh.VirtualNode` resource definitions created with provider versions earlier than v2.3.0 will need to be modified:\n\n* Rename the `service_name` attribute of the `dns` object to `hostname`.\n\n* Replace the `backends` attribute of the `spec` object with one or more `backend` configuration blocks,\nsetting `virtual_service_name` to the name of the service.\n\nThe state associated with existing resources will automatically be migrated.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n### Basic\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst serviceb1 = new aws.appmesh.VirtualNode(\"serviceb1\", {\n meshName: aws_appmesh_mesh.simple.id,\n spec: {\n backends: [{\n virtualService: {\n virtualServiceName: \"servicea.simpleapp.local\",\n },\n }],\n listener: {\n portMapping: {\n port: 8080,\n protocol: \"http\",\n },\n },\n serviceDiscovery: {\n dns: {\n hostname: \"serviceb.simpleapp.local\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nserviceb1 = aws.appmesh.VirtualNode(\"serviceb1\",\n mesh_name=aws_appmesh_mesh[\"simple\"][\"id\"],\n spec=aws.appmesh.VirtualNodeSpecArgs(\n backends=[aws.appmesh.VirtualNodeSpecBackendArgs(\n virtual_service=aws.appmesh.VirtualNodeSpecBackendVirtualServiceArgs(\n virtual_service_name=\"servicea.simpleapp.local\",\n ),\n )],\n listener=aws.appmesh.VirtualNodeSpecListenerArgs(\n port_mapping=aws.appmesh.VirtualNodeSpecListenerPortMappingArgs(\n port=8080,\n protocol=\"http\",\n ),\n ),\n service_discovery=aws.appmesh.VirtualNodeSpecServiceDiscoveryArgs(\n dns=aws.appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs(\n hostname=\"serviceb.simpleapp.local\",\n ),\n ),\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var serviceb1 = new Aws.AppMesh.VirtualNode(\"serviceb1\", new Aws.AppMesh.VirtualNodeArgs\n {\n MeshName = aws_appmesh_mesh.Simple.Id,\n Spec = new Aws.AppMesh.Inputs.VirtualNodeSpecArgs\n {\n Backends = \n {\n new Aws.AppMesh.Inputs.VirtualNodeSpecBackendArgs\n {\n VirtualService = new Aws.AppMesh.Inputs.VirtualNodeSpecBackendVirtualServiceArgs\n {\n VirtualServiceName = \"servicea.simpleapp.local\",\n },\n },\n },\n Listener = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerArgs\n {\n PortMapping = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerPortMappingArgs\n {\n Port = 8080,\n Protocol = \"http\",\n },\n },\n ServiceDiscovery = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryArgs\n {\n Dns = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryDnsArgs\n {\n Hostname = \"serviceb.simpleapp.local\",\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewVirtualNode(ctx, \"serviceb1\", \u0026appmesh.VirtualNodeArgs{\n\t\t\tMeshName: pulumi.Any(aws_appmesh_mesh.Simple.Id),\n\t\t\tSpec: \u0026appmesh.VirtualNodeSpecArgs{\n\t\t\t\tBackends: appmesh.VirtualNodeSpecBackendArray{\n\t\t\t\t\t\u0026appmesh.VirtualNodeSpecBackendArgs{\n\t\t\t\t\t\tVirtualService: \u0026appmesh.VirtualNodeSpecBackendVirtualServiceArgs{\n\t\t\t\t\t\t\tVirtualServiceName: pulumi.String(\"servicea.simpleapp.local\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tListener: \u0026appmesh.VirtualNodeSpecListenerArgs{\n\t\t\t\t\tPortMapping: \u0026appmesh.VirtualNodeSpecListenerPortMappingArgs{\n\t\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\t\tProtocol: pulumi.String(\"http\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tServiceDiscovery: \u0026appmesh.VirtualNodeSpecServiceDiscoveryArgs{\n\t\t\t\t\tDns: \u0026appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs{\n\t\t\t\t\t\tHostname: pulumi.String(\"serviceb.simpleapp.local\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### AWS Cloud Map Service Discovery\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.servicediscovery.HttpNamespace(\"example\", {});\nconst serviceb1 = new aws.appmesh.VirtualNode(\"serviceb1\", {\n meshName: aws_appmesh_mesh.simple.id,\n spec: {\n backends: [{\n virtualService: {\n virtualServiceName: \"servicea.simpleapp.local\",\n },\n }],\n listener: {\n portMapping: {\n port: 8080,\n protocol: \"http\",\n },\n },\n serviceDiscovery: {\n awsCloudMap: {\n attributes: {\n stack: \"blue\",\n },\n serviceName: \"serviceb1\",\n namespaceName: example.name,\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.servicediscovery.HttpNamespace(\"example\")\nserviceb1 = aws.appmesh.VirtualNode(\"serviceb1\",\n mesh_name=aws_appmesh_mesh[\"simple\"][\"id\"],\n spec=aws.appmesh.VirtualNodeSpecArgs(\n backends=[aws.appmesh.VirtualNodeSpecBackendArgs(\n virtual_service=aws.appmesh.VirtualNodeSpecBackendVirtualServiceArgs(\n virtual_service_name=\"servicea.simpleapp.local\",\n ),\n )],\n listener=aws.appmesh.VirtualNodeSpecListenerArgs(\n port_mapping=aws.appmesh.VirtualNodeSpecListenerPortMappingArgs(\n port=8080,\n protocol=\"http\",\n ),\n ),\n service_discovery=aws.appmesh.VirtualNodeSpecServiceDiscoveryArgs(\n aws_cloud_map=aws.appmesh.VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs(\n attributes={\n \"stack\": \"blue\",\n },\n service_name=\"serviceb1\",\n namespace_name=example.name,\n ),\n ),\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.ServiceDiscovery.HttpNamespace(\"example\", new Aws.ServiceDiscovery.HttpNamespaceArgs\n {\n });\n var serviceb1 = new Aws.AppMesh.VirtualNode(\"serviceb1\", new Aws.AppMesh.VirtualNodeArgs\n {\n MeshName = aws_appmesh_mesh.Simple.Id,\n Spec = new Aws.AppMesh.Inputs.VirtualNodeSpecArgs\n {\n Backends = \n {\n new Aws.AppMesh.Inputs.VirtualNodeSpecBackendArgs\n {\n VirtualService = new Aws.AppMesh.Inputs.VirtualNodeSpecBackendVirtualServiceArgs\n {\n VirtualServiceName = \"servicea.simpleapp.local\",\n },\n },\n },\n Listener = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerArgs\n {\n PortMapping = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerPortMappingArgs\n {\n Port = 8080,\n Protocol = \"http\",\n },\n },\n ServiceDiscovery = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryArgs\n {\n AwsCloudMap = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs\n {\n Attributes = \n {\n { \"stack\", \"blue\" },\n },\n ServiceName = \"serviceb1\",\n NamespaceName = example.Name,\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/servicediscovery\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texample, err := servicediscovery.NewHttpNamespace(ctx, \"example\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = appmesh.NewVirtualNode(ctx, \"serviceb1\", \u0026appmesh.VirtualNodeArgs{\n\t\t\tMeshName: pulumi.Any(aws_appmesh_mesh.Simple.Id),\n\t\t\tSpec: \u0026appmesh.VirtualNodeSpecArgs{\n\t\t\t\tBackends: appmesh.VirtualNodeSpecBackendArray{\n\t\t\t\t\t\u0026appmesh.VirtualNodeSpecBackendArgs{\n\t\t\t\t\t\tVirtualService: \u0026appmesh.VirtualNodeSpecBackendVirtualServiceArgs{\n\t\t\t\t\t\t\tVirtualServiceName: pulumi.String(\"servicea.simpleapp.local\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tListener: \u0026appmesh.VirtualNodeSpecListenerArgs{\n\t\t\t\t\tPortMapping: \u0026appmesh.VirtualNodeSpecListenerPortMappingArgs{\n\t\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\t\tProtocol: pulumi.String(\"http\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tServiceDiscovery: \u0026appmesh.VirtualNodeSpecServiceDiscoveryArgs{\n\t\t\t\t\tAwsCloudMap: \u0026appmesh.VirtualNodeSpecServiceDiscoveryAwsCloudMapArgs{\n\t\t\t\t\t\tAttributes: pulumi.StringMap{\n\t\t\t\t\t\t\t\"stack\": pulumi.String(\"blue\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t\tServiceName: pulumi.String(\"serviceb1\"),\n\t\t\t\t\t\tNamespaceName: example.Name,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### Listener Health Check\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst serviceb1 = new aws.appmesh.VirtualNode(\"serviceb1\", {\n meshName: aws_appmesh_mesh.simple.id,\n spec: {\n backends: [{\n virtualService: {\n virtualServiceName: \"servicea.simpleapp.local\",\n },\n }],\n listener: {\n portMapping: {\n port: 8080,\n protocol: \"http\",\n },\n healthCheck: {\n protocol: \"http\",\n path: \"/ping\",\n healthyThreshold: 2,\n unhealthyThreshold: 2,\n timeoutMillis: 2000,\n intervalMillis: 5000,\n },\n },\n serviceDiscovery: {\n dns: {\n hostname: \"serviceb.simpleapp.local\",\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nserviceb1 = aws.appmesh.VirtualNode(\"serviceb1\",\n mesh_name=aws_appmesh_mesh[\"simple\"][\"id\"],\n spec=aws.appmesh.VirtualNodeSpecArgs(\n backends=[aws.appmesh.VirtualNodeSpecBackendArgs(\n virtual_service=aws.appmesh.VirtualNodeSpecBackendVirtualServiceArgs(\n virtual_service_name=\"servicea.simpleapp.local\",\n ),\n )],\n listener=aws.appmesh.VirtualNodeSpecListenerArgs(\n port_mapping=aws.appmesh.VirtualNodeSpecListenerPortMappingArgs(\n port=8080,\n protocol=\"http\",\n ),\n health_check={\n \"protocol\": \"http\",\n \"path\": \"/ping\",\n \"healthyThreshold\": 2,\n \"unhealthyThreshold\": 2,\n \"timeoutMillis\": 2000,\n \"intervalMillis\": 5000,\n },\n ),\n service_discovery=aws.appmesh.VirtualNodeSpecServiceDiscoveryArgs(\n dns=aws.appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs(\n hostname=\"serviceb.simpleapp.local\",\n ),\n ),\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var serviceb1 = new Aws.AppMesh.VirtualNode(\"serviceb1\", new Aws.AppMesh.VirtualNodeArgs\n {\n MeshName = aws_appmesh_mesh.Simple.Id,\n Spec = new Aws.AppMesh.Inputs.VirtualNodeSpecArgs\n {\n Backends = \n {\n new Aws.AppMesh.Inputs.VirtualNodeSpecBackendArgs\n {\n VirtualService = new Aws.AppMesh.Inputs.VirtualNodeSpecBackendVirtualServiceArgs\n {\n VirtualServiceName = \"servicea.simpleapp.local\",\n },\n },\n },\n Listener = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerArgs\n {\n PortMapping = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerPortMappingArgs\n {\n Port = 8080,\n Protocol = \"http\",\n },\n HealthCheck = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerHealthCheckArgs\n {\n Protocol = \"http\",\n Path = \"/ping\",\n HealthyThreshold = 2,\n UnhealthyThreshold = 2,\n TimeoutMillis = 2000,\n IntervalMillis = 5000,\n },\n },\n ServiceDiscovery = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryArgs\n {\n Dns = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryDnsArgs\n {\n Hostname = \"serviceb.simpleapp.local\",\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewVirtualNode(ctx, \"serviceb1\", \u0026appmesh.VirtualNodeArgs{\n\t\t\tMeshName: pulumi.Any(aws_appmesh_mesh.Simple.Id),\n\t\t\tSpec: \u0026appmesh.VirtualNodeSpecArgs{\n\t\t\t\tBackends: appmesh.VirtualNodeSpecBackendArray{\n\t\t\t\t\t\u0026appmesh.VirtualNodeSpecBackendArgs{\n\t\t\t\t\t\tVirtualService: \u0026appmesh.VirtualNodeSpecBackendVirtualServiceArgs{\n\t\t\t\t\t\t\tVirtualServiceName: pulumi.String(\"servicea.simpleapp.local\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tListener: \u0026appmesh.VirtualNodeSpecListenerArgs{\n\t\t\t\t\tPortMapping: \u0026appmesh.VirtualNodeSpecListenerPortMappingArgs{\n\t\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\t\tProtocol: pulumi.String(\"http\"),\n\t\t\t\t\t},\n\t\t\t\t\tHealthCheck: \u0026appmesh.VirtualNodeSpecListenerHealthCheckArgs{\n\t\t\t\t\t\tProtocol: pulumi.String(\"http\"),\n\t\t\t\t\t\tPath: pulumi.String(\"/ping\"),\n\t\t\t\t\t\tHealthyThreshold: pulumi.Int(2),\n\t\t\t\t\t\tUnhealthyThreshold: pulumi.Int(2),\n\t\t\t\t\t\tTimeoutMillis: pulumi.Int(2000),\n\t\t\t\t\t\tIntervalMillis: pulumi.Int(5000),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tServiceDiscovery: \u0026appmesh.VirtualNodeSpecServiceDiscoveryArgs{\n\t\t\t\t\tDns: \u0026appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs{\n\t\t\t\t\t\tHostname: pulumi.String(\"serviceb.simpleapp.local\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% example %}}\n### Logging\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst serviceb1 = new aws.appmesh.VirtualNode(\"serviceb1\", {\n meshName: aws_appmesh_mesh.simple.id,\n spec: {\n backends: [{\n virtualService: {\n virtualServiceName: \"servicea.simpleapp.local\",\n },\n }],\n listener: {\n portMapping: {\n port: 8080,\n protocol: \"http\",\n },\n },\n serviceDiscovery: {\n dns: {\n hostname: \"serviceb.simpleapp.local\",\n },\n },\n logging: {\n accessLog: {\n file: {\n path: \"/dev/stdout\",\n },\n },\n },\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nserviceb1 = aws.appmesh.VirtualNode(\"serviceb1\",\n mesh_name=aws_appmesh_mesh[\"simple\"][\"id\"],\n spec=aws.appmesh.VirtualNodeSpecArgs(\n backends=[aws.appmesh.VirtualNodeSpecBackendArgs(\n virtual_service=aws.appmesh.VirtualNodeSpecBackendVirtualServiceArgs(\n virtual_service_name=\"servicea.simpleapp.local\",\n ),\n )],\n listener=aws.appmesh.VirtualNodeSpecListenerArgs(\n port_mapping=aws.appmesh.VirtualNodeSpecListenerPortMappingArgs(\n port=8080,\n protocol=\"http\",\n ),\n ),\n service_discovery=aws.appmesh.VirtualNodeSpecServiceDiscoveryArgs(\n dns=aws.appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs(\n hostname=\"serviceb.simpleapp.local\",\n ),\n ),\n logging=aws.appmesh.VirtualNodeSpecLoggingArgs(\n access_log=aws.appmesh.VirtualNodeSpecLoggingAccessLogArgs(\n file=aws.appmesh.VirtualNodeSpecLoggingAccessLogFileArgs(\n path=\"/dev/stdout\",\n ),\n ),\n ),\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var serviceb1 = new Aws.AppMesh.VirtualNode(\"serviceb1\", new Aws.AppMesh.VirtualNodeArgs\n {\n MeshName = aws_appmesh_mesh.Simple.Id,\n Spec = new Aws.AppMesh.Inputs.VirtualNodeSpecArgs\n {\n Backends = \n {\n new Aws.AppMesh.Inputs.VirtualNodeSpecBackendArgs\n {\n VirtualService = new Aws.AppMesh.Inputs.VirtualNodeSpecBackendVirtualServiceArgs\n {\n VirtualServiceName = \"servicea.simpleapp.local\",\n },\n },\n },\n Listener = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerArgs\n {\n PortMapping = new Aws.AppMesh.Inputs.VirtualNodeSpecListenerPortMappingArgs\n {\n Port = 8080,\n Protocol = \"http\",\n },\n },\n ServiceDiscovery = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryArgs\n {\n Dns = new Aws.AppMesh.Inputs.VirtualNodeSpecServiceDiscoveryDnsArgs\n {\n Hostname = \"serviceb.simpleapp.local\",\n },\n },\n Logging = new Aws.AppMesh.Inputs.VirtualNodeSpecLoggingArgs\n {\n AccessLog = new Aws.AppMesh.Inputs.VirtualNodeSpecLoggingAccessLogArgs\n {\n File = new Aws.AppMesh.Inputs.VirtualNodeSpecLoggingAccessLogFileArgs\n {\n Path = \"/dev/stdout\",\n },\n },\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := appmesh.NewVirtualNode(ctx, \"serviceb1\", \u0026appmesh.VirtualNodeArgs{\n\t\t\tMeshName: pulumi.Any(aws_appmesh_mesh.Simple.Id),\n\t\t\tSpec: \u0026appmesh.VirtualNodeSpecArgs{\n\t\t\t\tBackends: appmesh.VirtualNodeSpecBackendArray{\n\t\t\t\t\t\u0026appmesh.VirtualNodeSpecBackendArgs{\n\t\t\t\t\t\tVirtualService: \u0026appmesh.VirtualNodeSpecBackendVirtualServiceArgs{\n\t\t\t\t\t\t\tVirtualServiceName: pulumi.String(\"servicea.simpleapp.local\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tListener: \u0026appmesh.VirtualNodeSpecListenerArgs{\n\t\t\t\t\tPortMapping: \u0026appmesh.VirtualNodeSpecListenerPortMappingArgs{\n\t\t\t\t\t\tPort: pulumi.Int(8080),\n\t\t\t\t\t\tProtocol: pulumi.String(\"http\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tServiceDiscovery: \u0026appmesh.VirtualNodeSpecServiceDiscoveryArgs{\n\t\t\t\t\tDns: \u0026appmesh.VirtualNodeSpecServiceDiscoveryDnsArgs{\n\t\t\t\t\t\tHostname: pulumi.String(\"serviceb.simpleapp.local\"),\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t\tLogging: \u0026appmesh.VirtualNodeSpecLoggingArgs{\n\t\t\t\t\tAccessLog: \u0026appmesh.VirtualNodeSpecLoggingAccessLogArgs{\n\t\t\t\t\t\tFile: \u0026appmesh.VirtualNodeSpecLoggingAccessLogFileArgs{\n\t\t\t\t\t\t\tPath: pulumi.String(\"/dev/stdout\"),\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { @@ -138689,8 +139886,15 @@ } }, "aws:backup/plan:Plan": { - "description": "Provides an AWS Backup plan resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.backup.Plan(\"example\", {rules: [{\n ruleName: \"tf_example_backup_rule\",\n targetVaultName: aws_backup_vault.test.name,\n schedule: \"cron(0 12 * * ? *)\",\n}]});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.backup.Plan(\"example\", rules=[aws.backup.PlanRuleArgs(\n rule_name=\"tf_example_backup_rule\",\n target_vault_name=aws_backup_vault[\"test\"][\"name\"],\n schedule=\"cron(0 12 * * ? *)\",\n)])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Backup.Plan(\"example\", new Aws.Backup.PlanArgs\n {\n Rules = \n {\n new Aws.Backup.Inputs.PlanRuleArgs\n {\n RuleName = \"tf_example_backup_rule\",\n TargetVaultName = aws_backup_vault.Test.Name,\n Schedule = \"cron(0 12 * * ? *)\",\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/backup\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := backup.NewPlan(ctx, \"example\", \u0026backup.PlanArgs{\n\t\t\tRules: backup.PlanRuleArray{\n\t\t\t\t\u0026backup.PlanRuleArgs{\n\t\t\t\t\tRuleName: pulumi.String(\"tf_example_backup_rule\"),\n\t\t\t\t\tTargetVaultName: pulumi.Any(aws_backup_vault.Test.Name),\n\t\t\t\t\tSchedule: pulumi.String(\"cron(0 12 * * ? *)\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "Provides an AWS Backup plan resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.backup.Plan(\"example\", {\n rules: [{\n ruleName: \"tf_example_backup_rule\",\n targetVaultName: aws_backup_vault.test.name,\n schedule: \"cron(0 12 * * ? *)\",\n }],\n advancedBackupSettings: [{\n backupOptions: {\n WindowsVSS: \"enabled\",\n },\n resourceType: \"EC2\",\n }],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.backup.Plan(\"example\",\n rules=[aws.backup.PlanRuleArgs(\n rule_name=\"tf_example_backup_rule\",\n target_vault_name=aws_backup_vault[\"test\"][\"name\"],\n schedule=\"cron(0 12 * * ? *)\",\n )],\n advanced_backup_settings=[aws.backup.PlanAdvancedBackupSettingArgs(\n backup_options={\n \"WindowsVSS\": \"enabled\",\n },\n resource_type=\"EC2\",\n )])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Backup.Plan(\"example\", new Aws.Backup.PlanArgs\n {\n Rules = \n {\n new Aws.Backup.Inputs.PlanRuleArgs\n {\n RuleName = \"tf_example_backup_rule\",\n TargetVaultName = aws_backup_vault.Test.Name,\n Schedule = \"cron(0 12 * * ? *)\",\n },\n },\n AdvancedBackupSettings = \n {\n new Aws.Backup.Inputs.PlanAdvancedBackupSettingArgs\n {\n BackupOptions = \n {\n { \"WindowsVSS\", \"enabled\" },\n },\n ResourceType = \"EC2\",\n },\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/backup\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := backup.NewPlan(ctx, \"example\", \u0026backup.PlanArgs{\n\t\t\tRules: backup.PlanRuleArray{\n\t\t\t\t\u0026backup.PlanRuleArgs{\n\t\t\t\t\tRuleName: pulumi.String(\"tf_example_backup_rule\"),\n\t\t\t\t\tTargetVaultName: pulumi.Any(aws_backup_vault.Test.Name),\n\t\t\t\t\tSchedule: pulumi.String(\"cron(0 12 * * ? *)\"),\n\t\t\t\t},\n\t\t\t},\n\t\t\tAdvancedBackupSettings: backup.PlanAdvancedBackupSettingArray{\n\t\t\t\t\u0026backup.PlanAdvancedBackupSettingArgs{\n\t\t\t\t\tBackupOptions: pulumi.StringMap{\n\t\t\t\t\t\t\"WindowsVSS\": pulumi.String(\"enabled\"),\n\t\t\t\t\t},\n\t\t\t\t\tResourceType: pulumi.String(\"EC2\"),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { + "advancedBackupSettings": { + "type": "array", + "items": { + "$ref": "#/types/aws:backup/PlanAdvancedBackupSetting:PlanAdvancedBackupSetting" + }, + "description": "An object that specifies backup options for each resource type.\n" + }, "arn": { "type": "string", "description": "The ARN of the backup plan.\n" @@ -138725,6 +139929,13 @@ "version" ], "inputProperties": { + "advancedBackupSettings": { + "type": "array", + "items": { + "$ref": "#/types/aws:backup/PlanAdvancedBackupSetting:PlanAdvancedBackupSetting" + }, + "description": "An object that specifies backup options for each resource type.\n" + }, "name": { "type": "string", "description": "The display name of a backup plan.\n" @@ -138750,6 +139961,13 @@ "stateInputs": { "description": "Input properties used for looking up and filtering Plan resources.\n", "properties": { + "advancedBackupSettings": { + "type": "array", + "items": { + "$ref": "#/types/aws:backup/PlanAdvancedBackupSetting:PlanAdvancedBackupSetting" + }, + "description": "An object that specifies backup options for each resource type.\n" + }, "arn": { "type": "string", "description": "The ARN of the backup plan.\n" @@ -138961,7 +140179,7 @@ } }, "aws:backup/vaultNotifications:VaultNotifications": { - "description": "Provides an AWS Backup vault notifications resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testTopic = new aws.sns.Topic(\"testTopic\", {});\nconst testPolicyDocument = testTopic.arn.apply(arn =\u003e aws.iam.getPolicyDocument({\n policyId: \"__default_policy_ID\",\n statements: [{\n actions: [\"SNS:Publish\"],\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"backup.amazonaws.com\"],\n }],\n resources: [arn],\n sid: \"__default_statement_ID\",\n }],\n}));\nconst testTopicPolicy = new aws.sns.TopicPolicy(\"testTopicPolicy\", {\n arn: testTopic.arn,\n policy: testPolicyDocument.json,\n});\nconst testVaultNotifications = new aws.backup.VaultNotifications(\"testVaultNotifications\", {\n backupVaultName: \"example_backup_vault\",\n snsTopicArn: sns_topic_arn.test.arn,\n backupVaultEvents: [\n \"BACKUP_JOB_STARTED\",\n \"RESTORE_JOB_COMPLETED\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_topic = aws.sns.Topic(\"testTopic\")\ntest_policy_document = test_topic.arn.apply(lambda arn: aws.iam.get_policy_document(policy_id=\"__default_policy_ID\",\n statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"SNS:Publish\"],\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"backup.amazonaws.com\"],\n )],\n resources=[arn],\n sid=\"__default_statement_ID\",\n )]))\ntest_topic_policy = aws.sns.TopicPolicy(\"testTopicPolicy\",\n arn=test_topic.arn,\n policy=test_policy_document.json)\ntest_vault_notifications = aws.backup.VaultNotifications(\"testVaultNotifications\",\n backup_vault_name=\"example_backup_vault\",\n sns_topic_arn=sns_topic_arn[\"test\"][\"arn\"],\n backup_vault_events=[\n \"BACKUP_JOB_STARTED\",\n \"RESTORE_JOB_COMPLETED\",\n ])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var testTopic = new Aws.Sns.Topic(\"testTopic\", new Aws.Sns.TopicArgs\n {\n });\n var testPolicyDocument = testTopic.Arn.Apply(arn =\u003e Aws.Iam.GetPolicyDocument.InvokeAsync(new Aws.Iam.GetPolicyDocumentArgs\n {\n PolicyId = \"__default_policy_ID\",\n Statements = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementArgs\n {\n Actions = \n {\n \"SNS:Publish\",\n },\n Effect = \"Allow\",\n Principals = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalArgs\n {\n Type = \"Service\",\n Identifiers = \n {\n \"backup.amazonaws.com\",\n },\n },\n },\n Resources = \n {\n arn,\n },\n Sid = \"__default_statement_ID\",\n },\n },\n }));\n var testTopicPolicy = new Aws.Sns.TopicPolicy(\"testTopicPolicy\", new Aws.Sns.TopicPolicyArgs\n {\n Arn = testTopic.Arn,\n Policy = testPolicyDocument.Apply(testPolicyDocument =\u003e testPolicyDocument.Json),\n });\n var testVaultNotifications = new Aws.Backup.VaultNotifications(\"testVaultNotifications\", new Aws.Backup.VaultNotificationsArgs\n {\n BackupVaultName = \"example_backup_vault\",\n SnsTopicArn = sns_topic_arn.Test.Arn,\n BackupVaultEvents = \n {\n \"BACKUP_JOB_STARTED\",\n \"RESTORE_JOB_COMPLETED\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/backup\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestTopic, err := sns.NewTopic(ctx, \"testTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sns.NewTopicPolicy(ctx, \"testTopicPolicy\", \u0026sns.TopicPolicyArgs{\n\t\t\tArn: testTopic.Arn,\n\t\t\tPolicy: testPolicyDocument.ApplyT(func(testPolicyDocument iam.GetPolicyDocumentResult) (string, error) {\n\t\t\t\treturn testPolicyDocument.Json, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewVaultNotifications(ctx, \"testVaultNotifications\", \u0026backup.VaultNotificationsArgs{\n\t\t\tBackupVaultName: pulumi.String(\"example_backup_vault\"),\n\t\t\tSnsTopicArn: pulumi.Any(sns_topic_arn.Test.Arn),\n\t\t\tBackupVaultEvents: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"BACKUP_JOB_STARTED\"),\n\t\t\t\tpulumi.String(\"RESTORE_JOB_COMPLETED\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "Provides an AWS Backup vault notifications resource.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst testTopic = new aws.sns.Topic(\"testTopic\", {});\nconst testPolicyDocument = testTopic.arn.apply(arn =\u003e aws.iam.getPolicyDocument({\n policyId: \"__default_policy_ID\",\n statements: [{\n actions: [\"SNS:Publish\"],\n effect: \"Allow\",\n principals: [{\n type: \"Service\",\n identifiers: [\"backup.amazonaws.com\"],\n }],\n resources: [arn],\n sid: \"__default_statement_ID\",\n }],\n}));\nconst testTopicPolicy = new aws.sns.TopicPolicy(\"testTopicPolicy\", {\n arn: testTopic.arn,\n policy: testPolicyDocument.json,\n});\nconst testVaultNotifications = new aws.backup.VaultNotifications(\"testVaultNotifications\", {\n backupVaultName: \"example_backup_vault\",\n snsTopicArn: testTopic.arn,\n backupVaultEvents: [\n \"BACKUP_JOB_STARTED\",\n \"RESTORE_JOB_COMPLETED\",\n ],\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest_topic = aws.sns.Topic(\"testTopic\")\ntest_policy_document = test_topic.arn.apply(lambda arn: aws.iam.get_policy_document(policy_id=\"__default_policy_ID\",\n statements=[aws.iam.GetPolicyDocumentStatementArgs(\n actions=[\"SNS:Publish\"],\n effect=\"Allow\",\n principals=[aws.iam.GetPolicyDocumentStatementPrincipalArgs(\n type=\"Service\",\n identifiers=[\"backup.amazonaws.com\"],\n )],\n resources=[arn],\n sid=\"__default_statement_ID\",\n )]))\ntest_topic_policy = aws.sns.TopicPolicy(\"testTopicPolicy\",\n arn=test_topic.arn,\n policy=test_policy_document.json)\ntest_vault_notifications = aws.backup.VaultNotifications(\"testVaultNotifications\",\n backup_vault_name=\"example_backup_vault\",\n sns_topic_arn=test_topic.arn,\n backup_vault_events=[\n \"BACKUP_JOB_STARTED\",\n \"RESTORE_JOB_COMPLETED\",\n ])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var testTopic = new Aws.Sns.Topic(\"testTopic\", new Aws.Sns.TopicArgs\n {\n });\n var testPolicyDocument = testTopic.Arn.Apply(arn =\u003e Aws.Iam.GetPolicyDocument.InvokeAsync(new Aws.Iam.GetPolicyDocumentArgs\n {\n PolicyId = \"__default_policy_ID\",\n Statements = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementArgs\n {\n Actions = \n {\n \"SNS:Publish\",\n },\n Effect = \"Allow\",\n Principals = \n {\n new Aws.Iam.Inputs.GetPolicyDocumentStatementPrincipalArgs\n {\n Type = \"Service\",\n Identifiers = \n {\n \"backup.amazonaws.com\",\n },\n },\n },\n Resources = \n {\n arn,\n },\n Sid = \"__default_statement_ID\",\n },\n },\n }));\n var testTopicPolicy = new Aws.Sns.TopicPolicy(\"testTopicPolicy\", new Aws.Sns.TopicPolicyArgs\n {\n Arn = testTopic.Arn,\n Policy = testPolicyDocument.Apply(testPolicyDocument =\u003e testPolicyDocument.Json),\n });\n var testVaultNotifications = new Aws.Backup.VaultNotifications(\"testVaultNotifications\", new Aws.Backup.VaultNotificationsArgs\n {\n BackupVaultName = \"example_backup_vault\",\n SnsTopicArn = testTopic.Arn,\n BackupVaultEvents = \n {\n \"BACKUP_JOB_STARTED\",\n \"RESTORE_JOB_COMPLETED\",\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/backup\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/iam\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/sns\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\ttestTopic, err := sns.NewTopic(ctx, \"testTopic\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = sns.NewTopicPolicy(ctx, \"testTopicPolicy\", \u0026sns.TopicPolicyArgs{\n\t\t\tArn: testTopic.Arn,\n\t\t\tPolicy: testPolicyDocument.ApplyT(func(testPolicyDocument iam.GetPolicyDocumentResult) (string, error) {\n\t\t\t\treturn testPolicyDocument.Json, nil\n\t\t\t}).(pulumi.StringOutput),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = backup.NewVaultNotifications(ctx, \"testVaultNotifications\", \u0026backup.VaultNotificationsArgs{\n\t\t\tBackupVaultName: pulumi.String(\"example_backup_vault\"),\n\t\t\tSnsTopicArn: testTopic.Arn,\n\t\t\tBackupVaultEvents: pulumi.StringArray{\n\t\t\t\tpulumi.String(\"BACKUP_JOB_STARTED\"),\n\t\t\t\tpulumi.String(\"RESTORE_JOB_COMPLETED\"),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "backupVaultArn": { "type": "string", @@ -159488,7 +160706,7 @@ } }, "aws:ec2/securityGroupRule:SecurityGroupRule": { - "description": "Provides a security group rule resource. Represents a single `ingress` or\n`egress` group rule, which can be added to external Security Groups.\n\n\u003e **NOTE on Security Groups and Security Group Rules:** This provider currently\nprovides both a standalone Security Group Rule resource (a single `ingress` or\n`egress` rule), and a Security Group resource with `ingress` and `egress` rules\ndefined in-line. At this time you cannot use a Security Group with in-line rules\nin conjunction with any Security Group Rule resources. Doing so will cause\na conflict of rule settings and will overwrite rules.\n\n\u003e **NOTE:** Setting `protocol = \"all\"` or `protocol = -1` with `from_port` and `to_port` will result in the EC2 API creating a security group rule with all ports open. This API behavior cannot be controlled by this provider and may generate warnings in the future.\n\n\u003e **NOTE:** Referencing Security Groups across VPC peering has certain restrictions. More information is available in the [VPC Peering User Guide](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-security-groups.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nBasic usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.SecurityGroupRule(\"example\", {\n type: \"ingress\",\n fromPort: 0,\n toPort: 65535,\n protocol: \"tcp\",\n cidrBlocks: [aws_vpc.example.cidr_block],\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.SecurityGroupRule(\"example\",\n type=\"ingress\",\n from_port=0,\n to_port=65535,\n protocol=\"tcp\",\n cidr_blocks=[aws_vpc[\"example\"][\"cidr_block\"]],\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Ec2.SecurityGroupRule(\"example\", new Aws.Ec2.SecurityGroupRuleArgs\n {\n Type = \"ingress\",\n FromPort = 0,\n ToPort = 65535,\n Protocol = \"tcp\",\n CidrBlocks = \n {\n aws_vpc.Example.Cidr_block,\n },\n SecurityGroupId = \"sg-123456\",\n });\n }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Usage with prefix list IDs\n\nPrefix list IDs are manged by AWS internally. Prefix list IDs\nare associated with a prefix list name, or service name, that is linked to a specific region.\nPrefix list IDs are exported on VPC Endpoints, so you can use this format:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// ...\nconst myEndpoint = new aws.ec2.VpcEndpoint(\"myEndpoint\", {});\n// ...\nconst allowAll = new aws.ec2.SecurityGroupRule(\"allowAll\", {\n type: \"egress\",\n toPort: 0,\n protocol: \"-1\",\n prefixListIds: [myEndpoint.prefixListId],\n fromPort: 0,\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# ...\nmy_endpoint = aws.ec2.VpcEndpoint(\"myEndpoint\")\n# ...\nallow_all = aws.ec2.SecurityGroupRule(\"allowAll\",\n type=\"egress\",\n to_port=0,\n protocol=\"-1\",\n prefix_list_ids=[my_endpoint.prefix_list_id],\n from_port=0,\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n // ...\n var myEndpoint = new Aws.Ec2.VpcEndpoint(\"myEndpoint\", new Aws.Ec2.VpcEndpointArgs\n {\n });\n // ...\n var allowAll = new Aws.Ec2.SecurityGroupRule(\"allowAll\", new Aws.Ec2.SecurityGroupRuleArgs\n {\n Type = \"egress\",\n ToPort = 0,\n Protocol = \"-1\",\n PrefixListIds = \n {\n myEndpoint.PrefixListId,\n },\n FromPort = 0,\n SecurityGroupId = \"sg-123456\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyEndpoint, err := ec2.NewVpcEndpoint(ctx, \"myEndpoint\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroupRule(ctx, \"allowAll\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tType: pulumi.String(\"egress\"),\n\t\t\tToPort: pulumi.Int(0),\n\t\t\tProtocol: pulumi.String(\"-1\"),\n\t\t\tPrefixListIds: pulumi.StringArray{\n\t\t\t\tmyEndpoint.PrefixListId,\n\t\t\t},\n\t\t\tFromPort: pulumi.Int(0),\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n", + "description": "Provides a security group rule resource. Represents a single `ingress` or\n`egress` group rule, which can be added to external Security Groups.\n\n\u003e **NOTE on Security Groups and Security Group Rules:** This provider currently\nprovides both a standalone Security Group Rule resource (a single `ingress` or\n`egress` rule), and a Security Group resource with `ingress` and `egress` rules\ndefined in-line. At this time you cannot use a Security Group with in-line rules\nin conjunction with any Security Group Rule resources. Doing so will cause\na conflict of rule settings and will overwrite rules.\n\n\u003e **NOTE:** Setting `protocol = \"all\"` or `protocol = -1` with `from_port` and `to_port` will result in the EC2 API creating a security group rule with all ports open. This API behavior cannot be controlled by this provider and may generate warnings in the future.\n\n\u003e **NOTE:** Referencing Security Groups across VPC peering has certain restrictions. More information is available in the [VPC Peering User Guide](https://docs.aws.amazon.com/vpc/latest/peering/vpc-peering-security-groups.html).\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\nBasic usage\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.ec2.SecurityGroupRule(\"example\", {\n type: \"ingress\",\n fromPort: 0,\n toPort: 65535,\n protocol: \"tcp\",\n cidrBlocks: [aws_vpc.example.cidr_block],\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.ec2.SecurityGroupRule(\"example\",\n type=\"ingress\",\n from_port=0,\n to_port=65535,\n protocol=\"tcp\",\n cidr_blocks=[aws_vpc[\"example\"][\"cidr_block\"]],\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Ec2.SecurityGroupRule(\"example\", new Aws.Ec2.SecurityGroupRuleArgs\n {\n Type = \"ingress\",\n FromPort = 0,\n ToPort = 65535,\n Protocol = \"tcp\",\n CidrBlocks = \n {\n aws_vpc.Example.Cidr_block,\n },\n SecurityGroupId = \"sg-123456\",\n });\n }\n\n}\n```\n{{% /example %}}\n{{% /examples %}}\n## Usage with prefix list IDs\n\nPrefix list IDs are managed by AWS internally. Prefix list IDs\nare associated with a prefix list name, or service name, that is linked to a specific region.\nPrefix list IDs are exported on VPC Endpoints, so you can use this format:\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\n// ...\nconst myEndpoint = new aws.ec2.VpcEndpoint(\"myEndpoint\", {});\n// ...\nconst allowAll = new aws.ec2.SecurityGroupRule(\"allowAll\", {\n type: \"egress\",\n toPort: 0,\n protocol: \"-1\",\n prefixListIds: [myEndpoint.prefixListId],\n fromPort: 0,\n securityGroupId: \"sg-123456\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\n# ...\nmy_endpoint = aws.ec2.VpcEndpoint(\"myEndpoint\")\n# ...\nallow_all = aws.ec2.SecurityGroupRule(\"allowAll\",\n type=\"egress\",\n to_port=0,\n protocol=\"-1\",\n prefix_list_ids=[my_endpoint.prefix_list_id],\n from_port=0,\n security_group_id=\"sg-123456\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n // ...\n var myEndpoint = new Aws.Ec2.VpcEndpoint(\"myEndpoint\", new Aws.Ec2.VpcEndpointArgs\n {\n });\n // ...\n var allowAll = new Aws.Ec2.SecurityGroupRule(\"allowAll\", new Aws.Ec2.SecurityGroupRuleArgs\n {\n Type = \"egress\",\n ToPort = 0,\n Protocol = \"-1\",\n PrefixListIds = \n {\n myEndpoint.PrefixListId,\n },\n FromPort = 0,\n SecurityGroupId = \"sg-123456\",\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmyEndpoint, err := ec2.NewVpcEndpoint(ctx, \"myEndpoint\", nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSecurityGroupRule(ctx, \"allowAll\", \u0026ec2.SecurityGroupRuleArgs{\n\t\t\tType: pulumi.String(\"egress\"),\n\t\t\tToPort: pulumi.Int(0),\n\t\t\tProtocol: pulumi.String(\"-1\"),\n\t\t\tPrefixListIds: pulumi.StringArray{\n\t\t\t\tmyEndpoint.PrefixListId,\n\t\t\t},\n\t\t\tFromPort: pulumi.Int(0),\n\t\t\tSecurityGroupId: pulumi.String(\"sg-123456\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n", "properties": { "cidrBlocks": { "type": "array", @@ -164083,7 +165301,7 @@ }, "destinationCidrBlock": { "type": "string", - "description": "IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match.\n" + "description": "IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match.\n" }, "transitGatewayAttachmentId": { "type": "string", @@ -164105,7 +165323,7 @@ }, "destinationCidrBlock": { "type": "string", - "description": "IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match.\n" + "description": "IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match.\n" }, "transitGatewayAttachmentId": { "type": "string", @@ -164129,7 +165347,7 @@ }, "destinationCidrBlock": { "type": "string", - "description": "IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match.\n" + "description": "IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match.\n" }, "transitGatewayAttachmentId": { "type": "string", @@ -197465,7 +198683,7 @@ } }, "aws:rds/roleAssociation:RoleAssociation": { - "description": "Manages an RDS DB Instance association with an IAM Role. Example use cases:\n\n* [Amazon RDS Oracle integration with Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)\n* [Importing Amazon S3 Data into an RDS PostgreSQL DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PostgreSQL.S3Import.html)\n\n\u003e To manage the RDS DB Instance IAM Role for [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html), see the `aws.rds.Instance` resource `monitoring_role_arn` argument instead.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.RoleAssociation(\"example\", {\n dbInstanceIdentifier: aws_db_instance.example.id,\n featureName: \"S3_INTEGRATION\",\n roleArn: aws_iam_role.example.id,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.RoleAssociation(\"example\",\n db_instance_identifier=aws_db_instance[\"example\"][\"id\"],\n feature_name=\"S3_INTEGRATION\",\n role_arn=aws_iam_role[\"example\"][\"id\"])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Rds.RoleAssociation(\"example\", new Aws.Rds.RoleAssociationArgs\n {\n DbInstanceIdentifier = aws_db_instance.Example.Id,\n FeatureName = \"S3_INTEGRATION\",\n RoleArn = aws_iam_role.Example.Id,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewRoleAssociation(ctx, \"example\", \u0026rds.RoleAssociationArgs{\n\t\t\tDbInstanceIdentifier: pulumi.Any(aws_db_instance.Example.Id),\n\t\t\tFeatureName: pulumi.String(\"S3_INTEGRATION\"),\n\t\t\tRoleArn: pulumi.Any(aws_iam_role.Example.Id),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "Manages an RDS DB Instance association with an IAM Role. Example use cases:\n\n* [Amazon RDS Oracle integration with Amazon S3](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/oracle-s3-integration.html)\n* [Importing Amazon S3 Data into an RDS PostgreSQL DB Instance](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_PostgreSQL.S3Import.html)\n\n\u003e To manage the RDS DB Instance IAM Role for [Enhanced Monitoring](https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Monitoring.OS.html), see the `aws.rds.Instance` resource `monitoring_role_arn` argument instead.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst example = new aws.rds.RoleAssociation(\"example\", {\n dbInstanceIdentifier: aws_db_instance.example.id,\n featureName: \"S3_INTEGRATION\",\n roleArn: aws_iam_role.example.arn,\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample = aws.rds.RoleAssociation(\"example\",\n db_instance_identifier=aws_db_instance[\"example\"][\"id\"],\n feature_name=\"S3_INTEGRATION\",\n role_arn=aws_iam_role[\"example\"][\"arn\"])\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var example = new Aws.Rds.RoleAssociation(\"example\", new Aws.Rds.RoleAssociationArgs\n {\n DbInstanceIdentifier = aws_db_instance.Example.Id,\n FeatureName = \"S3_INTEGRATION\",\n RoleArn = aws_iam_role.Example.Arn,\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/rds\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := rds.NewRoleAssociation(ctx, \"example\", \u0026rds.RoleAssociationArgs{\n\t\t\tDbInstanceIdentifier: pulumi.Any(aws_db_instance.Example.Id),\n\t\t\tFeatureName: pulumi.String(\"S3_INTEGRATION\"),\n\t\t\tRoleArn: pulumi.Any(aws_iam_role.Example.Arn),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "dbInstanceIdentifier": { "type": "string", @@ -202357,6 +203575,10 @@ "type": "string", "description": "The Amazon Resource Name (ARN) assigned by AWS to this notebook instance.\n" }, + "defaultCodeRepository": { + "type": "string", + "description": "The Git repository associated with the notebook instance as its default code repository\n" + }, "directInternetAccess": { "type": "string", "description": "Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.\n" @@ -202402,6 +203624,10 @@ "type": "string" }, "description": "A map of tags to assign to the resource.\n" + }, + "volumeSize": { + "type": "integer", + "description": "The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB.\n" } }, "required": [ @@ -202412,6 +203638,10 @@ "securityGroups" ], "inputProperties": { + "defaultCodeRepository": { + "type": "string", + "description": "The Git repository associated with the notebook instance as its default code repository\n" + }, "directInternetAccess": { "type": "string", "description": "Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.\n" @@ -202457,6 +203687,10 @@ "type": "string" }, "description": "A map of tags to assign to the resource.\n" + }, + "volumeSize": { + "type": "integer", + "description": "The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB.\n" } }, "requiredInputs": [ @@ -202470,6 +203704,10 @@ "type": "string", "description": "The Amazon Resource Name (ARN) assigned by AWS to this notebook instance.\n" }, + "defaultCodeRepository": { + "type": "string", + "description": "The Git repository associated with the notebook instance as its default code repository\n" + }, "directInternetAccess": { "type": "string", "description": "Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC.\n" @@ -202515,6 +203753,10 @@ "type": "string" }, "description": "A map of tags to assign to the resource.\n" + }, + "volumeSize": { + "type": "integer", + "description": "The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB.\n" } }, "type": "object" @@ -211624,7 +212866,7 @@ } }, "aws:workspaces/directory:Directory": { - "description": "Provides a directory registration in AWS WorkSpaces Service\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst mainVpc = new aws.ec2.Vpc(\"mainVpc\", {cidrBlock: \"10.0.0.0/16\"});\nconst private_a = new aws.ec2.Subnet(\"private-a\", {\n vpcId: mainVpc.id,\n availabilityZone: \"us-east-1a\",\n cidrBlock: \"10.0.0.0/24\",\n});\nconst private_b = new aws.ec2.Subnet(\"private-b\", {\n vpcId: mainVpc.id,\n availabilityZone: \"us-east-1b\",\n cidrBlock: \"10.0.1.0/24\",\n});\nconst mainDirectory = new aws.directoryservice.Directory(\"mainDirectory\", {\n name: \"corp.example.com\",\n password: \"#S1ncerely\",\n size: \"Small\",\n vpcSettings: {\n vpcId: mainVpc.id,\n subnetIds: [\n private_a.id,\n private_b.id,\n ],\n },\n});\nconst mainWorkspaces_directoryDirectory = new aws.workspaces.Directory(\"mainWorkspaces/directoryDirectory\", {\n directoryId: mainDirectory.id,\n selfServicePermissions: {\n increaseVolumeSize: true,\n rebuildWorkspace: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nmain_vpc = aws.ec2.Vpc(\"mainVpc\", cidr_block=\"10.0.0.0/16\")\nprivate_a = aws.ec2.Subnet(\"private-a\",\n vpc_id=main_vpc.id,\n availability_zone=\"us-east-1a\",\n cidr_block=\"10.0.0.0/24\")\nprivate_b = aws.ec2.Subnet(\"private-b\",\n vpc_id=main_vpc.id,\n availability_zone=\"us-east-1b\",\n cidr_block=\"10.0.1.0/24\")\nmain_directory = aws.directoryservice.Directory(\"mainDirectory\",\n name=\"corp.example.com\",\n password=\"#S1ncerely\",\n size=\"Small\",\n vpc_settings=aws.directoryservice.DirectoryVpcSettingsArgs(\n vpc_id=main_vpc.id,\n subnet_ids=[\n private_a.id,\n private_b.id,\n ],\n ))\nmain_workspaces_directory_directory = aws.workspaces.Directory(\"mainWorkspaces/directoryDirectory\",\n directory_id=main_directory.id,\n self_service_permissions=aws.workspaces.DirectorySelfServicePermissionsArgs(\n increase_volume_size=True,\n rebuild_workspace=True,\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var mainVpc = new Aws.Ec2.Vpc(\"mainVpc\", new Aws.Ec2.VpcArgs\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n var private_a = new Aws.Ec2.Subnet(\"private-a\", new Aws.Ec2.SubnetArgs\n {\n VpcId = mainVpc.Id,\n AvailabilityZone = \"us-east-1a\",\n CidrBlock = \"10.0.0.0/24\",\n });\n var private_b = new Aws.Ec2.Subnet(\"private-b\", new Aws.Ec2.SubnetArgs\n {\n VpcId = mainVpc.Id,\n AvailabilityZone = \"us-east-1b\",\n CidrBlock = \"10.0.1.0/24\",\n });\n var mainDirectory = new Aws.DirectoryService.Directory(\"mainDirectory\", new Aws.DirectoryService.DirectoryArgs\n {\n Name = \"corp.example.com\",\n Password = \"#S1ncerely\",\n Size = \"Small\",\n VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs\n {\n VpcId = mainVpc.Id,\n SubnetIds = \n {\n private_a.Id,\n private_b.Id,\n },\n },\n });\n var mainWorkspaces_directoryDirectory = new Aws.Workspaces.Directory(\"mainWorkspaces/directoryDirectory\", new Aws.Workspaces.DirectoryArgs\n {\n DirectoryId = mainDirectory.Id,\n SelfServicePermissions = new Aws.Workspaces.Inputs.DirectorySelfServicePermissionsArgs\n {\n IncreaseVolumeSize = true,\n RebuildWorkspace = true,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/directoryservice\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/workspaces\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\tmainVpc, err := ec2.NewVpc(ctx, \"mainVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSubnet(ctx, \"private_a\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: mainVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = ec2.NewSubnet(ctx, \"private_b\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: mainVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1b\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\tmainDirectory, err := directoryservice.NewDirectory(ctx, \"mainDirectory\", \u0026directoryservice.DirectoryArgs{\n\t\t\tName: pulumi.String(\"corp.example.com\"),\n\t\t\tPassword: pulumi.String(\"#S1ncerely\"),\n\t\t\tSize: pulumi.String(\"Small\"),\n\t\t\tVpcSettings: \u0026directoryservice.DirectoryVpcSettingsArgs{\n\t\t\t\tVpcId: mainVpc.ID(),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\tprivate_a.ID(),\n\t\t\t\t\tprivate_b.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workspaces.NewDirectory(ctx, \"mainWorkspaces_directoryDirectory\", \u0026workspaces.DirectoryArgs{\n\t\t\tDirectoryId: mainDirectory.ID(),\n\t\t\tSelfServicePermissions: \u0026workspaces.DirectorySelfServicePermissionsArgs{\n\t\t\t\tIncreaseVolumeSize: pulumi.Bool(true),\n\t\t\t\tRebuildWorkspace: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "description": "Provides a WorkSpaces directory in AWS WorkSpaces Service.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst exampleVpc = new aws.ec2.Vpc(\"exampleVpc\", {cidrBlock: \"10.0.0.0/16\"});\nconst exampleA = new aws.ec2.Subnet(\"exampleA\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1a\",\n cidrBlock: \"10.0.0.0/24\",\n});\nconst exampleB = new aws.ec2.Subnet(\"exampleB\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1b\",\n cidrBlock: \"10.0.1.0/24\",\n});\nconst exampleC = new aws.ec2.Subnet(\"exampleC\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1c\",\n cidrBlock: \"10.0.2.0/24\",\n});\nconst exampleD = new aws.ec2.Subnet(\"exampleD\", {\n vpcId: exampleVpc.id,\n availabilityZone: \"us-east-1d\",\n cidrBlock: \"10.0.3.0/24\",\n});\nconst exampleDirectory = new aws.directoryservice.Directory(\"exampleDirectory\", {\n name: \"corp.example.com\",\n password: \"#S1ncerely\",\n size: \"Small\",\n vpcSettings: {\n vpcId: exampleVpc.id,\n subnetIds: [\n exampleA.id,\n exampleB.id,\n ],\n },\n});\nconst exampleWorkspaces_directoryDirectory = new aws.workspaces.Directory(\"exampleWorkspaces/directoryDirectory\", {\n directoryId: exampleDirectory.id,\n subnetIds: [\n exampleC.id,\n exampleD.id,\n ],\n tags: {\n Example: true,\n },\n selfServicePermissions: {\n changeComputeType: true,\n increaseVolumeSize: true,\n rebuildWorkspace: true,\n restartWorkspace: true,\n switchRunningMode: true,\n },\n workspaceCreationProperties: {\n customSecurityGroupId: aws_security_group.example.id,\n defaultOu: \"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n enableInternetAccess: true,\n enableMaintenanceMode: true,\n userEnabledAsLocalAdministrator: true,\n },\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\nexample_vpc = aws.ec2.Vpc(\"exampleVpc\", cidr_block=\"10.0.0.0/16\")\nexample_a = aws.ec2.Subnet(\"exampleA\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1a\",\n cidr_block=\"10.0.0.0/24\")\nexample_b = aws.ec2.Subnet(\"exampleB\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1b\",\n cidr_block=\"10.0.1.0/24\")\nexample_c = aws.ec2.Subnet(\"exampleC\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1c\",\n cidr_block=\"10.0.2.0/24\")\nexample_d = aws.ec2.Subnet(\"exampleD\",\n vpc_id=example_vpc.id,\n availability_zone=\"us-east-1d\",\n cidr_block=\"10.0.3.0/24\")\nexample_directory = aws.directoryservice.Directory(\"exampleDirectory\",\n name=\"corp.example.com\",\n password=\"#S1ncerely\",\n size=\"Small\",\n vpc_settings=aws.directoryservice.DirectoryVpcSettingsArgs(\n vpc_id=example_vpc.id,\n subnet_ids=[\n example_a.id,\n example_b.id,\n ],\n ))\nexample_workspaces_directory_directory = aws.workspaces.Directory(\"exampleWorkspaces/directoryDirectory\",\n directory_id=example_directory.id,\n subnet_ids=[\n example_c.id,\n example_d.id,\n ],\n tags={\n \"Example\": \"true\",\n },\n self_service_permissions=aws.workspaces.DirectorySelfServicePermissionsArgs(\n change_compute_type=True,\n increase_volume_size=True,\n rebuild_workspace=True,\n restart_workspace=True,\n switch_running_mode=True,\n ),\n workspace_creation_properties=aws.workspaces.DirectoryWorkspaceCreationPropertiesArgs(\n custom_security_group_id=aws_security_group[\"example\"][\"id\"],\n default_ou=\"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n enable_internet_access=True,\n enable_maintenance_mode=True,\n user_enabled_as_local_administrator=True,\n ))\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var exampleVpc = new Aws.Ec2.Vpc(\"exampleVpc\", new Aws.Ec2.VpcArgs\n {\n CidrBlock = \"10.0.0.0/16\",\n });\n var exampleA = new Aws.Ec2.Subnet(\"exampleA\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1a\",\n CidrBlock = \"10.0.0.0/24\",\n });\n var exampleB = new Aws.Ec2.Subnet(\"exampleB\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1b\",\n CidrBlock = \"10.0.1.0/24\",\n });\n var exampleC = new Aws.Ec2.Subnet(\"exampleC\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1c\",\n CidrBlock = \"10.0.2.0/24\",\n });\n var exampleD = new Aws.Ec2.Subnet(\"exampleD\", new Aws.Ec2.SubnetArgs\n {\n VpcId = exampleVpc.Id,\n AvailabilityZone = \"us-east-1d\",\n CidrBlock = \"10.0.3.0/24\",\n });\n var exampleDirectory = new Aws.DirectoryService.Directory(\"exampleDirectory\", new Aws.DirectoryService.DirectoryArgs\n {\n Name = \"corp.example.com\",\n Password = \"#S1ncerely\",\n Size = \"Small\",\n VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs\n {\n VpcId = exampleVpc.Id,\n SubnetIds = \n {\n exampleA.Id,\n exampleB.Id,\n },\n },\n });\n var exampleWorkspaces_directoryDirectory = new Aws.Workspaces.Directory(\"exampleWorkspaces/directoryDirectory\", new Aws.Workspaces.DirectoryArgs\n {\n DirectoryId = exampleDirectory.Id,\n SubnetIds = \n {\n exampleC.Id,\n exampleD.Id,\n },\n Tags = \n {\n { \"Example\", \"true\" },\n },\n SelfServicePermissions = new Aws.Workspaces.Inputs.DirectorySelfServicePermissionsArgs\n {\n ChangeComputeType = true,\n IncreaseVolumeSize = true,\n RebuildWorkspace = true,\n RestartWorkspace = true,\n SwitchRunningMode = true,\n },\n WorkspaceCreationProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceCreationPropertiesArgs\n {\n CustomSecurityGroupId = aws_security_group.Example.Id,\n DefaultOu = \"OU=AWS,DC=Workgroup,DC=Example,DC=com\",\n EnableInternetAccess = true,\n EnableMaintenanceMode = true,\n UserEnabledAsLocalAdministrator = true,\n },\n });\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/directoryservice\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/ec2\"\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/workspaces\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\texampleVpc, err := ec2.NewVpc(ctx, \"exampleVpc\", \u0026ec2.VpcArgs{\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/16\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleA, err := ec2.NewSubnet(ctx, \"exampleA\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1a\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.0.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleB, err := ec2.NewSubnet(ctx, \"exampleB\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1b\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.1.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleC, err := ec2.NewSubnet(ctx, \"exampleC\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1c\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.2.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleD, err := ec2.NewSubnet(ctx, \"exampleD\", \u0026ec2.SubnetArgs{\n\t\t\tVpcId: exampleVpc.ID(),\n\t\t\tAvailabilityZone: pulumi.String(\"us-east-1d\"),\n\t\t\tCidrBlock: pulumi.String(\"10.0.3.0/24\"),\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\texampleDirectory, err := directoryservice.NewDirectory(ctx, \"exampleDirectory\", \u0026directoryservice.DirectoryArgs{\n\t\t\tName: pulumi.String(\"corp.example.com\"),\n\t\t\tPassword: pulumi.String(\"#S1ncerely\"),\n\t\t\tSize: pulumi.String(\"Small\"),\n\t\t\tVpcSettings: \u0026directoryservice.DirectoryVpcSettingsArgs{\n\t\t\t\tVpcId: exampleVpc.ID(),\n\t\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\t\texampleA.ID(),\n\t\t\t\t\texampleB.ID(),\n\t\t\t\t},\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\t_, err = workspaces.NewDirectory(ctx, \"exampleWorkspaces_directoryDirectory\", \u0026workspaces.DirectoryArgs{\n\t\t\tDirectoryId: exampleDirectory.ID(),\n\t\t\tSubnetIds: pulumi.StringArray{\n\t\t\t\texampleC.ID(),\n\t\t\t\texampleD.ID(),\n\t\t\t},\n\t\t\tTags: pulumi.StringMap{\n\t\t\t\t\"Example\": pulumi.String(\"true\"),\n\t\t\t},\n\t\t\tSelfServicePermissions: \u0026workspaces.DirectorySelfServicePermissionsArgs{\n\t\t\t\tChangeComputeType: pulumi.Bool(true),\n\t\t\t\tIncreaseVolumeSize: pulumi.Bool(true),\n\t\t\t\tRebuildWorkspace: pulumi.Bool(true),\n\t\t\t\tRestartWorkspace: pulumi.Bool(true),\n\t\t\t\tSwitchRunningMode: pulumi.Bool(true),\n\t\t\t},\n\t\t\tWorkspaceCreationProperties: \u0026workspaces.DirectoryWorkspaceCreationPropertiesArgs{\n\t\t\t\tCustomSecurityGroupId: pulumi.Any(aws_security_group.Example.Id),\n\t\t\t\tDefaultOu: pulumi.String(\"OU=AWS,DC=Workgroup,DC=Example,DC=com\"),\n\t\t\t\tEnableInternetAccess: pulumi.Bool(true),\n\t\t\t\tEnableMaintenanceMode: pulumi.Bool(true),\n\t\t\t\tUserEnabledAsLocalAdministrator: pulumi.Bool(true),\n\t\t\t},\n\t\t})\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "properties": { "alias": { "type": "string", @@ -211670,14 +212912,14 @@ }, "selfServicePermissions": { "$ref": "#/types/aws:workspaces/DirectorySelfServicePermissions:DirectorySelfServicePermissions", - "description": "The permissions to enable or disable self-service capabilities.\n" + "description": "Permissions to enable or disable self-service capabilities. Defined below.\n" }, "subnetIds": { "type": "array", "items": { "type": "string" }, - "description": "The identifiers of the subnets where the directory resides.\n" + "description": "The subnets identifiers where the workspaces are created.\n" }, "tags": { "type": "object", @@ -211686,6 +212928,10 @@ }, "description": "A map of tags assigned to the WorkSpaces directory.\n" }, + "workspaceCreationProperties": { + "$ref": "#/types/aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties", + "description": "Default properties that are used for creating WorkSpaces. Defined below.\n" + }, "workspaceSecurityGroupId": { "type": "string", "description": "The identifier of the security group that is assigned to new WorkSpaces.\n" @@ -211703,6 +212949,7 @@ "registrationCode", "selfServicePermissions", "subnetIds", + "workspaceCreationProperties", "workspaceSecurityGroupId" ], "inputProperties": { @@ -211712,14 +212959,14 @@ }, "selfServicePermissions": { "$ref": "#/types/aws:workspaces/DirectorySelfServicePermissions:DirectorySelfServicePermissions", - "description": "The permissions to enable or disable self-service capabilities.\n" + "description": "Permissions to enable or disable self-service capabilities. Defined below.\n" }, "subnetIds": { "type": "array", "items": { "type": "string" }, - "description": "The identifiers of the subnets where the directory resides.\n" + "description": "The subnets identifiers where the workspaces are created.\n" }, "tags": { "type": "object", @@ -211727,6 +212974,10 @@ "type": "string" }, "description": "A map of tags assigned to the WorkSpaces directory.\n" + }, + "workspaceCreationProperties": { + "$ref": "#/types/aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties", + "description": "Default properties that are used for creating WorkSpaces. Defined below.\n" } }, "requiredInputs": [ @@ -211779,14 +213030,14 @@ }, "selfServicePermissions": { "$ref": "#/types/aws:workspaces/DirectorySelfServicePermissions:DirectorySelfServicePermissions", - "description": "The permissions to enable or disable self-service capabilities.\n" + "description": "Permissions to enable or disable self-service capabilities. Defined below.\n" }, "subnetIds": { "type": "array", "items": { "type": "string" }, - "description": "The identifiers of the subnets where the directory resides.\n" + "description": "The subnets identifiers where the workspaces are created.\n" }, "tags": { "type": "object", @@ -211795,6 +213046,10 @@ }, "description": "A map of tags assigned to the WorkSpaces directory.\n" }, + "workspaceCreationProperties": { + "$ref": "#/types/aws:workspaces/DirectoryWorkspaceCreationProperties:DirectoryWorkspaceCreationProperties", + "description": "Default properties that are used for creating WorkSpaces. Defined below.\n" + }, "workspaceSecurityGroupId": { "type": "string", "description": "The identifier of the security group that is assigned to new WorkSpaces.\n" @@ -214385,6 +215640,70 @@ ] } }, + "aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint": { + "description": "The CodeArtifact Repository Endpoint data source returns the endpoint of a repository for a specific package format.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = aws.codeartifact.getRepositoryEndpoint({\n domain: aws_codeartifact_domain.test.domain,\n repository: aws_codeartifact_repository.test.repository,\n format: \"npm\",\n});\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.codeartifact.get_repository_endpoint(domain=aws_codeartifact_domain[\"test\"][\"domain\"],\n repository=aws_codeartifact_repository[\"test\"][\"repository\"],\n format=\"npm\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var test = Output.Create(Aws.CodeArtifact.GetRepositoryEndpoint.InvokeAsync(new Aws.CodeArtifact.GetRepositoryEndpointArgs\n {\n Domain = aws_codeartifact_domain.Test.Domain,\n Repository = aws_codeartifact_repository.Test.Repository,\n Format = \"npm\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codeartifact\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := codeartifact.GetRepositoryEndpoint(ctx, \u0026codeartifact.GetRepositoryEndpointArgs{\n\t\t\tDomain: aws_codeartifact_domain.Test.Domain,\n\t\t\tRepository: aws_codeartifact_repository.Test.Repository,\n\t\t\tFormat: \"npm\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", + "inputs": { + "description": "A collection of arguments for invoking getRepositoryEndpoint.\n", + "properties": { + "domain": { + "type": "string", + "description": "The name of the domain that contains the repository.\n" + }, + "domainOwner": { + "type": "string", + "description": "The account number of the AWS account that owns the domain.\n" + }, + "format": { + "type": "string", + "description": "Which endpoint of a repository to return. A repository has one endpoint for each package format: `npm`, `pypi`, and `maven`.\n" + }, + "repository": { + "type": "string", + "description": "The name of the repository.\n" + } + }, + "type": "object", + "required": [ + "domain", + "format", + "repository" + ] + }, + "outputs": { + "description": "A collection of values returned by getRepositoryEndpoint.\n", + "properties": { + "domain": { + "type": "string" + }, + "domainOwner": { + "type": "string" + }, + "format": { + "type": "string" + }, + "id": { + "type": "string", + "description": "The provider-assigned unique ID for this managed resource.\n" + }, + "repository": { + "type": "string" + }, + "repositoryEndpoint": { + "type": "string", + "description": "The URL of the returned endpoint.\n" + } + }, + "type": "object", + "required": [ + "domain", + "domainOwner", + "format", + "repository", + "repositoryEndpoint", + "id" + ] + } + }, "aws:codecommit/getRepository:getRepository": { "description": "The CodeCommit Repository data source allows the ARN, Repository ID, Repository URL for HTTP and Repository URL for SSH to be retrieved for an CodeCommit repository.\n\n{{% examples %}}\n## Example Usage\n{{% example %}}\n\n```typescript\nimport * as pulumi from \"@pulumi/pulumi\";\nimport * as aws from \"@pulumi/aws\";\n\nconst test = pulumi.output(aws.codecommit.getRepository({\n repositoryName: \"MyTestRepository\",\n}, { async: true }));\n```\n```python\nimport pulumi\nimport pulumi_aws as aws\n\ntest = aws.codecommit.get_repository(repository_name=\"MyTestRepository\")\n```\n```csharp\nusing Pulumi;\nusing Aws = Pulumi.Aws;\n\nclass MyStack : Stack\n{\n public MyStack()\n {\n var test = Output.Create(Aws.CodeCommit.GetRepository.InvokeAsync(new Aws.CodeCommit.GetRepositoryArgs\n {\n RepositoryName = \"MyTestRepository\",\n }));\n }\n\n}\n```\n```go\npackage main\n\nimport (\n\t\"github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codecommit\"\n\t\"github.com/pulumi/pulumi/sdk/v2/go/pulumi\"\n)\n\nfunc main() {\n\tpulumi.Run(func(ctx *pulumi.Context) error {\n\t\t_, err := codecommit.LookupRepository(ctx, \u0026codecommit.LookupRepositoryArgs{\n\t\t\tRepositoryName: \"MyTestRepository\",\n\t\t}, nil)\n\t\tif err != nil {\n\t\t\treturn err\n\t\t}\n\t\treturn nil\n\t})\n}\n```\n{{% /example %}}\n{{% /examples %}}", "inputs": { @@ -229686,6 +231005,10 @@ "type": "string" }, "description": "A map of tags assigned to the WorkSpaces directory.\n" + }, + "workspaceCreationProperties": { + "$ref": "#/types/aws:workspaces/getDirectoryWorkspaceCreationProperties:getDirectoryWorkspaceCreationProperties", + "description": "The default properties that are used for creating WorkSpaces. Defined below.\n" } }, "type": "object", @@ -229762,9 +231085,13 @@ }, "description": "A map of tags assigned to the WorkSpaces directory.\n" }, + "workspaceCreationProperties": { + "$ref": "#/types/aws:workspaces/getDirectoryWorkspaceCreationProperties:getDirectoryWorkspaceCreationProperties", + "description": "The default properties that are used for creating WorkSpaces. Defined below.\n" + }, "workspaceSecurityGroupId": { "type": "string", - "description": "The identifier of the security group that is assigned to new WorkSpaces.\n" + "description": "The identifier of the security group that is assigned to new WorkSpaces. Defined below.\n" } }, "type": "object", @@ -229780,6 +231107,7 @@ "registrationCode", "selfServicePermissions", "subnetIds", + "workspaceCreationProperties", "workspaceSecurityGroupId", "id" ] diff --git a/provider/go.mod b/provider/go.mod index b6a5b5b434d..e91beb96725 100644 --- a/provider/go.mod +++ b/provider/go.mod @@ -16,5 +16,5 @@ replace ( github.com/Azure/go-autorest => github.com/Azure/go-autorest v12.4.3+incompatible github.com/hashicorp/terraform-plugin-sdk/v2 => github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20200910230100-328eb4ff41df github.com/hashicorp/vault => github.com/hashicorp/vault v1.2.0 - github.com/terraform-providers/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20201012122532-fe5406795ec7 + github.com/terraform-providers/terraform-provider-aws => github.com/pulumi/terraform-provider-aws v1.38.1-0.20201016140124-bee0175a03ca ) diff --git a/provider/go.sum b/provider/go.sum index f04abca926f..ba21da7a846 100644 --- a/provider/go.sum +++ b/provider/go.sum @@ -552,6 +552,8 @@ github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20200910230100-328eb4ff41df h1: github.com/pulumi/terraform-plugin-sdk/v2 v2.0.0-20200910230100-328eb4ff41df/go.mod h1:pVZLnLuSe/yv0XqTHFPb8xRGWPwgANT77jHeHqjXS5o= github.com/pulumi/terraform-provider-aws v1.38.1-0.20201012122532-fe5406795ec7 h1:WXqS7EMUK4q4AWM6mreEs00gMHLhrM5eUMHTyzNHPsE= github.com/pulumi/terraform-provider-aws v1.38.1-0.20201012122532-fe5406795ec7/go.mod h1:DdjydHaAmjsZl+uZ4QLwfx9iP+trTBMjEqLeAV9/OFE= +github.com/pulumi/terraform-provider-aws v1.38.1-0.20201016140124-bee0175a03ca h1:CyHBNr359uPBABEOW+7J1S8ot0ZRBvmqRSvg53g8+Es= +github.com/pulumi/terraform-provider-aws v1.38.1-0.20201016140124-bee0175a03ca/go.mod h1:DdjydHaAmjsZl+uZ4QLwfx9iP+trTBMjEqLeAV9/OFE= github.com/rjeczalik/notify v0.9.2/go.mod h1:aErll2f0sUX9PXZnVNyeiObbmTlk5jnMoCa4QEjJeqM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= diff --git a/provider/resources.go b/provider/resources.go index e6be6d5fca7..2b850853a62 100644 --- a/provider/resources.go +++ b/provider/resources.go @@ -328,6 +328,8 @@ func Provider() tfbridge.ProviderInfo { "aws_appmesh_virtual_node": {Tok: awsResource(appmeshMod, "VirtualNode")}, "aws_appmesh_virtual_router": {Tok: awsResource(appmeshMod, "VirtualRouter")}, "aws_appmesh_virtual_service": {Tok: awsResource(appmeshMod, "VirtualService")}, + "aws_appmesh_gateway_route": {Tok: awsResource(appmeshMod, "GatewayRoute")}, + "aws_appmesh_virtual_gateway": {Tok: awsResource(appmeshMod, "VirtualGateway")}, // API Gateway "aws_api_gateway_account": { Tok: awsResource(apigatewayMod, "Account"), @@ -3320,6 +3322,7 @@ func Provider() tfbridge.ProviderInfo { "aws_neptune_orderable_db_instance": {Tok: awsDataSource(neptuneMod, "getOrderableDbInstance")}, "aws_neptune_engine_version": {Tok: awsDataSource(neptuneMod, "getEngineVersion")}, "aws_codeartifact_authorization_token": {Tok: awsDataSource(codeartifactMod, "getAuthorizationToken")}, + "aws_codeartifact_repository_endpoint": {Tok: awsDataSource(codeartifactMod, "getRepositoryEndpoint")}, }, JavaScript: &tfbridge.JavaScriptInfo{ Dependencies: map[string]string{ diff --git a/sdk/dotnet/ApiGatewayV2/Route.cs b/sdk/dotnet/ApiGatewayV2/Route.cs index 8b61576814a..b98abd052e2 100644 --- a/sdk/dotnet/ApiGatewayV2/Route.cs +++ b/sdk/dotnet/ApiGatewayV2/Route.cs @@ -88,7 +88,7 @@ public partial class Route : Pulumi.CustomResource public Output?> RequestModels { get; private set; } = null!; /// - /// The route key for the route. + /// The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. /// [Output("routeKey")] public Output RouteKey { get; private set; } = null!; @@ -215,7 +215,7 @@ public InputMap RequestModels } /// - /// The route key for the route. + /// The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. /// [Input("routeKey", required: true)] public Input RouteKey { get; set; } = null!; @@ -303,7 +303,7 @@ public InputMap RequestModels } /// - /// The route key for the route. + /// The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. /// [Input("routeKey")] public Input? RouteKey { get; set; } diff --git a/sdk/dotnet/AppMesh/GatewayRoute.cs b/sdk/dotnet/AppMesh/GatewayRoute.cs new file mode 100644 index 00000000000..fa6fa4f3331 --- /dev/null +++ b/sdk/dotnet/AppMesh/GatewayRoute.cs @@ -0,0 +1,286 @@ +// *** 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.Aws.AppMesh +{ + /// + /// Provides an AWS App Mesh gateway route resource. + /// + /// ## Example Usage + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var example = new Aws.AppMesh.GatewayRoute("example", new Aws.AppMesh.GatewayRouteArgs + /// { + /// MeshName = "example-service-mesh", + /// VirtualGatewayName = aws_appmesh_virtual_gateway.Example.Name, + /// Spec = new Aws.AppMesh.Inputs.GatewayRouteSpecArgs + /// { + /// HttpRoute = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteArgs + /// { + /// Action = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteActionArgs + /// { + /// Target = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteActionTargetArgs + /// { + /// VirtualService = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs + /// { + /// VirtualServiceName = aws_appmesh_virtual_service.Example.Name, + /// }, + /// }, + /// }, + /// Match = new Aws.AppMesh.Inputs.GatewayRouteSpecHttpRouteMatchArgs + /// { + /// Prefix = "/", + /// }, + /// }, + /// }, + /// Tags = + /// { + /// { "Environment", "test" }, + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// + public partial class GatewayRoute : Pulumi.CustomResource + { + /// + /// The ARN of the gateway route. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The creation date of the gateway route. + /// + [Output("createdDate")] + public Output CreatedDate { get; private set; } = null!; + + /// + /// The last update date of the gateway route. + /// + [Output("lastUpdatedDate")] + public Output LastUpdatedDate { get; private set; } = null!; + + /// + /// The name of the service mesh in which to create the gateway route. + /// + [Output("meshName")] + public Output MeshName { get; private set; } = null!; + + /// + /// The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + /// + [Output("meshOwner")] + public Output MeshOwner { get; private set; } = null!; + + /// + /// The name to use for the gateway route. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The resource owner's AWS account ID. + /// + [Output("resourceOwner")] + public Output ResourceOwner { get; private set; } = null!; + + /// + /// The gateway route specification to apply. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + /// + /// A map of tags to assign to the resource. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + /// + /// The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + /// + [Output("virtualGatewayName")] + public Output VirtualGatewayName { get; private set; } = null!; + + + /// + /// Create a GatewayRoute 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 GatewayRoute(string name, GatewayRouteArgs args, CustomResourceOptions? options = null) + : base("aws:appmesh/gatewayRoute:GatewayRoute", name, args ?? new GatewayRouteArgs(), MakeResourceOptions(options, "")) + { + } + + private GatewayRoute(string name, Input id, GatewayRouteState? state = null, CustomResourceOptions? options = null) + : base("aws:appmesh/gatewayRoute:GatewayRoute", 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 GatewayRoute 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 GatewayRoute Get(string name, Input id, GatewayRouteState? state = null, CustomResourceOptions? options = null) + { + return new GatewayRoute(name, id, state, options); + } + } + + public sealed class GatewayRouteArgs : Pulumi.ResourceArgs + { + /// + /// The name of the service mesh in which to create the gateway route. + /// + [Input("meshName", required: true)] + public Input MeshName { get; set; } = null!; + + /// + /// The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + /// + [Input("meshOwner")] + public Input? MeshOwner { get; set; } + + /// + /// The name to use for the gateway route. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The gateway route specification to apply. + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + /// + [Input("virtualGatewayName", required: true)] + public Input VirtualGatewayName { get; set; } = null!; + + public GatewayRouteArgs() + { + } + } + + public sealed class GatewayRouteState : Pulumi.ResourceArgs + { + /// + /// The ARN of the gateway route. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The creation date of the gateway route. + /// + [Input("createdDate")] + public Input? CreatedDate { get; set; } + + /// + /// The last update date of the gateway route. + /// + [Input("lastUpdatedDate")] + public Input? LastUpdatedDate { get; set; } + + /// + /// The name of the service mesh in which to create the gateway route. + /// + [Input("meshName")] + public Input? MeshName { get; set; } + + /// + /// The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + /// + [Input("meshOwner")] + public Input? MeshOwner { get; set; } + + /// + /// The name to use for the gateway route. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The resource owner's AWS account ID. + /// + [Input("resourceOwner")] + public Input? ResourceOwner { get; set; } + + /// + /// The gateway route specification to apply. + /// + [Input("spec")] + public Input? Spec { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + /// + /// The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + /// + [Input("virtualGatewayName")] + public Input? VirtualGatewayName { get; set; } + + public GatewayRouteState() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecArgs.cs new file mode 100644 index 00000000000..26b32fd494a --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecArgs.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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecArgs : Pulumi.ResourceArgs + { + /// + /// The specification of a gRPC gateway route. + /// + [Input("grpcRoute")] + public Input? GrpcRoute { get; set; } + + /// + /// The specification of an HTTP/2 gateway route. + /// + [Input("http2Route")] + public Input? Http2Route { get; set; } + + /// + /// The specification of an HTTP gateway route. + /// + [Input("httpRoute")] + public Input? HttpRoute { get; set; } + + public GatewayRouteSpecArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGetArgs.cs new file mode 100644 index 00000000000..a0a9aad2943 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGetArgs.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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGetArgs : Pulumi.ResourceArgs + { + /// + /// The specification of a gRPC gateway route. + /// + [Input("grpcRoute")] + public Input? GrpcRoute { get; set; } + + /// + /// The specification of an HTTP/2 gateway route. + /// + [Input("http2Route")] + public Input? Http2Route { get; set; } + + /// + /// The specification of an HTTP gateway route. + /// + [Input("httpRoute")] + public Input? HttpRoute { get; set; } + + public GatewayRouteSpecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionArgs.cs new file mode 100644 index 00000000000..63db6fb7753 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteActionArgs : Pulumi.ResourceArgs + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + [Input("target", required: true)] + public Input Target { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteActionArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionGetArgs.cs new file mode 100644 index 00000000000..356f193ebcf --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteActionGetArgs : Pulumi.ResourceArgs + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + [Input("target", required: true)] + public Input Target { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteActionGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetArgs.cs new file mode 100644 index 00000000000..ffa1591543a --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteActionTargetArgs : Pulumi.ResourceArgs + { + /// + /// The virtual service gateway route target. + /// + [Input("virtualService", required: true)] + public Input VirtualService { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteActionTargetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetGetArgs.cs new file mode 100644 index 00000000000..1db01c5af8f --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteActionTargetGetArgs : Pulumi.ResourceArgs + { + /// + /// The virtual service gateway route target. + /// + [Input("virtualService", required: true)] + public Input VirtualService { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteActionTargetGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs.cs new file mode 100644 index 00000000000..2848fde40f0 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs : Pulumi.ResourceArgs + { + /// + /// The name of the virtual service that traffic is routed to. + /// + [Input("virtualServiceName", required: true)] + public Input VirtualServiceName { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetVirtualServiceGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetVirtualServiceGetArgs.cs new file mode 100644 index 00000000000..812a7d0e3ce --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteActionTargetVirtualServiceGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteActionTargetVirtualServiceGetArgs : Pulumi.ResourceArgs + { + /// + /// The name of the virtual service that traffic is routed to. + /// + [Input("virtualServiceName", required: true)] + public Input VirtualServiceName { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteActionTargetVirtualServiceGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteArgs.cs new file mode 100644 index 00000000000..5c7e1bac97f --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteArgs : Pulumi.ResourceArgs + { + /// + /// The action to take if a match is determined. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The criteria for determining a request match. + /// + [Input("match", required: true)] + public Input Match { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteGetArgs.cs new file mode 100644 index 00000000000..a006eeadb7e --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteGetArgs : Pulumi.ResourceArgs + { + /// + /// The action to take if a match is determined. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The criteria for determining a request match. + /// + [Input("match", required: true)] + public Input Match { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchArgs.cs new file mode 100644 index 00000000000..164e5e3bca8 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteMatchArgs : Pulumi.ResourceArgs + { + /// + /// The fully qualified domain name for the service to match from the request. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteMatchArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchGetArgs.cs new file mode 100644 index 00000000000..dae3a4c7646 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecGrpcRouteMatchGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecGrpcRouteMatchGetArgs : Pulumi.ResourceArgs + { + /// + /// The fully qualified domain name for the service to match from the request. + /// + [Input("serviceName", required: true)] + public Input ServiceName { get; set; } = null!; + + public GatewayRouteSpecGrpcRouteMatchGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionArgs.cs new file mode 100644 index 00000000000..c280f4d4a78 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteActionArgs : Pulumi.ResourceArgs + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + [Input("target", required: true)] + public Input Target { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteActionArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionGetArgs.cs new file mode 100644 index 00000000000..3a52596aa99 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteActionGetArgs : Pulumi.ResourceArgs + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + [Input("target", required: true)] + public Input Target { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteActionGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetArgs.cs new file mode 100644 index 00000000000..e2463a40e76 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteActionTargetArgs : Pulumi.ResourceArgs + { + /// + /// The virtual service gateway route target. + /// + [Input("virtualService", required: true)] + public Input VirtualService { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteActionTargetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetGetArgs.cs new file mode 100644 index 00000000000..068f300de86 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteActionTargetGetArgs : Pulumi.ResourceArgs + { + /// + /// The virtual service gateway route target. + /// + [Input("virtualService", required: true)] + public Input VirtualService { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteActionTargetGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs.cs new file mode 100644 index 00000000000..5f928179b19 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs : Pulumi.ResourceArgs + { + /// + /// The name of the virtual service that traffic is routed to. + /// + [Input("virtualServiceName", required: true)] + public Input VirtualServiceName { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetVirtualServiceGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetVirtualServiceGetArgs.cs new file mode 100644 index 00000000000..2e221dcaf5c --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteActionTargetVirtualServiceGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteActionTargetVirtualServiceGetArgs : Pulumi.ResourceArgs + { + /// + /// The name of the virtual service that traffic is routed to. + /// + [Input("virtualServiceName", required: true)] + public Input VirtualServiceName { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteActionTargetVirtualServiceGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteArgs.cs new file mode 100644 index 00000000000..d0984600100 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteArgs : Pulumi.ResourceArgs + { + /// + /// The action to take if a match is determined. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The criteria for determining a request match. + /// + [Input("match", required: true)] + public Input Match { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteGetArgs.cs new file mode 100644 index 00000000000..3e9af38801a --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteGetArgs : Pulumi.ResourceArgs + { + /// + /// The action to take if a match is determined. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The criteria for determining a request match. + /// + [Input("match", required: true)] + public Input Match { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchArgs.cs new file mode 100644 index 00000000000..f0811b2cb6c --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteMatchArgs : Pulumi.ResourceArgs + { + /// + /// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + /// + [Input("prefix", required: true)] + public Input Prefix { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteMatchArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchGetArgs.cs new file mode 100644 index 00000000000..9f9c18dedb0 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttp2RouteMatchGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttp2RouteMatchGetArgs : Pulumi.ResourceArgs + { + /// + /// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + /// + [Input("prefix", required: true)] + public Input Prefix { get; set; } = null!; + + public GatewayRouteSpecHttp2RouteMatchGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionArgs.cs new file mode 100644 index 00000000000..fa13d10b84b --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteActionArgs : Pulumi.ResourceArgs + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + [Input("target", required: true)] + public Input Target { get; set; } = null!; + + public GatewayRouteSpecHttpRouteActionArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionGetArgs.cs new file mode 100644 index 00000000000..8e816d6f966 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteActionGetArgs : Pulumi.ResourceArgs + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + [Input("target", required: true)] + public Input Target { get; set; } = null!; + + public GatewayRouteSpecHttpRouteActionGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetArgs.cs new file mode 100644 index 00000000000..77ddd8d0572 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteActionTargetArgs : Pulumi.ResourceArgs + { + /// + /// The virtual service gateway route target. + /// + [Input("virtualService", required: true)] + public Input VirtualService { get; set; } = null!; + + public GatewayRouteSpecHttpRouteActionTargetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetGetArgs.cs new file mode 100644 index 00000000000..6dc8ce403d0 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteActionTargetGetArgs : Pulumi.ResourceArgs + { + /// + /// The virtual service gateway route target. + /// + [Input("virtualService", required: true)] + public Input VirtualService { get; set; } = null!; + + public GatewayRouteSpecHttpRouteActionTargetGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs.cs new file mode 100644 index 00000000000..438bcdca405 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs : Pulumi.ResourceArgs + { + /// + /// The name of the virtual service that traffic is routed to. + /// + [Input("virtualServiceName", required: true)] + public Input VirtualServiceName { get; set; } = null!; + + public GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetVirtualServiceGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetVirtualServiceGetArgs.cs new file mode 100644 index 00000000000..aaeeacac70c --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteActionTargetVirtualServiceGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteActionTargetVirtualServiceGetArgs : Pulumi.ResourceArgs + { + /// + /// The name of the virtual service that traffic is routed to. + /// + [Input("virtualServiceName", required: true)] + public Input VirtualServiceName { get; set; } = null!; + + public GatewayRouteSpecHttpRouteActionTargetVirtualServiceGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteArgs.cs new file mode 100644 index 00000000000..efd660bca84 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteArgs : Pulumi.ResourceArgs + { + /// + /// The action to take if a match is determined. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The criteria for determining a request match. + /// + [Input("match", required: true)] + public Input Match { get; set; } = null!; + + public GatewayRouteSpecHttpRouteArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteGetArgs.cs new file mode 100644 index 00000000000..94f1c57321e --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteGetArgs : Pulumi.ResourceArgs + { + /// + /// The action to take if a match is determined. + /// + [Input("action", required: true)] + public Input Action { get; set; } = null!; + + /// + /// The criteria for determining a request match. + /// + [Input("match", required: true)] + public Input Match { get; set; } = null!; + + public GatewayRouteSpecHttpRouteGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchArgs.cs new file mode 100644 index 00000000000..102bef3dbf0 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteMatchArgs : Pulumi.ResourceArgs + { + /// + /// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + /// + [Input("prefix", required: true)] + public Input Prefix { get; set; } = null!; + + public GatewayRouteSpecHttpRouteMatchArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchGetArgs.cs new file mode 100644 index 00000000000..0038c7d67c8 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/GatewayRouteSpecHttpRouteMatchGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class GatewayRouteSpecHttpRouteMatchGetArgs : Pulumi.ResourceArgs + { + /// + /// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + /// + [Input("prefix", required: true)] + public Input Prefix { get; set; } = null!; + + public GatewayRouteSpecHttpRouteMatchGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecArgs.cs new file mode 100644 index 00000000000..d203f6f17c1 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecArgs.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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecArgs : Pulumi.ResourceArgs + { + /// + /// The defaults for backends. + /// + [Input("backendDefaults")] + public Input? BackendDefaults { get; set; } + + /// + /// The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + /// + [Input("listener", required: true)] + public Input Listener { get; set; } = null!; + + /// + /// The inbound and outbound access logging information for the virtual gateway. + /// + [Input("logging")] + public Input? Logging { get; set; } + + public VirtualGatewaySpecArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsArgs.cs new file mode 100644 index 00000000000..b7555bd59af --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsArgs : Pulumi.ResourceArgs + { + /// + /// The default client policy for virtual gateway backends. + /// + [Input("clientPolicy")] + public Input? ClientPolicy { get; set; } + + public VirtualGatewaySpecBackendDefaultsArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyArgs.cs new file mode 100644 index 00000000000..cae41f2e7cb --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyArgs : Pulumi.ResourceArgs + { + /// + /// The Transport Layer Security (TLS) client policy. + /// + [Input("tls")] + public Input? Tls { get; set; } + + public VirtualGatewaySpecBackendDefaultsClientPolicyArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyGetArgs.cs new file mode 100644 index 00000000000..35aa0d20e5d --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyGetArgs : Pulumi.ResourceArgs + { + /// + /// The Transport Layer Security (TLS) client policy. + /// + [Input("tls")] + public Input? Tls { get; set; } + + public VirtualGatewaySpecBackendDefaultsClientPolicyGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs.cs new file mode 100644 index 00000000000..9785b2705c9 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs.cs @@ -0,0 +1,40 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs : Pulumi.ResourceArgs + { + [Input("enforce")] + public Input? Enforce { get; set; } + + [Input("ports")] + private InputList? _ports; + + /// + /// One or more ports that the policy is enforced for. + /// + public InputList Ports + { + get => _ports ?? (_ports = new InputList()); + set => _ports = value; + } + + /// + /// The TLS validation context. + /// + [Input("validation", required: true)] + public Input Validation { get; set; } = null!; + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsGetArgs.cs new file mode 100644 index 00000000000..e362a207e73 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsGetArgs.cs @@ -0,0 +1,40 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsGetArgs : Pulumi.ResourceArgs + { + [Input("enforce")] + public Input? Enforce { get; set; } + + [Input("ports")] + private InputList? _ports; + + /// + /// One or more ports that the policy is enforced for. + /// + public InputList Ports + { + get => _ports ?? (_ports = new InputList()); + set => _ports = value; + } + + /// + /// The TLS validation context. + /// + [Input("validation", required: true)] + public Input Validation { get; set; } = null!; + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs.cs new file mode 100644 index 00000000000..241671894d8 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs : Pulumi.ResourceArgs + { + /// + /// The TLS validation context trust. + /// + [Input("trust", required: true)] + public Input Trust { get; set; } = null!; + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationGetArgs.cs new file mode 100644 index 00000000000..1edc8495120 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationGetArgs : Pulumi.ResourceArgs + { + /// + /// The TLS validation context trust. + /// + [Input("trust", required: true)] + public Input Trust { get; set; } = null!; + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs.cs new file mode 100644 index 00000000000..6586122a728 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs : Pulumi.ResourceArgs + { + [Input("certificateAuthorityArns", required: true)] + private InputList? _certificateAuthorityArns; + + /// + /// One or more ACM Amazon Resource Name (ARN)s. + /// + public InputList CertificateAuthorityArns + { + get => _certificateAuthorityArns ?? (_certificateAuthorityArns = new InputList()); + set => _certificateAuthorityArns = value; + } + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmGetArgs.cs new file mode 100644 index 00000000000..799fa4e6dfb --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmGetArgs : Pulumi.ResourceArgs + { + [Input("certificateAuthorityArns", required: true)] + private InputList? _certificateAuthorityArns; + + /// + /// One or more ACM Amazon Resource Name (ARN)s. + /// + public InputList CertificateAuthorityArns + { + get => _certificateAuthorityArns ?? (_certificateAuthorityArns = new InputList()); + set => _certificateAuthorityArns = value; + } + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs.cs new file mode 100644 index 00000000000..c29cc212677 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs : Pulumi.ResourceArgs + { + /// + /// The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + /// + [Input("acm")] + public Input? Acm { get; set; } + + /// + /// The TLS validation context trust for a local file. + /// + [Input("file")] + public Input? File { get; set; } + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs.cs new file mode 100644 index 00000000000..478ea334a8d --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs : Pulumi.ResourceArgs + { + /// + /// The certificate chain for the certificate. + /// + [Input("certificateChain", required: true)] + public Input CertificateChain { get; set; } = null!; + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileGetArgs.cs new file mode 100644 index 00000000000..fd31f169d3e --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileGetArgs : Pulumi.ResourceArgs + { + /// + /// The certificate chain for the certificate. + /// + [Input("certificateChain", required: true)] + public Input CertificateChain { get; set; } = null!; + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustGetArgs.cs new file mode 100644 index 00000000000..60c26f794e1 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustGetArgs : Pulumi.ResourceArgs + { + /// + /// The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + /// + [Input("acm")] + public Input? Acm { get; set; } + + /// + /// The TLS validation context trust for a local file. + /// + [Input("file")] + public Input? File { get; set; } + + public VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsGetArgs.cs new file mode 100644 index 00000000000..297d2ec3237 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecBackendDefaultsGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecBackendDefaultsGetArgs : Pulumi.ResourceArgs + { + /// + /// The default client policy for virtual gateway backends. + /// + [Input("clientPolicy")] + public Input? ClientPolicy { get; set; } + + public VirtualGatewaySpecBackendDefaultsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecGetArgs.cs new file mode 100644 index 00000000000..47ca19be282 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecGetArgs.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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecGetArgs : Pulumi.ResourceArgs + { + /// + /// The defaults for backends. + /// + [Input("backendDefaults")] + public Input? BackendDefaults { get; set; } + + /// + /// The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + /// + [Input("listener", required: true)] + public Input Listener { get; set; } = null!; + + /// + /// The inbound and outbound access logging information for the virtual gateway. + /// + [Input("logging")] + public Input? Logging { get; set; } + + public VirtualGatewaySpecGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerArgs.cs new file mode 100644 index 00000000000..05bbf0df4a5 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerArgs.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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerArgs : Pulumi.ResourceArgs + { + /// + /// The health check information for the listener. + /// + [Input("healthCheck")] + public Input? HealthCheck { get; set; } + + /// + /// The port mapping information for the listener. + /// + [Input("portMapping", required: true)] + public Input PortMapping { get; set; } = null!; + + /// + /// The Transport Layer Security (TLS) properties for the listener + /// + [Input("tls")] + public Input? Tls { get; set; } + + public VirtualGatewaySpecListenerArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerGetArgs.cs new file mode 100644 index 00000000000..88d4c1836fa --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerGetArgs.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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerGetArgs : Pulumi.ResourceArgs + { + /// + /// The health check information for the listener. + /// + [Input("healthCheck")] + public Input? HealthCheck { get; set; } + + /// + /// The port mapping information for the listener. + /// + [Input("portMapping", required: true)] + public Input PortMapping { get; set; } = null!; + + /// + /// The Transport Layer Security (TLS) properties for the listener + /// + [Input("tls")] + public Input? Tls { get; set; } + + public VirtualGatewaySpecListenerGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerHealthCheckArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerHealthCheckArgs.cs new file mode 100644 index 00000000000..a6b6c4b25cd --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerHealthCheckArgs.cs @@ -0,0 +1,61 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerHealthCheckArgs : Pulumi.ResourceArgs + { + /// + /// The number of consecutive successful health checks that must occur before declaring listener healthy. + /// + [Input("healthyThreshold", required: true)] + public Input HealthyThreshold { get; set; } = null!; + + /// + /// The time period in milliseconds between each health check execution. + /// + [Input("intervalMillis", required: true)] + public Input IntervalMillis { get; set; } = null!; + + /// + /// The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + /// + [Input("path")] + public Input? Path { get; set; } + + /// + /// The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. + /// + [Input("port")] + public Input? Port { get; set; } + + /// + /// The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + /// + [Input("protocol", required: true)] + public Input Protocol { get; set; } = null!; + + /// + /// The amount of time to wait when receiving a response from the health check, in milliseconds. + /// + [Input("timeoutMillis", required: true)] + public Input TimeoutMillis { get; set; } = null!; + + /// + /// The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + /// + [Input("unhealthyThreshold", required: true)] + public Input UnhealthyThreshold { get; set; } = null!; + + public VirtualGatewaySpecListenerHealthCheckArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerHealthCheckGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerHealthCheckGetArgs.cs new file mode 100644 index 00000000000..fa32b8dbf80 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerHealthCheckGetArgs.cs @@ -0,0 +1,61 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerHealthCheckGetArgs : Pulumi.ResourceArgs + { + /// + /// The number of consecutive successful health checks that must occur before declaring listener healthy. + /// + [Input("healthyThreshold", required: true)] + public Input HealthyThreshold { get; set; } = null!; + + /// + /// The time period in milliseconds between each health check execution. + /// + [Input("intervalMillis", required: true)] + public Input IntervalMillis { get; set; } = null!; + + /// + /// The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + /// + [Input("path")] + public Input? Path { get; set; } + + /// + /// The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. + /// + [Input("port")] + public Input? Port { get; set; } + + /// + /// The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + /// + [Input("protocol", required: true)] + public Input Protocol { get; set; } = null!; + + /// + /// The amount of time to wait when receiving a response from the health check, in milliseconds. + /// + [Input("timeoutMillis", required: true)] + public Input TimeoutMillis { get; set; } = null!; + + /// + /// The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + /// + [Input("unhealthyThreshold", required: true)] + public Input UnhealthyThreshold { get; set; } = null!; + + public VirtualGatewaySpecListenerHealthCheckGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerPortMappingArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerPortMappingArgs.cs new file mode 100644 index 00000000000..8815ff69e22 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerPortMappingArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerPortMappingArgs : Pulumi.ResourceArgs + { + /// + /// The port used for the port mapping. + /// + [Input("port", required: true)] + public Input Port { get; set; } = null!; + + /// + /// The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. + /// + [Input("protocol", required: true)] + public Input Protocol { get; set; } = null!; + + public VirtualGatewaySpecListenerPortMappingArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerPortMappingGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerPortMappingGetArgs.cs new file mode 100644 index 00000000000..940f3135444 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerPortMappingGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerPortMappingGetArgs : Pulumi.ResourceArgs + { + /// + /// The port used for the port mapping. + /// + [Input("port", required: true)] + public Input Port { get; set; } = null!; + + /// + /// The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. + /// + [Input("protocol", required: true)] + public Input Protocol { get; set; } = null!; + + public VirtualGatewaySpecListenerPortMappingGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsArgs.cs new file mode 100644 index 00000000000..0bf0ec1457d --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsArgs : Pulumi.ResourceArgs + { + /// + /// The listener's TLS certificate. + /// + [Input("certificate", required: true)] + public Input Certificate { get; set; } = null!; + + /// + /// The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. + /// + [Input("mode", required: true)] + public Input Mode { get; set; } = null!; + + public VirtualGatewaySpecListenerTlsArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateAcmArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateAcmArgs.cs new file mode 100644 index 00000000000..4035317dcfe --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateAcmArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsCertificateAcmArgs : Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) for the certificate. + /// + [Input("certificateArn", required: true)] + public Input CertificateArn { get; set; } = null!; + + public VirtualGatewaySpecListenerTlsCertificateAcmArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateAcmGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateAcmGetArgs.cs new file mode 100644 index 00000000000..fa377e60928 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateAcmGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsCertificateAcmGetArgs : Pulumi.ResourceArgs + { + /// + /// The Amazon Resource Name (ARN) for the certificate. + /// + [Input("certificateArn", required: true)] + public Input CertificateArn { get; set; } = null!; + + public VirtualGatewaySpecListenerTlsCertificateAcmGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateArgs.cs new file mode 100644 index 00000000000..04b44edbb29 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsCertificateArgs : Pulumi.ResourceArgs + { + /// + /// An AWS Certificate Manager (ACM) certificate. + /// + [Input("acm")] + public Input? Acm { get; set; } + + /// + /// A local file certificate. + /// + [Input("file")] + public Input? File { get; set; } + + public VirtualGatewaySpecListenerTlsCertificateArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateFileArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateFileArgs.cs new file mode 100644 index 00000000000..bdd7d3569f9 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateFileArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsCertificateFileArgs : Pulumi.ResourceArgs + { + /// + /// The certificate chain for the certificate. + /// + [Input("certificateChain", required: true)] + public Input CertificateChain { get; set; } = null!; + + /// + /// The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + /// + [Input("privateKey", required: true)] + public Input PrivateKey { get; set; } = null!; + + public VirtualGatewaySpecListenerTlsCertificateFileArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateFileGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateFileGetArgs.cs new file mode 100644 index 00000000000..c44c537d401 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateFileGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsCertificateFileGetArgs : Pulumi.ResourceArgs + { + /// + /// The certificate chain for the certificate. + /// + [Input("certificateChain", required: true)] + public Input CertificateChain { get; set; } = null!; + + /// + /// The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + /// + [Input("privateKey", required: true)] + public Input PrivateKey { get; set; } = null!; + + public VirtualGatewaySpecListenerTlsCertificateFileGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateGetArgs.cs new file mode 100644 index 00000000000..4ffc054a6cf --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsCertificateGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsCertificateGetArgs : Pulumi.ResourceArgs + { + /// + /// An AWS Certificate Manager (ACM) certificate. + /// + [Input("acm")] + public Input? Acm { get; set; } + + /// + /// A local file certificate. + /// + [Input("file")] + public Input? File { get; set; } + + public VirtualGatewaySpecListenerTlsCertificateGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsGetArgs.cs new file mode 100644 index 00000000000..00478a5cffc --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecListenerTlsGetArgs.cs @@ -0,0 +1,31 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecListenerTlsGetArgs : Pulumi.ResourceArgs + { + /// + /// The listener's TLS certificate. + /// + [Input("certificate", required: true)] + public Input Certificate { get; set; } = null!; + + /// + /// The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. + /// + [Input("mode", required: true)] + public Input Mode { get; set; } = null!; + + public VirtualGatewaySpecListenerTlsGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogArgs.cs new file mode 100644 index 00000000000..b9989b1b903 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecLoggingAccessLogArgs : Pulumi.ResourceArgs + { + /// + /// The file object to send virtual gateway access logs to. + /// + [Input("file")] + public Input? File { get; set; } + + public VirtualGatewaySpecLoggingAccessLogArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogFileArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogFileArgs.cs new file mode 100644 index 00000000000..b94002c1951 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogFileArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecLoggingAccessLogFileArgs : Pulumi.ResourceArgs + { + /// + /// The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + /// + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + public VirtualGatewaySpecLoggingAccessLogFileArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogFileGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogFileGetArgs.cs new file mode 100644 index 00000000000..f211fb90b6d --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogFileGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecLoggingAccessLogFileGetArgs : Pulumi.ResourceArgs + { + /// + /// The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + /// + [Input("path", required: true)] + public Input Path { get; set; } = null!; + + public VirtualGatewaySpecLoggingAccessLogFileGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogGetArgs.cs new file mode 100644 index 00000000000..8a3c688ea32 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingAccessLogGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecLoggingAccessLogGetArgs : Pulumi.ResourceArgs + { + /// + /// The file object to send virtual gateway access logs to. + /// + [Input("file")] + public Input? File { get; set; } + + public VirtualGatewaySpecLoggingAccessLogGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingArgs.cs new file mode 100644 index 00000000000..4ea11039af2 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecLoggingArgs : Pulumi.ResourceArgs + { + /// + /// The access log configuration for a virtual gateway. + /// + [Input("accessLog")] + public Input? AccessLog { get; set; } + + public VirtualGatewaySpecLoggingArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingGetArgs.cs b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingGetArgs.cs new file mode 100644 index 00000000000..9406203eda6 --- /dev/null +++ b/sdk/dotnet/AppMesh/Inputs/VirtualGatewaySpecLoggingGetArgs.cs @@ -0,0 +1,25 @@ +// *** 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.Aws.AppMesh.Inputs +{ + + public sealed class VirtualGatewaySpecLoggingGetArgs : Pulumi.ResourceArgs + { + /// + /// The access log configuration for a virtual gateway. + /// + [Input("accessLog")] + public Input? AccessLog { get; set; } + + public VirtualGatewaySpecLoggingGetArgs() + { + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpec.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpec.cs new file mode 100644 index 00000000000..8e5d9ab238d --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpec.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpec + { + /// + /// The specification of a gRPC gateway route. + /// + public readonly Outputs.GatewayRouteSpecGrpcRoute? GrpcRoute; + /// + /// The specification of an HTTP/2 gateway route. + /// + public readonly Outputs.GatewayRouteSpecHttp2Route? Http2Route; + /// + /// The specification of an HTTP gateway route. + /// + public readonly Outputs.GatewayRouteSpecHttpRoute? HttpRoute; + + [OutputConstructor] + private GatewayRouteSpec( + Outputs.GatewayRouteSpecGrpcRoute? grpcRoute, + + Outputs.GatewayRouteSpecHttp2Route? http2Route, + + Outputs.GatewayRouteSpecHttpRoute? httpRoute) + { + GrpcRoute = grpcRoute; + Http2Route = http2Route; + HttpRoute = httpRoute; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRoute.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRoute.cs new file mode 100644 index 00000000000..2e30aae3526 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRoute.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecGrpcRoute + { + /// + /// The action to take if a match is determined. + /// + public readonly Outputs.GatewayRouteSpecGrpcRouteAction Action; + /// + /// The criteria for determining a request match. + /// + public readonly Outputs.GatewayRouteSpecGrpcRouteMatch Match; + + [OutputConstructor] + private GatewayRouteSpecGrpcRoute( + Outputs.GatewayRouteSpecGrpcRouteAction action, + + Outputs.GatewayRouteSpecGrpcRouteMatch match) + { + Action = action; + Match = match; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteAction.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteAction.cs new file mode 100644 index 00000000000..ff8784638f9 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteAction.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecGrpcRouteAction + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + public readonly Outputs.GatewayRouteSpecGrpcRouteActionTarget Target; + + [OutputConstructor] + private GatewayRouteSpecGrpcRouteAction(Outputs.GatewayRouteSpecGrpcRouteActionTarget target) + { + Target = target; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteActionTarget.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteActionTarget.cs new file mode 100644 index 00000000000..c282e77a6df --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteActionTarget.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecGrpcRouteActionTarget + { + /// + /// The virtual service gateway route target. + /// + public readonly Outputs.GatewayRouteSpecGrpcRouteActionTargetVirtualService VirtualService; + + [OutputConstructor] + private GatewayRouteSpecGrpcRouteActionTarget(Outputs.GatewayRouteSpecGrpcRouteActionTargetVirtualService virtualService) + { + VirtualService = virtualService; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteActionTargetVirtualService.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteActionTargetVirtualService.cs new file mode 100644 index 00000000000..cc14475906d --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteActionTargetVirtualService.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecGrpcRouteActionTargetVirtualService + { + /// + /// The name of the virtual service that traffic is routed to. + /// + public readonly string VirtualServiceName; + + [OutputConstructor] + private GatewayRouteSpecGrpcRouteActionTargetVirtualService(string virtualServiceName) + { + VirtualServiceName = virtualServiceName; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteMatch.cs new file mode 100644 index 00000000000..d278689e2f3 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecGrpcRouteMatch.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecGrpcRouteMatch + { + /// + /// The fully qualified domain name for the service to match from the request. + /// + public readonly string ServiceName; + + [OutputConstructor] + private GatewayRouteSpecGrpcRouteMatch(string serviceName) + { + ServiceName = serviceName; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2Route.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2Route.cs new file mode 100644 index 00000000000..d340e8612a8 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2Route.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttp2Route + { + /// + /// The action to take if a match is determined. + /// + public readonly Outputs.GatewayRouteSpecHttp2RouteAction Action; + /// + /// The criteria for determining a request match. + /// + public readonly Outputs.GatewayRouteSpecHttp2RouteMatch Match; + + [OutputConstructor] + private GatewayRouteSpecHttp2Route( + Outputs.GatewayRouteSpecHttp2RouteAction action, + + Outputs.GatewayRouteSpecHttp2RouteMatch match) + { + Action = action; + Match = match; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteAction.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteAction.cs new file mode 100644 index 00000000000..2afa97b70f0 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteAction.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttp2RouteAction + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + public readonly Outputs.GatewayRouteSpecHttp2RouteActionTarget Target; + + [OutputConstructor] + private GatewayRouteSpecHttp2RouteAction(Outputs.GatewayRouteSpecHttp2RouteActionTarget target) + { + Target = target; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteActionTarget.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteActionTarget.cs new file mode 100644 index 00000000000..17b8e605e35 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteActionTarget.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttp2RouteActionTarget + { + /// + /// The virtual service gateway route target. + /// + public readonly Outputs.GatewayRouteSpecHttp2RouteActionTargetVirtualService VirtualService; + + [OutputConstructor] + private GatewayRouteSpecHttp2RouteActionTarget(Outputs.GatewayRouteSpecHttp2RouteActionTargetVirtualService virtualService) + { + VirtualService = virtualService; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteActionTargetVirtualService.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteActionTargetVirtualService.cs new file mode 100644 index 00000000000..77c2c400b14 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteActionTargetVirtualService.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttp2RouteActionTargetVirtualService + { + /// + /// The name of the virtual service that traffic is routed to. + /// + public readonly string VirtualServiceName; + + [OutputConstructor] + private GatewayRouteSpecHttp2RouteActionTargetVirtualService(string virtualServiceName) + { + VirtualServiceName = virtualServiceName; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatch.cs new file mode 100644 index 00000000000..c5dfd76d6e1 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttp2RouteMatch.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttp2RouteMatch + { + /// + /// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + /// + public readonly string Prefix; + + [OutputConstructor] + private GatewayRouteSpecHttp2RouteMatch(string prefix) + { + Prefix = prefix; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRoute.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRoute.cs new file mode 100644 index 00000000000..93b30c9b548 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRoute.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttpRoute + { + /// + /// The action to take if a match is determined. + /// + public readonly Outputs.GatewayRouteSpecHttpRouteAction Action; + /// + /// The criteria for determining a request match. + /// + public readonly Outputs.GatewayRouteSpecHttpRouteMatch Match; + + [OutputConstructor] + private GatewayRouteSpecHttpRoute( + Outputs.GatewayRouteSpecHttpRouteAction action, + + Outputs.GatewayRouteSpecHttpRouteMatch match) + { + Action = action; + Match = match; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteAction.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteAction.cs new file mode 100644 index 00000000000..278ca2dce03 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteAction.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttpRouteAction + { + /// + /// The target that traffic is routed to when a request matches the gateway route. + /// + public readonly Outputs.GatewayRouteSpecHttpRouteActionTarget Target; + + [OutputConstructor] + private GatewayRouteSpecHttpRouteAction(Outputs.GatewayRouteSpecHttpRouteActionTarget target) + { + Target = target; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteActionTarget.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteActionTarget.cs new file mode 100644 index 00000000000..a3599c16c5e --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteActionTarget.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttpRouteActionTarget + { + /// + /// The virtual service gateway route target. + /// + public readonly Outputs.GatewayRouteSpecHttpRouteActionTargetVirtualService VirtualService; + + [OutputConstructor] + private GatewayRouteSpecHttpRouteActionTarget(Outputs.GatewayRouteSpecHttpRouteActionTargetVirtualService virtualService) + { + VirtualService = virtualService; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteActionTargetVirtualService.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteActionTargetVirtualService.cs new file mode 100644 index 00000000000..4a29e597221 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteActionTargetVirtualService.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttpRouteActionTargetVirtualService + { + /// + /// The name of the virtual service that traffic is routed to. + /// + public readonly string VirtualServiceName; + + [OutputConstructor] + private GatewayRouteSpecHttpRouteActionTargetVirtualService(string virtualServiceName) + { + VirtualServiceName = virtualServiceName; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatch.cs b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatch.cs new file mode 100644 index 00000000000..ea5f2909e48 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/GatewayRouteSpecHttpRouteMatch.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class GatewayRouteSpecHttpRouteMatch + { + /// + /// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + /// + public readonly string Prefix; + + [OutputConstructor] + private GatewayRouteSpecHttpRouteMatch(string prefix) + { + Prefix = prefix; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpec.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpec.cs new file mode 100644 index 00000000000..bcb38641764 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpec.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpec + { + /// + /// The defaults for backends. + /// + public readonly Outputs.VirtualGatewaySpecBackendDefaults? BackendDefaults; + /// + /// The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + /// + public readonly Outputs.VirtualGatewaySpecListener Listener; + /// + /// The inbound and outbound access logging information for the virtual gateway. + /// + public readonly Outputs.VirtualGatewaySpecLogging? Logging; + + [OutputConstructor] + private VirtualGatewaySpec( + Outputs.VirtualGatewaySpecBackendDefaults? backendDefaults, + + Outputs.VirtualGatewaySpecListener listener, + + Outputs.VirtualGatewaySpecLogging? logging) + { + BackendDefaults = backendDefaults; + Listener = listener; + Logging = logging; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaults.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaults.cs new file mode 100644 index 00000000000..d213cea4157 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaults.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecBackendDefaults + { + /// + /// The default client policy for virtual gateway backends. + /// + public readonly Outputs.VirtualGatewaySpecBackendDefaultsClientPolicy? ClientPolicy; + + [OutputConstructor] + private VirtualGatewaySpecBackendDefaults(Outputs.VirtualGatewaySpecBackendDefaultsClientPolicy? clientPolicy) + { + ClientPolicy = clientPolicy; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicy.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicy.cs new file mode 100644 index 00000000000..513c1762a02 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicy.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicy + { + /// + /// The Transport Layer Security (TLS) client policy. + /// + public readonly Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTls? Tls; + + [OutputConstructor] + private VirtualGatewaySpecBackendDefaultsClientPolicy(Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTls? tls) + { + Tls = tls; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTls.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTls.cs new file mode 100644 index 00000000000..413d13dfdf3 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTls.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTls + { + public readonly bool? Enforce; + /// + /// One or more ports that the policy is enforced for. + /// + public readonly ImmutableArray Ports; + /// + /// The TLS validation context. + /// + public readonly Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation Validation; + + [OutputConstructor] + private VirtualGatewaySpecBackendDefaultsClientPolicyTls( + bool? enforce, + + ImmutableArray ports, + + Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation validation) + { + Enforce = enforce; + Ports = ports; + Validation = validation; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation.cs new file mode 100644 index 00000000000..180ae5188a5 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation + { + /// + /// The TLS validation context trust. + /// + public readonly Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust Trust; + + [OutputConstructor] + private VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation(Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust trust) + { + Trust = trust; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust.cs new file mode 100644 index 00000000000..fc7e9383829 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust + { + /// + /// The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + /// + public readonly Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm? Acm; + /// + /// The TLS validation context trust for a local file. + /// + public readonly Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile? File; + + [OutputConstructor] + private VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust( + Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm? acm, + + Outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile? file) + { + Acm = acm; + File = file; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm.cs new file mode 100644 index 00000000000..d40ffc862e9 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm + { + /// + /// One or more ACM Amazon Resource Name (ARN)s. + /// + public readonly ImmutableArray CertificateAuthorityArns; + + [OutputConstructor] + private VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm(ImmutableArray certificateAuthorityArns) + { + CertificateAuthorityArns = certificateAuthorityArns; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile.cs new file mode 100644 index 00000000000..3abf6c8db1f --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile + { + /// + /// The certificate chain for the certificate. + /// + public readonly string CertificateChain; + + [OutputConstructor] + private VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile(string certificateChain) + { + CertificateChain = certificateChain; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListener.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListener.cs new file mode 100644 index 00000000000..8223000763c --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListener.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecListener + { + /// + /// The health check information for the listener. + /// + public readonly Outputs.VirtualGatewaySpecListenerHealthCheck? HealthCheck; + /// + /// The port mapping information for the listener. + /// + public readonly Outputs.VirtualGatewaySpecListenerPortMapping PortMapping; + /// + /// The Transport Layer Security (TLS) properties for the listener + /// + public readonly Outputs.VirtualGatewaySpecListenerTls? Tls; + + [OutputConstructor] + private VirtualGatewaySpecListener( + Outputs.VirtualGatewaySpecListenerHealthCheck? healthCheck, + + Outputs.VirtualGatewaySpecListenerPortMapping portMapping, + + Outputs.VirtualGatewaySpecListenerTls? tls) + { + HealthCheck = healthCheck; + PortMapping = portMapping; + Tls = tls; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerHealthCheck.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerHealthCheck.cs new file mode 100644 index 00000000000..a63d70e5614 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerHealthCheck.cs @@ -0,0 +1,70 @@ +// *** 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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecListenerHealthCheck + { + /// + /// The number of consecutive successful health checks that must occur before declaring listener healthy. + /// + public readonly int HealthyThreshold; + /// + /// The time period in milliseconds between each health check execution. + /// + public readonly int IntervalMillis; + /// + /// The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + /// + public readonly string? Path; + /// + /// The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. + /// + public readonly int? Port; + /// + /// The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + /// + public readonly string Protocol; + /// + /// The amount of time to wait when receiving a response from the health check, in milliseconds. + /// + public readonly int TimeoutMillis; + /// + /// The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + /// + public readonly int UnhealthyThreshold; + + [OutputConstructor] + private VirtualGatewaySpecListenerHealthCheck( + int healthyThreshold, + + int intervalMillis, + + string? path, + + int? port, + + string protocol, + + int timeoutMillis, + + int unhealthyThreshold) + { + HealthyThreshold = healthyThreshold; + IntervalMillis = intervalMillis; + Path = path; + Port = port; + Protocol = protocol; + TimeoutMillis = timeoutMillis; + UnhealthyThreshold = unhealthyThreshold; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerPortMapping.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerPortMapping.cs new file mode 100644 index 00000000000..5f3874eec09 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerPortMapping.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecListenerPortMapping + { + /// + /// The port used for the port mapping. + /// + public readonly int Port; + /// + /// The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. + /// + public readonly string Protocol; + + [OutputConstructor] + private VirtualGatewaySpecListenerPortMapping( + int port, + + string protocol) + { + Port = port; + Protocol = protocol; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTls.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTls.cs new file mode 100644 index 00000000000..031f23cdd71 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTls.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecListenerTls + { + /// + /// The listener's TLS certificate. + /// + public readonly Outputs.VirtualGatewaySpecListenerTlsCertificate Certificate; + /// + /// The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. + /// + public readonly string Mode; + + [OutputConstructor] + private VirtualGatewaySpecListenerTls( + Outputs.VirtualGatewaySpecListenerTlsCertificate certificate, + + string mode) + { + Certificate = certificate; + Mode = mode; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificate.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificate.cs new file mode 100644 index 00000000000..46dfcad1de5 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificate.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecListenerTlsCertificate + { + /// + /// An AWS Certificate Manager (ACM) certificate. + /// + public readonly Outputs.VirtualGatewaySpecListenerTlsCertificateAcm? Acm; + /// + /// A local file certificate. + /// + public readonly Outputs.VirtualGatewaySpecListenerTlsCertificateFile? File; + + [OutputConstructor] + private VirtualGatewaySpecListenerTlsCertificate( + Outputs.VirtualGatewaySpecListenerTlsCertificateAcm? acm, + + Outputs.VirtualGatewaySpecListenerTlsCertificateFile? file) + { + Acm = acm; + File = file; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificateAcm.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificateAcm.cs new file mode 100644 index 00000000000..9391875d334 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificateAcm.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecListenerTlsCertificateAcm + { + /// + /// The Amazon Resource Name (ARN) for the certificate. + /// + public readonly string CertificateArn; + + [OutputConstructor] + private VirtualGatewaySpecListenerTlsCertificateAcm(string certificateArn) + { + CertificateArn = certificateArn; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificateFile.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificateFile.cs new file mode 100644 index 00000000000..b1fb7fabf04 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecListenerTlsCertificateFile.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecListenerTlsCertificateFile + { + /// + /// The certificate chain for the certificate. + /// + public readonly string CertificateChain; + /// + /// The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + /// + public readonly string PrivateKey; + + [OutputConstructor] + private VirtualGatewaySpecListenerTlsCertificateFile( + string certificateChain, + + string privateKey) + { + CertificateChain = certificateChain; + PrivateKey = privateKey; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLogging.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLogging.cs new file mode 100644 index 00000000000..e13f0cc8028 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLogging.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecLogging + { + /// + /// The access log configuration for a virtual gateway. + /// + public readonly Outputs.VirtualGatewaySpecLoggingAccessLog? AccessLog; + + [OutputConstructor] + private VirtualGatewaySpecLogging(Outputs.VirtualGatewaySpecLoggingAccessLog? accessLog) + { + AccessLog = accessLog; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLoggingAccessLog.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLoggingAccessLog.cs new file mode 100644 index 00000000000..4185fe0ca80 --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLoggingAccessLog.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecLoggingAccessLog + { + /// + /// The file object to send virtual gateway access logs to. + /// + public readonly Outputs.VirtualGatewaySpecLoggingAccessLogFile? File; + + [OutputConstructor] + private VirtualGatewaySpecLoggingAccessLog(Outputs.VirtualGatewaySpecLoggingAccessLogFile? file) + { + File = file; + } + } +} diff --git a/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLoggingAccessLogFile.cs b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLoggingAccessLogFile.cs new file mode 100644 index 00000000000..70810819d3f --- /dev/null +++ b/sdk/dotnet/AppMesh/Outputs/VirtualGatewaySpecLoggingAccessLogFile.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.Aws.AppMesh.Outputs +{ + + [OutputType] + public sealed class VirtualGatewaySpecLoggingAccessLogFile + { + /// + /// The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + /// + public readonly string Path; + + [OutputConstructor] + private VirtualGatewaySpecLoggingAccessLogFile(string path) + { + Path = path; + } + } +} diff --git a/sdk/dotnet/AppMesh/VirtualGateway.cs b/sdk/dotnet/AppMesh/VirtualGateway.cs new file mode 100644 index 00000000000..663faf63e27 --- /dev/null +++ b/sdk/dotnet/AppMesh/VirtualGateway.cs @@ -0,0 +1,309 @@ +// *** 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.Aws.AppMesh +{ + /// + /// Provides an AWS App Mesh virtual gateway resource. + /// + /// ## Example Usage + /// ### Basic + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var example = new Aws.AppMesh.VirtualGateway("example", new Aws.AppMesh.VirtualGatewayArgs + /// { + /// MeshName = "example-service-mesh", + /// Spec = new Aws.AppMesh.Inputs.VirtualGatewaySpecArgs + /// { + /// Listener = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerArgs + /// { + /// PortMapping = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerPortMappingArgs + /// { + /// Port = 8080, + /// Protocol = "http", + /// }, + /// }, + /// }, + /// Tags = + /// { + /// { "Environment", "test" }, + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// ### Access Logs and TLS + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var example = new Aws.AppMesh.VirtualGateway("example", new Aws.AppMesh.VirtualGatewayArgs + /// { + /// MeshName = "example-service-mesh", + /// Spec = new Aws.AppMesh.Inputs.VirtualGatewaySpecArgs + /// { + /// Listener = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerArgs + /// { + /// PortMapping = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerPortMappingArgs + /// { + /// Port = 8080, + /// Protocol = "http", + /// }, + /// Tls = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerTlsArgs + /// { + /// Certificate = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerTlsCertificateArgs + /// { + /// Acm = new Aws.AppMesh.Inputs.VirtualGatewaySpecListenerTlsCertificateAcmArgs + /// { + /// CertificateArn = aws_acm_certificate.Example.Arn, + /// }, + /// }, + /// Mode = "STRICT", + /// }, + /// }, + /// Logging = new Aws.AppMesh.Inputs.VirtualGatewaySpecLoggingArgs + /// { + /// AccessLog = new Aws.AppMesh.Inputs.VirtualGatewaySpecLoggingAccessLogArgs + /// { + /// File = new Aws.AppMesh.Inputs.VirtualGatewaySpecLoggingAccessLogFileArgs + /// { + /// Path = "/var/log/access.log", + /// }, + /// }, + /// }, + /// }, + /// }); + /// } + /// + /// } + /// ``` + /// + public partial class VirtualGateway : Pulumi.CustomResource + { + /// + /// The ARN of the virtual gateway. + /// + [Output("arn")] + public Output Arn { get; private set; } = null!; + + /// + /// The creation date of the virtual gateway. + /// + [Output("createdDate")] + public Output CreatedDate { get; private set; } = null!; + + /// + /// The last update date of the virtual gateway. + /// + [Output("lastUpdatedDate")] + public Output LastUpdatedDate { get; private set; } = null!; + + /// + /// The name of the service mesh in which to create the virtual gateway. + /// + [Output("meshName")] + public Output MeshName { get; private set; } = null!; + + /// + /// The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + /// + [Output("meshOwner")] + public Output MeshOwner { get; private set; } = null!; + + /// + /// The name to use for the virtual gateway. + /// + [Output("name")] + public Output Name { get; private set; } = null!; + + /// + /// The resource owner's AWS account ID. + /// + [Output("resourceOwner")] + public Output ResourceOwner { get; private set; } = null!; + + /// + /// The virtual gateway specification to apply. + /// + [Output("spec")] + public Output Spec { get; private set; } = null!; + + /// + /// A map of tags to assign to the resource. + /// + [Output("tags")] + public Output?> Tags { get; private set; } = null!; + + + /// + /// Create a VirtualGateway 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 VirtualGateway(string name, VirtualGatewayArgs args, CustomResourceOptions? options = null) + : base("aws:appmesh/virtualGateway:VirtualGateway", name, args ?? new VirtualGatewayArgs(), MakeResourceOptions(options, "")) + { + } + + private VirtualGateway(string name, Input id, VirtualGatewayState? state = null, CustomResourceOptions? options = null) + : base("aws:appmesh/virtualGateway:VirtualGateway", 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 VirtualGateway 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 VirtualGateway Get(string name, Input id, VirtualGatewayState? state = null, CustomResourceOptions? options = null) + { + return new VirtualGateway(name, id, state, options); + } + } + + public sealed class VirtualGatewayArgs : Pulumi.ResourceArgs + { + /// + /// The name of the service mesh in which to create the virtual gateway. + /// + [Input("meshName", required: true)] + public Input MeshName { get; set; } = null!; + + /// + /// The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + /// + [Input("meshOwner")] + public Input? MeshOwner { get; set; } + + /// + /// The name to use for the virtual gateway. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The virtual gateway specification to apply. + /// + [Input("spec", required: true)] + public Input Spec { get; set; } = null!; + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public VirtualGatewayArgs() + { + } + } + + public sealed class VirtualGatewayState : Pulumi.ResourceArgs + { + /// + /// The ARN of the virtual gateway. + /// + [Input("arn")] + public Input? Arn { get; set; } + + /// + /// The creation date of the virtual gateway. + /// + [Input("createdDate")] + public Input? CreatedDate { get; set; } + + /// + /// The last update date of the virtual gateway. + /// + [Input("lastUpdatedDate")] + public Input? LastUpdatedDate { get; set; } + + /// + /// The name of the service mesh in which to create the virtual gateway. + /// + [Input("meshName")] + public Input? MeshName { get; set; } + + /// + /// The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + /// + [Input("meshOwner")] + public Input? MeshOwner { get; set; } + + /// + /// The name to use for the virtual gateway. + /// + [Input("name")] + public Input? Name { get; set; } + + /// + /// The resource owner's AWS account ID. + /// + [Input("resourceOwner")] + public Input? ResourceOwner { get; set; } + + /// + /// The virtual gateway specification to apply. + /// + [Input("spec")] + public Input? Spec { get; set; } + + [Input("tags")] + private InputMap? _tags; + + /// + /// A map of tags to assign to the resource. + /// + public InputMap Tags + { + get => _tags ?? (_tags = new InputMap()); + set => _tags = value; + } + + public VirtualGatewayState() + { + } + } +} diff --git a/sdk/dotnet/Backup/Inputs/PlanAdvancedBackupSettingArgs.cs b/sdk/dotnet/Backup/Inputs/PlanAdvancedBackupSettingArgs.cs new file mode 100644 index 00000000000..5e9ae1e5824 --- /dev/null +++ b/sdk/dotnet/Backup/Inputs/PlanAdvancedBackupSettingArgs.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.Aws.Backup.Inputs +{ + + public sealed class PlanAdvancedBackupSettingArgs : Pulumi.ResourceArgs + { + [Input("backupOptions")] + private InputMap? _backupOptions; + + /// + /// Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + /// + public InputMap BackupOptions + { + get => _backupOptions ?? (_backupOptions = new InputMap()); + set => _backupOptions = value; + } + + /// + /// The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + /// + [Input("resourceType")] + public Input? ResourceType { get; set; } + + public PlanAdvancedBackupSettingArgs() + { + } + } +} diff --git a/sdk/dotnet/Backup/Inputs/PlanAdvancedBackupSettingGetArgs.cs b/sdk/dotnet/Backup/Inputs/PlanAdvancedBackupSettingGetArgs.cs new file mode 100644 index 00000000000..6e560bb55e5 --- /dev/null +++ b/sdk/dotnet/Backup/Inputs/PlanAdvancedBackupSettingGetArgs.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.Aws.Backup.Inputs +{ + + public sealed class PlanAdvancedBackupSettingGetArgs : Pulumi.ResourceArgs + { + [Input("backupOptions")] + private InputMap? _backupOptions; + + /// + /// Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + /// + public InputMap BackupOptions + { + get => _backupOptions ?? (_backupOptions = new InputMap()); + set => _backupOptions = value; + } + + /// + /// The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + /// + [Input("resourceType")] + public Input? ResourceType { get; set; } + + public PlanAdvancedBackupSettingGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Backup/Outputs/PlanAdvancedBackupSetting.cs b/sdk/dotnet/Backup/Outputs/PlanAdvancedBackupSetting.cs new file mode 100644 index 00000000000..3167cb5eef0 --- /dev/null +++ b/sdk/dotnet/Backup/Outputs/PlanAdvancedBackupSetting.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.Aws.Backup.Outputs +{ + + [OutputType] + public sealed class PlanAdvancedBackupSetting + { + /// + /// Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + /// + public readonly ImmutableDictionary? BackupOptions; + /// + /// The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + /// + public readonly string? ResourceType; + + [OutputConstructor] + private PlanAdvancedBackupSetting( + ImmutableDictionary? backupOptions, + + string? resourceType) + { + BackupOptions = backupOptions; + ResourceType = resourceType; + } + } +} diff --git a/sdk/dotnet/Backup/Plan.cs b/sdk/dotnet/Backup/Plan.cs index 2f4f4fff1d7..cf0bd2c112c 100644 --- a/sdk/dotnet/Backup/Plan.cs +++ b/sdk/dotnet/Backup/Plan.cs @@ -33,6 +33,17 @@ namespace Pulumi.Aws.Backup /// Schedule = "cron(0 12 * * ? *)", /// }, /// }, + /// AdvancedBackupSettings = + /// { + /// new Aws.Backup.Inputs.PlanAdvancedBackupSettingArgs + /// { + /// BackupOptions = + /// { + /// { "WindowsVSS", "enabled" }, + /// }, + /// ResourceType = "EC2", + /// }, + /// }, /// }); /// } /// @@ -41,6 +52,12 @@ namespace Pulumi.Aws.Backup /// public partial class Plan : Pulumi.CustomResource { + /// + /// An object that specifies backup options for each resource type. + /// + [Output("advancedBackupSettings")] + public Output> AdvancedBackupSettings { get; private set; } = null!; + /// /// The ARN of the backup plan. /// @@ -117,6 +134,18 @@ public static Plan Get(string name, Input id, PlanState? state = null, C public sealed class PlanArgs : Pulumi.ResourceArgs { + [Input("advancedBackupSettings")] + private InputList? _advancedBackupSettings; + + /// + /// An object that specifies backup options for each resource type. + /// + public InputList AdvancedBackupSettings + { + get => _advancedBackupSettings ?? (_advancedBackupSettings = new InputList()); + set => _advancedBackupSettings = value; + } + /// /// The display name of a backup plan. /// @@ -154,6 +183,18 @@ public PlanArgs() public sealed class PlanState : Pulumi.ResourceArgs { + [Input("advancedBackupSettings")] + private InputList? _advancedBackupSettings; + + /// + /// An object that specifies backup options for each resource type. + /// + public InputList AdvancedBackupSettings + { + get => _advancedBackupSettings ?? (_advancedBackupSettings = new InputList()); + set => _advancedBackupSettings = value; + } + /// /// The ARN of the backup plan. /// diff --git a/sdk/dotnet/Backup/VaultNotifications.cs b/sdk/dotnet/Backup/VaultNotifications.cs index 011a2b079d9..8197e290eb4 100644 --- a/sdk/dotnet/Backup/VaultNotifications.cs +++ b/sdk/dotnet/Backup/VaultNotifications.cs @@ -64,7 +64,7 @@ namespace Pulumi.Aws.Backup /// var testVaultNotifications = new Aws.Backup.VaultNotifications("testVaultNotifications", new Aws.Backup.VaultNotificationsArgs /// { /// BackupVaultName = "example_backup_vault", - /// SnsTopicArn = sns_topic_arn.Test.Arn, + /// SnsTopicArn = testTopic.Arn, /// BackupVaultEvents = /// { /// "BACKUP_JOB_STARTED", diff --git a/sdk/dotnet/CodeArtifact/GetRepositoryEndpoint.cs b/sdk/dotnet/CodeArtifact/GetRepositoryEndpoint.cs new file mode 100644 index 00000000000..961e21be807 --- /dev/null +++ b/sdk/dotnet/CodeArtifact/GetRepositoryEndpoint.cs @@ -0,0 +1,117 @@ +// *** 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.Aws.CodeArtifact +{ + public static class GetRepositoryEndpoint + { + /// + /// The CodeArtifact Repository Endpoint data source returns the endpoint of a repository for a specific package format. + /// + /// {{% examples %}} + /// ## Example Usage + /// {{% example %}} + /// + /// ```csharp + /// using Pulumi; + /// using Aws = Pulumi.Aws; + /// + /// class MyStack : Stack + /// { + /// public MyStack() + /// { + /// var test = Output.Create(Aws.CodeArtifact.GetRepositoryEndpoint.InvokeAsync(new Aws.CodeArtifact.GetRepositoryEndpointArgs + /// { + /// Domain = aws_codeartifact_domain.Test.Domain, + /// Repository = aws_codeartifact_repository.Test.Repository, + /// Format = "npm", + /// })); + /// } + /// + /// } + /// ``` + /// {{% /example %}} + /// {{% /examples %}} + /// + public static Task InvokeAsync(GetRepositoryEndpointArgs args, InvokeOptions? options = null) + => Pulumi.Deployment.Instance.InvokeAsync("aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint", args ?? new GetRepositoryEndpointArgs(), options.WithVersion()); + } + + + public sealed class GetRepositoryEndpointArgs : Pulumi.InvokeArgs + { + /// + /// The name of the domain that contains the repository. + /// + [Input("domain", required: true)] + public string Domain { get; set; } = null!; + + /// + /// The account number of the AWS account that owns the domain. + /// + [Input("domainOwner")] + public string? DomainOwner { get; set; } + + /// + /// Which endpoint of a repository to return. A repository has one endpoint for each package format: `npm`, `pypi`, and `maven`. + /// + [Input("format", required: true)] + public string Format { get; set; } = null!; + + /// + /// The name of the repository. + /// + [Input("repository", required: true)] + public string Repository { get; set; } = null!; + + public GetRepositoryEndpointArgs() + { + } + } + + + [OutputType] + public sealed class GetRepositoryEndpointResult + { + public readonly string Domain; + public readonly string DomainOwner; + public readonly string Format; + /// + /// The provider-assigned unique ID for this managed resource. + /// + public readonly string Id; + public readonly string Repository; + /// + /// The URL of the returned endpoint. + /// + public readonly string RepositoryEndpoint; + + [OutputConstructor] + private GetRepositoryEndpointResult( + string domain, + + string domainOwner, + + string format, + + string id, + + string repository, + + string repositoryEndpoint) + { + Domain = domain; + DomainOwner = domainOwner; + Format = format; + Id = id; + Repository = repository; + RepositoryEndpoint = repositoryEndpoint; + } + } +} diff --git a/sdk/dotnet/Config/Config.cs b/sdk/dotnet/Config/Config.cs index f87b2827add..85b5e321f1f 100644 --- a/sdk/dotnet/Config/Config.cs +++ b/sdk/dotnet/Config/Config.cs @@ -224,6 +224,7 @@ public class Endpoints public string? Route53resolver { get; set; } = null!; public string? S3 { get; set; } = null!; public string? S3control { get; set; } = null!; + public string? S3outposts { get; set; } = null!; public string? Sagemaker { get; set; } = null!; public string? Sdb { get; set; } = null!; public string? Secretsmanager { get; set; } = null!; diff --git a/sdk/dotnet/Ec2/SecurityGroupRule.cs b/sdk/dotnet/Ec2/SecurityGroupRule.cs index c23c326a800..f331420ab67 100644 --- a/sdk/dotnet/Ec2/SecurityGroupRule.cs +++ b/sdk/dotnet/Ec2/SecurityGroupRule.cs @@ -54,7 +54,7 @@ namespace Pulumi.Aws.Ec2 /// ``` /// ## Usage with prefix list IDs /// - /// Prefix list IDs are manged by AWS internally. Prefix list IDs + /// Prefix list IDs are managed by AWS internally. Prefix list IDs /// are associated with a prefix list name, or service name, that is linked to a specific region. /// Prefix list IDs are exported on VPC Endpoints, so you can use this format: /// diff --git a/sdk/dotnet/Ec2TransitGateway/Route.cs b/sdk/dotnet/Ec2TransitGateway/Route.cs index e88c6edf467..fd94c4ef932 100644 --- a/sdk/dotnet/Ec2TransitGateway/Route.cs +++ b/sdk/dotnet/Ec2TransitGateway/Route.cs @@ -63,7 +63,7 @@ public partial class Route : Pulumi.CustomResource public Output Blackhole { get; private set; } = null!; /// - /// IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + /// IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. /// [Output("destinationCidrBlock")] public Output DestinationCidrBlock { get; private set; } = null!; @@ -133,7 +133,7 @@ public sealed class RouteArgs : Pulumi.ResourceArgs public Input? Blackhole { get; set; } /// - /// IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + /// IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. /// [Input("destinationCidrBlock", required: true)] public Input DestinationCidrBlock { get; set; } = null!; @@ -164,7 +164,7 @@ public sealed class RouteState : Pulumi.ResourceArgs public Input? Blackhole { get; set; } /// - /// IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + /// IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. /// [Input("destinationCidrBlock")] public Input? DestinationCidrBlock { get; set; } diff --git a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs index 89566e743c2..0d5129bd623 100644 --- a/sdk/dotnet/Inputs/ProviderEndpointArgs.cs +++ b/sdk/dotnet/Inputs/ProviderEndpointArgs.cs @@ -357,6 +357,9 @@ public sealed class ProviderEndpointArgs : Pulumi.ResourceArgs [Input("s3control")] public Input? S3control { get; set; } + [Input("s3outposts")] + public Input? S3outposts { get; set; } + [Input("sagemaker")] public Input? Sagemaker { get; set; } diff --git a/sdk/dotnet/Outputs/ProviderEndpoint.cs b/sdk/dotnet/Outputs/ProviderEndpoint.cs index 77065f86523..a2b08e68deb 100644 --- a/sdk/dotnet/Outputs/ProviderEndpoint.cs +++ b/sdk/dotnet/Outputs/ProviderEndpoint.cs @@ -128,6 +128,7 @@ public sealed class ProviderEndpoint public readonly string? Route53resolver; public readonly string? S3; public readonly string? S3control; + public readonly string? S3outposts; public readonly string? Sagemaker; public readonly string? Sdb; public readonly string? Secretsmanager; @@ -389,6 +390,8 @@ private ProviderEndpoint( string? s3control, + string? s3outposts, + string? sagemaker, string? sdb, @@ -560,6 +563,7 @@ private ProviderEndpoint( Route53resolver = route53resolver; S3 = s3; S3control = s3control; + S3outposts = s3outposts; Sagemaker = sagemaker; Sdb = sdb; Secretsmanager = secretsmanager; diff --git a/sdk/dotnet/Rds/RoleAssociation.cs b/sdk/dotnet/Rds/RoleAssociation.cs index 26fbd2392d9..8d23a4e507c 100644 --- a/sdk/dotnet/Rds/RoleAssociation.cs +++ b/sdk/dotnet/Rds/RoleAssociation.cs @@ -31,7 +31,7 @@ namespace Pulumi.Aws.Rds /// { /// DbInstanceIdentifier = aws_db_instance.Example.Id, /// FeatureName = "S3_INTEGRATION", - /// RoleArn = aws_iam_role.Example.Id, + /// RoleArn = aws_iam_role.Example.Arn, /// }); /// } /// diff --git a/sdk/dotnet/Sagemaker/NotebookInstance.cs b/sdk/dotnet/Sagemaker/NotebookInstance.cs index 323ef37e254..de73d1ab985 100644 --- a/sdk/dotnet/Sagemaker/NotebookInstance.cs +++ b/sdk/dotnet/Sagemaker/NotebookInstance.cs @@ -46,6 +46,12 @@ public partial class NotebookInstance : Pulumi.CustomResource [Output("arn")] public Output Arn { get; private set; } = null!; + /// + /// The Git repository associated with the notebook instance as its default code repository + /// + [Output("defaultCodeRepository")] + public Output DefaultCodeRepository { get; private set; } = null!; + /// /// Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. /// @@ -106,6 +112,12 @@ public partial class NotebookInstance : Pulumi.CustomResource [Output("tags")] public Output?> Tags { get; private set; } = null!; + /// + /// The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + /// + [Output("volumeSize")] + public Output VolumeSize { get; private set; } = null!; + /// /// Create a NotebookInstance resource with the given unique name, arguments, and options. @@ -152,6 +164,12 @@ public static NotebookInstance Get(string name, Input id, NotebookInstan public sealed class NotebookInstanceArgs : Pulumi.ResourceArgs { + /// + /// The Git repository associated with the notebook instance as its default code repository + /// + [Input("defaultCodeRepository")] + public Input? DefaultCodeRepository { get; set; } + /// /// Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. /// @@ -224,6 +242,12 @@ public InputMap Tags set => _tags = value; } + /// + /// The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + /// + [Input("volumeSize")] + public Input? VolumeSize { get; set; } + public NotebookInstanceArgs() { } @@ -237,6 +261,12 @@ public sealed class NotebookInstanceState : Pulumi.ResourceArgs [Input("arn")] public Input? Arn { get; set; } + /// + /// The Git repository associated with the notebook instance as its default code repository + /// + [Input("defaultCodeRepository")] + public Input? DefaultCodeRepository { get; set; } + /// /// Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. /// @@ -309,6 +339,12 @@ public InputMap Tags set => _tags = value; } + /// + /// The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + /// + [Input("volumeSize")] + public Input? VolumeSize { get; set; } + public NotebookInstanceState() { } diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleArgs.cs index edbbb1a2ee5..8fb7750541b 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementExcludedRuleArgs : Pulumi.ResourceArgs { /// - /// The name of the rule to exclude. + /// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. /// [Input("name", required: true)] public Input Name { get; set; } = null!; diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleGetArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleGetArgs.cs index 7e9f219c05f..b6e44b73dd2 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRuleGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementManagedRuleGroupStatementExcludedRuleGetArgs : Pulumi.ResourceArgs { /// - /// The name of the rule to exclude. + /// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. /// [Input("name", required: true)] public Input Name { get; set; } = null!; diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.cs index 34fa9b479e8..2032082244b 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs : Pulumi.ResourceArgs { /// - /// The name of the rule to exclude. + /// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. /// [Input("name", required: true)] public Input Name { get; set; } = null!; diff --git a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleGetArgs.cs b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleGetArgs.cs index 28308ec6ffe..c47dd928708 100644 --- a/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleGetArgs.cs +++ b/sdk/dotnet/WafV2/Inputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleGetArgs.cs @@ -13,7 +13,7 @@ namespace Pulumi.Aws.WafV2.Inputs public sealed class WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleGetArgs : Pulumi.ResourceArgs { /// - /// The name of the rule to exclude. + /// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. /// [Input("name", required: true)] public Input Name { get; set; } = null!; diff --git a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRule.cs b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRule.cs index 90d125a3516..c09d5557e5e 100644 --- a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRule.cs +++ b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementManagedRuleGroupStatementExcludedRule.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class WebAclRuleStatementManagedRuleGroupStatementExcludedRule { /// - /// The name of the rule to exclude. + /// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. /// public readonly string Name; diff --git a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRule.cs b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRule.cs index 1078ff3c12c..9c6ca7ebb6d 100644 --- a/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRule.cs +++ b/sdk/dotnet/WafV2/Outputs/WebAclRuleStatementRuleGroupReferenceStatementExcludedRule.cs @@ -14,7 +14,7 @@ namespace Pulumi.Aws.WafV2.Outputs public sealed class WebAclRuleStatementRuleGroupReferenceStatementExcludedRule { /// - /// The name of the rule to exclude. + /// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. /// public readonly string Name; diff --git a/sdk/dotnet/Workspaces/Directory.cs b/sdk/dotnet/Workspaces/Directory.cs index bb842b9066e..33a0742eed2 100644 --- a/sdk/dotnet/Workspaces/Directory.cs +++ b/sdk/dotnet/Workspaces/Directory.cs @@ -10,7 +10,7 @@ namespace Pulumi.Aws.Workspaces { /// - /// Provides a directory registration in AWS WorkSpaces Service + /// Provides a WorkSpaces directory in AWS WorkSpaces Service. /// /// ## Example Usage /// @@ -22,44 +22,76 @@ namespace Pulumi.Aws.Workspaces /// { /// public MyStack() /// { - /// var mainVpc = new Aws.Ec2.Vpc("mainVpc", new Aws.Ec2.VpcArgs + /// var exampleVpc = new Aws.Ec2.Vpc("exampleVpc", new Aws.Ec2.VpcArgs /// { /// CidrBlock = "10.0.0.0/16", /// }); - /// var private_a = new Aws.Ec2.Subnet("private-a", new Aws.Ec2.SubnetArgs + /// var exampleA = new Aws.Ec2.Subnet("exampleA", new Aws.Ec2.SubnetArgs /// { - /// VpcId = mainVpc.Id, + /// VpcId = exampleVpc.Id, /// AvailabilityZone = "us-east-1a", /// CidrBlock = "10.0.0.0/24", /// }); - /// var private_b = new Aws.Ec2.Subnet("private-b", new Aws.Ec2.SubnetArgs + /// var exampleB = new Aws.Ec2.Subnet("exampleB", new Aws.Ec2.SubnetArgs /// { - /// VpcId = mainVpc.Id, + /// VpcId = exampleVpc.Id, /// AvailabilityZone = "us-east-1b", /// CidrBlock = "10.0.1.0/24", /// }); - /// var mainDirectory = new Aws.DirectoryService.Directory("mainDirectory", new Aws.DirectoryService.DirectoryArgs + /// var exampleC = new Aws.Ec2.Subnet("exampleC", new Aws.Ec2.SubnetArgs + /// { + /// VpcId = exampleVpc.Id, + /// AvailabilityZone = "us-east-1c", + /// CidrBlock = "10.0.2.0/24", + /// }); + /// var exampleD = new Aws.Ec2.Subnet("exampleD", new Aws.Ec2.SubnetArgs + /// { + /// VpcId = exampleVpc.Id, + /// AvailabilityZone = "us-east-1d", + /// CidrBlock = "10.0.3.0/24", + /// }); + /// var exampleDirectory = new Aws.DirectoryService.Directory("exampleDirectory", new Aws.DirectoryService.DirectoryArgs /// { /// Name = "corp.example.com", /// Password = "#S1ncerely", /// Size = "Small", /// VpcSettings = new Aws.DirectoryService.Inputs.DirectoryVpcSettingsArgs /// { - /// VpcId = mainVpc.Id, + /// VpcId = exampleVpc.Id, /// SubnetIds = /// { - /// private_a.Id, - /// private_b.Id, + /// exampleA.Id, + /// exampleB.Id, /// }, /// }, /// }); - /// var mainWorkspaces_directoryDirectory = new Aws.Workspaces.Directory("mainWorkspaces/directoryDirectory", new Aws.Workspaces.DirectoryArgs + /// var exampleWorkspaces_directoryDirectory = new Aws.Workspaces.Directory("exampleWorkspaces/directoryDirectory", new Aws.Workspaces.DirectoryArgs /// { - /// DirectoryId = mainDirectory.Id, + /// DirectoryId = exampleDirectory.Id, + /// SubnetIds = + /// { + /// exampleC.Id, + /// exampleD.Id, + /// }, + /// Tags = + /// { + /// { "Example", "true" }, + /// }, /// SelfServicePermissions = new Aws.Workspaces.Inputs.DirectorySelfServicePermissionsArgs /// { + /// ChangeComputeType = true, /// IncreaseVolumeSize = true, /// RebuildWorkspace = true, + /// RestartWorkspace = true, + /// SwitchRunningMode = true, + /// }, + /// WorkspaceCreationProperties = new Aws.Workspaces.Inputs.DirectoryWorkspaceCreationPropertiesArgs + /// { + /// CustomSecurityGroupId = aws_security_group.Example.Id, + /// DefaultOu = "OU=AWS,DC=Workgroup,DC=Example,DC=com", + /// EnableInternetAccess = true, + /// EnableMaintenanceMode = true, + /// UserEnabledAsLocalAdministrator = true, /// }, /// }); /// } @@ -124,13 +156,13 @@ public partial class Directory : Pulumi.CustomResource public Output RegistrationCode { get; private set; } = null!; /// - /// The permissions to enable or disable self-service capabilities. + /// Permissions to enable or disable self-service capabilities. Defined below. /// [Output("selfServicePermissions")] public Output SelfServicePermissions { get; private set; } = null!; /// - /// The identifiers of the subnets where the directory resides. + /// The subnets identifiers where the workspaces are created. /// [Output("subnetIds")] public Output> SubnetIds { get; private set; } = null!; @@ -141,6 +173,12 @@ public partial class Directory : Pulumi.CustomResource [Output("tags")] public Output?> Tags { get; private set; } = null!; + /// + /// Default properties that are used for creating WorkSpaces. Defined below. + /// + [Output("workspaceCreationProperties")] + public Output WorkspaceCreationProperties { get; private set; } = null!; + /// /// The identifier of the security group that is assigned to new WorkSpaces. /// @@ -200,7 +238,7 @@ public sealed class DirectoryArgs : Pulumi.ResourceArgs public Input DirectoryId { get; set; } = null!; /// - /// The permissions to enable or disable self-service capabilities. + /// Permissions to enable or disable self-service capabilities. Defined below. /// [Input("selfServicePermissions")] public Input? SelfServicePermissions { get; set; } @@ -209,7 +247,7 @@ public sealed class DirectoryArgs : Pulumi.ResourceArgs private InputList? _subnetIds; /// - /// The identifiers of the subnets where the directory resides. + /// The subnets identifiers where the workspaces are created. /// public InputList SubnetIds { @@ -229,6 +267,12 @@ public InputMap Tags set => _tags = value; } + /// + /// Default properties that are used for creating WorkSpaces. Defined below. + /// + [Input("workspaceCreationProperties")] + public Input? WorkspaceCreationProperties { get; set; } + public DirectoryArgs() { } @@ -303,7 +347,7 @@ public InputList IpGroupIds public Input? RegistrationCode { get; set; } /// - /// The permissions to enable or disable self-service capabilities. + /// Permissions to enable or disable self-service capabilities. Defined below. /// [Input("selfServicePermissions")] public Input? SelfServicePermissions { get; set; } @@ -312,7 +356,7 @@ public InputList IpGroupIds private InputList? _subnetIds; /// - /// The identifiers of the subnets where the directory resides. + /// The subnets identifiers where the workspaces are created. /// public InputList SubnetIds { @@ -332,6 +376,12 @@ public InputMap Tags set => _tags = value; } + /// + /// Default properties that are used for creating WorkSpaces. Defined below. + /// + [Input("workspaceCreationProperties")] + public Input? WorkspaceCreationProperties { get; set; } + /// /// The identifier of the security group that is assigned to new WorkSpaces. /// diff --git a/sdk/dotnet/Workspaces/GetDirectory.cs b/sdk/dotnet/Workspaces/GetDirectory.cs index c591b3c9b3d..6bbde6b05c4 100644 --- a/sdk/dotnet/Workspaces/GetDirectory.cs +++ b/sdk/dotnet/Workspaces/GetDirectory.cs @@ -62,6 +62,12 @@ public Dictionary Tags set => _tags = value; } + /// + /// The default properties that are used for creating WorkSpaces. Defined below. + /// + [Input("workspaceCreationProperties")] + public Inputs.GetDirectoryWorkspaceCreationPropertiesArgs? WorkspaceCreationProperties { get; set; } + public GetDirectoryArgs() { } @@ -121,7 +127,11 @@ public sealed class GetDirectoryResult /// public readonly ImmutableDictionary? Tags; /// - /// The identifier of the security group that is assigned to new WorkSpaces. + /// The default properties that are used for creating WorkSpaces. Defined below. + /// + public readonly Outputs.GetDirectoryWorkspaceCreationPropertiesResult WorkspaceCreationProperties; + /// + /// The identifier of the security group that is assigned to new WorkSpaces. Defined below. /// public readonly string WorkspaceSecurityGroupId; @@ -153,6 +163,8 @@ private GetDirectoryResult( ImmutableDictionary? tags, + Outputs.GetDirectoryWorkspaceCreationPropertiesResult workspaceCreationProperties, + string workspaceSecurityGroupId) { Alias = alias; @@ -168,6 +180,7 @@ private GetDirectoryResult( SelfServicePermissions = selfServicePermissions; SubnetIds = subnetIds; Tags = tags; + WorkspaceCreationProperties = workspaceCreationProperties; WorkspaceSecurityGroupId = workspaceSecurityGroupId; } } diff --git a/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceCreationPropertiesArgs.cs b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceCreationPropertiesArgs.cs new file mode 100644 index 00000000000..1f9946cc184 --- /dev/null +++ b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceCreationPropertiesArgs.cs @@ -0,0 +1,49 @@ +// *** 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.Aws.Workspaces.Inputs +{ + + public sealed class DirectoryWorkspaceCreationPropertiesArgs : Pulumi.ResourceArgs + { + /// + /// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + /// + [Input("customSecurityGroupId")] + public Input? CustomSecurityGroupId { get; set; } + + /// + /// The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=<value>,DC=<value>,...,DC=<value>"` pattern. + /// + [Input("defaultOu")] + public Input? DefaultOu { get; set; } + + /// + /// Indicates whether internet access is enabled for your WorkSpaces. + /// + [Input("enableInternetAccess")] + public Input? EnableInternetAccess { get; set; } + + /// + /// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + /// + [Input("enableMaintenanceMode")] + public Input? EnableMaintenanceMode { get; set; } + + /// + /// Indicates whether users are local administrators of their WorkSpaces. + /// + [Input("userEnabledAsLocalAdministrator")] + public Input? UserEnabledAsLocalAdministrator { get; set; } + + public DirectoryWorkspaceCreationPropertiesArgs() + { + } + } +} diff --git a/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceCreationPropertiesGetArgs.cs b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceCreationPropertiesGetArgs.cs new file mode 100644 index 00000000000..aed2fdf5bfa --- /dev/null +++ b/sdk/dotnet/Workspaces/Inputs/DirectoryWorkspaceCreationPropertiesGetArgs.cs @@ -0,0 +1,49 @@ +// *** 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.Aws.Workspaces.Inputs +{ + + public sealed class DirectoryWorkspaceCreationPropertiesGetArgs : Pulumi.ResourceArgs + { + /// + /// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + /// + [Input("customSecurityGroupId")] + public Input? CustomSecurityGroupId { get; set; } + + /// + /// The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=<value>,DC=<value>,...,DC=<value>"` pattern. + /// + [Input("defaultOu")] + public Input? DefaultOu { get; set; } + + /// + /// Indicates whether internet access is enabled for your WorkSpaces. + /// + [Input("enableInternetAccess")] + public Input? EnableInternetAccess { get; set; } + + /// + /// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + /// + [Input("enableMaintenanceMode")] + public Input? EnableMaintenanceMode { get; set; } + + /// + /// Indicates whether users are local administrators of their WorkSpaces. + /// + [Input("userEnabledAsLocalAdministrator")] + public Input? UserEnabledAsLocalAdministrator { get; set; } + + public DirectoryWorkspaceCreationPropertiesGetArgs() + { + } + } +} diff --git a/sdk/dotnet/Workspaces/Inputs/GetDirectoryWorkspaceCreationPropertiesArgs.cs b/sdk/dotnet/Workspaces/Inputs/GetDirectoryWorkspaceCreationPropertiesArgs.cs new file mode 100644 index 00000000000..b7aaeabfac3 --- /dev/null +++ b/sdk/dotnet/Workspaces/Inputs/GetDirectoryWorkspaceCreationPropertiesArgs.cs @@ -0,0 +1,49 @@ +// *** 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.Aws.Workspaces.Inputs +{ + + public sealed class GetDirectoryWorkspaceCreationPropertiesArgs : Pulumi.InvokeArgs + { + /// + /// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + /// + [Input("customSecurityGroupId", required: true)] + public string CustomSecurityGroupId { get; set; } = null!; + + /// + /// The default organizational unit (OU) for your WorkSpace directories. + /// + [Input("defaultOu")] + public string? DefaultOu { get; set; } + + /// + /// Indicates whether internet access is enabled for your WorkSpaces. + /// + [Input("enableInternetAccess")] + public bool? EnableInternetAccess { get; set; } + + /// + /// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + /// + [Input("enableMaintenanceMode")] + public bool? EnableMaintenanceMode { get; set; } + + /// + /// Indicates whether users are local administrators of their WorkSpaces. + /// + [Input("userEnabledAsLocalAdministrator")] + public bool? UserEnabledAsLocalAdministrator { get; set; } + + public GetDirectoryWorkspaceCreationPropertiesArgs() + { + } + } +} diff --git a/sdk/dotnet/Workspaces/Outputs/DirectoryWorkspaceCreationProperties.cs b/sdk/dotnet/Workspaces/Outputs/DirectoryWorkspaceCreationProperties.cs new file mode 100644 index 00000000000..d6ed1ab56f9 --- /dev/null +++ b/sdk/dotnet/Workspaces/Outputs/DirectoryWorkspaceCreationProperties.cs @@ -0,0 +1,56 @@ +// *** 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.Aws.Workspaces.Outputs +{ + + [OutputType] + public sealed class DirectoryWorkspaceCreationProperties + { + /// + /// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + /// + public readonly string? CustomSecurityGroupId; + /// + /// The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=<value>,DC=<value>,...,DC=<value>"` pattern. + /// + public readonly string? DefaultOu; + /// + /// Indicates whether internet access is enabled for your WorkSpaces. + /// + public readonly bool? EnableInternetAccess; + /// + /// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + /// + public readonly bool? EnableMaintenanceMode; + /// + /// Indicates whether users are local administrators of their WorkSpaces. + /// + public readonly bool? UserEnabledAsLocalAdministrator; + + [OutputConstructor] + private DirectoryWorkspaceCreationProperties( + string? customSecurityGroupId, + + string? defaultOu, + + bool? enableInternetAccess, + + bool? enableMaintenanceMode, + + bool? userEnabledAsLocalAdministrator) + { + CustomSecurityGroupId = customSecurityGroupId; + DefaultOu = defaultOu; + EnableInternetAccess = enableInternetAccess; + EnableMaintenanceMode = enableMaintenanceMode; + UserEnabledAsLocalAdministrator = userEnabledAsLocalAdministrator; + } + } +} diff --git a/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceCreationPropertiesResult.cs b/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceCreationPropertiesResult.cs new file mode 100644 index 00000000000..af5854df346 --- /dev/null +++ b/sdk/dotnet/Workspaces/Outputs/GetDirectoryWorkspaceCreationPropertiesResult.cs @@ -0,0 +1,56 @@ +// *** 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.Aws.Workspaces.Outputs +{ + + [OutputType] + public sealed class GetDirectoryWorkspaceCreationPropertiesResult + { + /// + /// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + /// + public readonly string CustomSecurityGroupId; + /// + /// The default organizational unit (OU) for your WorkSpace directories. + /// + public readonly string? DefaultOu; + /// + /// Indicates whether internet access is enabled for your WorkSpaces. + /// + public readonly bool? EnableInternetAccess; + /// + /// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + /// + public readonly bool? EnableMaintenanceMode; + /// + /// Indicates whether users are local administrators of their WorkSpaces. + /// + public readonly bool? UserEnabledAsLocalAdministrator; + + [OutputConstructor] + private GetDirectoryWorkspaceCreationPropertiesResult( + string customSecurityGroupId, + + string? defaultOu, + + bool? enableInternetAccess, + + bool? enableMaintenanceMode, + + bool? userEnabledAsLocalAdministrator) + { + CustomSecurityGroupId = customSecurityGroupId; + DefaultOu = defaultOu; + EnableInternetAccess = enableInternetAccess; + EnableMaintenanceMode = enableMaintenanceMode; + UserEnabledAsLocalAdministrator = userEnabledAsLocalAdministrator; + } + } +} diff --git a/sdk/go/aws/apigatewayv2/route.go b/sdk/go/aws/apigatewayv2/route.go index de149c2a373..9fbd3d9857e 100644 --- a/sdk/go/aws/apigatewayv2/route.go +++ b/sdk/go/aws/apigatewayv2/route.go @@ -61,7 +61,7 @@ type Route struct { OperationName pulumi.StringPtrOutput `pulumi:"operationName"` // The request models for the route. RequestModels pulumi.StringMapOutput `pulumi:"requestModels"` - // The route key for the route. + // The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. RouteKey pulumi.StringOutput `pulumi:"routeKey"` // The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. RouteResponseSelectionExpression pulumi.StringPtrOutput `pulumi:"routeResponseSelectionExpression"` @@ -122,7 +122,7 @@ type routeState struct { OperationName *string `pulumi:"operationName"` // The request models for the route. RequestModels map[string]string `pulumi:"requestModels"` - // The route key for the route. + // The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. RouteKey *string `pulumi:"routeKey"` // The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. RouteResponseSelectionExpression *string `pulumi:"routeResponseSelectionExpression"` @@ -150,7 +150,7 @@ type RouteState struct { OperationName pulumi.StringPtrInput // The request models for the route. RequestModels pulumi.StringMapInput - // The route key for the route. + // The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. RouteKey pulumi.StringPtrInput // The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. RouteResponseSelectionExpression pulumi.StringPtrInput @@ -182,7 +182,7 @@ type routeArgs struct { OperationName *string `pulumi:"operationName"` // The request models for the route. RequestModels map[string]string `pulumi:"requestModels"` - // The route key for the route. + // The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. RouteKey string `pulumi:"routeKey"` // The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. RouteResponseSelectionExpression *string `pulumi:"routeResponseSelectionExpression"` @@ -211,7 +211,7 @@ type RouteArgs struct { OperationName pulumi.StringPtrInput // The request models for the route. RequestModels pulumi.StringMapInput - // The route key for the route. + // The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. RouteKey pulumi.StringInput // The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. RouteResponseSelectionExpression pulumi.StringPtrInput diff --git a/sdk/go/aws/appmesh/gatewayRoute.go b/sdk/go/aws/appmesh/gatewayRoute.go new file mode 100644 index 00000000000..3b872d3fbb9 --- /dev/null +++ b/sdk/go/aws/appmesh/gatewayRoute.go @@ -0,0 +1,199 @@ +// *** 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! *** + +package appmesh + +import ( + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides an AWS App Mesh gateway route resource. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := appmesh.NewGatewayRoute(ctx, "example", &appmesh.GatewayRouteArgs{ +// MeshName: pulumi.String("example-service-mesh"), +// VirtualGatewayName: pulumi.Any(aws_appmesh_virtual_gateway.Example.Name), +// Spec: &appmesh.GatewayRouteSpecArgs{ +// HttpRoute: &appmesh.GatewayRouteSpecHttpRouteArgs{ +// Action: &appmesh.GatewayRouteSpecHttpRouteActionArgs{ +// Target: &appmesh.GatewayRouteSpecHttpRouteActionTargetArgs{ +// VirtualService: &appmesh.GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs{ +// VirtualServiceName: pulumi.Any(aws_appmesh_virtual_service.Example.Name), +// }, +// }, +// }, +// Match: &appmesh.GatewayRouteSpecHttpRouteMatchArgs{ +// Prefix: pulumi.String("/"), +// }, +// }, +// }, +// Tags: pulumi.StringMap{ +// "Environment": pulumi.String("test"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +type GatewayRoute struct { + pulumi.CustomResourceState + + // The ARN of the gateway route. + Arn pulumi.StringOutput `pulumi:"arn"` + // The creation date of the gateway route. + CreatedDate pulumi.StringOutput `pulumi:"createdDate"` + // The last update date of the gateway route. + LastUpdatedDate pulumi.StringOutput `pulumi:"lastUpdatedDate"` + // The name of the service mesh in which to create the gateway route. + MeshName pulumi.StringOutput `pulumi:"meshName"` + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner pulumi.StringOutput `pulumi:"meshOwner"` + // The name to use for the gateway route. + Name pulumi.StringOutput `pulumi:"name"` + // The resource owner's AWS account ID. + ResourceOwner pulumi.StringOutput `pulumi:"resourceOwner"` + // The gateway route specification to apply. + Spec GatewayRouteSpecOutput `pulumi:"spec"` + // A map of tags to assign to the resource. + Tags pulumi.StringMapOutput `pulumi:"tags"` + // The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + VirtualGatewayName pulumi.StringOutput `pulumi:"virtualGatewayName"` +} + +// NewGatewayRoute registers a new resource with the given unique name, arguments, and options. +func NewGatewayRoute(ctx *pulumi.Context, + name string, args *GatewayRouteArgs, opts ...pulumi.ResourceOption) (*GatewayRoute, error) { + if args == nil || args.MeshName == nil { + return nil, errors.New("missing required argument 'MeshName'") + } + if args == nil || args.Spec == nil { + return nil, errors.New("missing required argument 'Spec'") + } + if args == nil || args.VirtualGatewayName == nil { + return nil, errors.New("missing required argument 'VirtualGatewayName'") + } + if args == nil { + args = &GatewayRouteArgs{} + } + var resource GatewayRoute + err := ctx.RegisterResource("aws:appmesh/gatewayRoute:GatewayRoute", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetGatewayRoute gets an existing GatewayRoute 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 GetGatewayRoute(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *GatewayRouteState, opts ...pulumi.ResourceOption) (*GatewayRoute, error) { + var resource GatewayRoute + err := ctx.ReadResource("aws:appmesh/gatewayRoute:GatewayRoute", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering GatewayRoute resources. +type gatewayRouteState struct { + // The ARN of the gateway route. + Arn *string `pulumi:"arn"` + // The creation date of the gateway route. + CreatedDate *string `pulumi:"createdDate"` + // The last update date of the gateway route. + LastUpdatedDate *string `pulumi:"lastUpdatedDate"` + // The name of the service mesh in which to create the gateway route. + MeshName *string `pulumi:"meshName"` + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner *string `pulumi:"meshOwner"` + // The name to use for the gateway route. + Name *string `pulumi:"name"` + // The resource owner's AWS account ID. + ResourceOwner *string `pulumi:"resourceOwner"` + // The gateway route specification to apply. + Spec *GatewayRouteSpec `pulumi:"spec"` + // A map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` + // The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + VirtualGatewayName *string `pulumi:"virtualGatewayName"` +} + +type GatewayRouteState struct { + // The ARN of the gateway route. + Arn pulumi.StringPtrInput + // The creation date of the gateway route. + CreatedDate pulumi.StringPtrInput + // The last update date of the gateway route. + LastUpdatedDate pulumi.StringPtrInput + // The name of the service mesh in which to create the gateway route. + MeshName pulumi.StringPtrInput + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner pulumi.StringPtrInput + // The name to use for the gateway route. + Name pulumi.StringPtrInput + // The resource owner's AWS account ID. + ResourceOwner pulumi.StringPtrInput + // The gateway route specification to apply. + Spec GatewayRouteSpecPtrInput + // A map of tags to assign to the resource. + Tags pulumi.StringMapInput + // The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + VirtualGatewayName pulumi.StringPtrInput +} + +func (GatewayRouteState) ElementType() reflect.Type { + return reflect.TypeOf((*gatewayRouteState)(nil)).Elem() +} + +type gatewayRouteArgs struct { + // The name of the service mesh in which to create the gateway route. + MeshName string `pulumi:"meshName"` + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner *string `pulumi:"meshOwner"` + // The name to use for the gateway route. + Name *string `pulumi:"name"` + // The gateway route specification to apply. + Spec GatewayRouteSpec `pulumi:"spec"` + // A map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` + // The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + VirtualGatewayName string `pulumi:"virtualGatewayName"` +} + +// The set of arguments for constructing a GatewayRoute resource. +type GatewayRouteArgs struct { + // The name of the service mesh in which to create the gateway route. + MeshName pulumi.StringInput + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner pulumi.StringPtrInput + // The name to use for the gateway route. + Name pulumi.StringPtrInput + // The gateway route specification to apply. + Spec GatewayRouteSpecInput + // A map of tags to assign to the resource. + Tags pulumi.StringMapInput + // The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + VirtualGatewayName pulumi.StringInput +} + +func (GatewayRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*gatewayRouteArgs)(nil)).Elem() +} diff --git a/sdk/go/aws/appmesh/pulumiTypes.go b/sdk/go/aws/appmesh/pulumiTypes.go index c0fbe62bd51..92967087758 100644 --- a/sdk/go/aws/appmesh/pulumiTypes.go +++ b/sdk/go/aws/appmesh/pulumiTypes.go @@ -10,3505 +10,7605 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) -type MeshSpec struct { - // The egress filter rules for the service mesh. - EgressFilter *MeshSpecEgressFilter `pulumi:"egressFilter"` +type GatewayRouteSpec struct { + // The specification of a gRPC gateway route. + GrpcRoute *GatewayRouteSpecGrpcRoute `pulumi:"grpcRoute"` + // The specification of an HTTP/2 gateway route. + Http2Route *GatewayRouteSpecHttp2Route `pulumi:"http2Route"` + // The specification of an HTTP gateway route. + HttpRoute *GatewayRouteSpecHttpRoute `pulumi:"httpRoute"` } -// MeshSpecInput is an input type that accepts MeshSpecArgs and MeshSpecOutput values. -// You can construct a concrete instance of `MeshSpecInput` via: +// GatewayRouteSpecInput is an input type that accepts GatewayRouteSpecArgs and GatewayRouteSpecOutput values. +// You can construct a concrete instance of `GatewayRouteSpecInput` via: // -// MeshSpecArgs{...} -type MeshSpecInput interface { +// GatewayRouteSpecArgs{...} +type GatewayRouteSpecInput interface { pulumi.Input - ToMeshSpecOutput() MeshSpecOutput - ToMeshSpecOutputWithContext(context.Context) MeshSpecOutput + ToGatewayRouteSpecOutput() GatewayRouteSpecOutput + ToGatewayRouteSpecOutputWithContext(context.Context) GatewayRouteSpecOutput } -type MeshSpecArgs struct { - // The egress filter rules for the service mesh. - EgressFilter MeshSpecEgressFilterPtrInput `pulumi:"egressFilter"` +type GatewayRouteSpecArgs struct { + // The specification of a gRPC gateway route. + GrpcRoute GatewayRouteSpecGrpcRoutePtrInput `pulumi:"grpcRoute"` + // The specification of an HTTP/2 gateway route. + Http2Route GatewayRouteSpecHttp2RoutePtrInput `pulumi:"http2Route"` + // The specification of an HTTP gateway route. + HttpRoute GatewayRouteSpecHttpRoutePtrInput `pulumi:"httpRoute"` } -func (MeshSpecArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MeshSpec)(nil)).Elem() +func (GatewayRouteSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpec)(nil)).Elem() } -func (i MeshSpecArgs) ToMeshSpecOutput() MeshSpecOutput { - return i.ToMeshSpecOutputWithContext(context.Background()) +func (i GatewayRouteSpecArgs) ToGatewayRouteSpecOutput() GatewayRouteSpecOutput { + return i.ToGatewayRouteSpecOutputWithContext(context.Background()) } -func (i MeshSpecArgs) ToMeshSpecOutputWithContext(ctx context.Context) MeshSpecOutput { - return pulumi.ToOutputWithContext(ctx, i).(MeshSpecOutput) +func (i GatewayRouteSpecArgs) ToGatewayRouteSpecOutputWithContext(ctx context.Context) GatewayRouteSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecOutput) } -func (i MeshSpecArgs) ToMeshSpecPtrOutput() MeshSpecPtrOutput { - return i.ToMeshSpecPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecArgs) ToGatewayRouteSpecPtrOutput() GatewayRouteSpecPtrOutput { + return i.ToGatewayRouteSpecPtrOutputWithContext(context.Background()) } -func (i MeshSpecArgs) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MeshSpecOutput).ToMeshSpecPtrOutputWithContext(ctx) +func (i GatewayRouteSpecArgs) ToGatewayRouteSpecPtrOutputWithContext(ctx context.Context) GatewayRouteSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecOutput).ToGatewayRouteSpecPtrOutputWithContext(ctx) } -// MeshSpecPtrInput is an input type that accepts MeshSpecArgs, MeshSpecPtr and MeshSpecPtrOutput values. -// You can construct a concrete instance of `MeshSpecPtrInput` via: +// GatewayRouteSpecPtrInput is an input type that accepts GatewayRouteSpecArgs, GatewayRouteSpecPtr and GatewayRouteSpecPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecPtrInput` via: // -// MeshSpecArgs{...} +// GatewayRouteSpecArgs{...} // // or: // // nil -type MeshSpecPtrInput interface { +type GatewayRouteSpecPtrInput interface { pulumi.Input - ToMeshSpecPtrOutput() MeshSpecPtrOutput - ToMeshSpecPtrOutputWithContext(context.Context) MeshSpecPtrOutput + ToGatewayRouteSpecPtrOutput() GatewayRouteSpecPtrOutput + ToGatewayRouteSpecPtrOutputWithContext(context.Context) GatewayRouteSpecPtrOutput } -type meshSpecPtrType MeshSpecArgs +type gatewayRouteSpecPtrType GatewayRouteSpecArgs -func MeshSpecPtr(v *MeshSpecArgs) MeshSpecPtrInput { - return (*meshSpecPtrType)(v) +func GatewayRouteSpecPtr(v *GatewayRouteSpecArgs) GatewayRouteSpecPtrInput { + return (*gatewayRouteSpecPtrType)(v) } -func (*meshSpecPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MeshSpec)(nil)).Elem() +func (*gatewayRouteSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpec)(nil)).Elem() } -func (i *meshSpecPtrType) ToMeshSpecPtrOutput() MeshSpecPtrOutput { - return i.ToMeshSpecPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecPtrType) ToGatewayRouteSpecPtrOutput() GatewayRouteSpecPtrOutput { + return i.ToGatewayRouteSpecPtrOutputWithContext(context.Background()) } -func (i *meshSpecPtrType) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MeshSpecPtrOutput) +func (i *gatewayRouteSpecPtrType) ToGatewayRouteSpecPtrOutputWithContext(ctx context.Context) GatewayRouteSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecPtrOutput) } -type MeshSpecOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecOutput struct{ *pulumi.OutputState } -func (MeshSpecOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MeshSpec)(nil)).Elem() +func (GatewayRouteSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpec)(nil)).Elem() } -func (o MeshSpecOutput) ToMeshSpecOutput() MeshSpecOutput { +func (o GatewayRouteSpecOutput) ToGatewayRouteSpecOutput() GatewayRouteSpecOutput { return o } -func (o MeshSpecOutput) ToMeshSpecOutputWithContext(ctx context.Context) MeshSpecOutput { +func (o GatewayRouteSpecOutput) ToGatewayRouteSpecOutputWithContext(ctx context.Context) GatewayRouteSpecOutput { return o } -func (o MeshSpecOutput) ToMeshSpecPtrOutput() MeshSpecPtrOutput { - return o.ToMeshSpecPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecOutput) ToGatewayRouteSpecPtrOutput() GatewayRouteSpecPtrOutput { + return o.ToGatewayRouteSpecPtrOutputWithContext(context.Background()) } -func (o MeshSpecOutput) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { - return o.ApplyT(func(v MeshSpec) *MeshSpec { +func (o GatewayRouteSpecOutput) ToGatewayRouteSpecPtrOutputWithContext(ctx context.Context) GatewayRouteSpecPtrOutput { + return o.ApplyT(func(v GatewayRouteSpec) *GatewayRouteSpec { return &v - }).(MeshSpecPtrOutput) + }).(GatewayRouteSpecPtrOutput) } -// The egress filter rules for the service mesh. -func (o MeshSpecOutput) EgressFilter() MeshSpecEgressFilterPtrOutput { - return o.ApplyT(func(v MeshSpec) *MeshSpecEgressFilter { return v.EgressFilter }).(MeshSpecEgressFilterPtrOutput) +// The specification of a gRPC gateway route. +func (o GatewayRouteSpecOutput) GrpcRoute() GatewayRouteSpecGrpcRoutePtrOutput { + return o.ApplyT(func(v GatewayRouteSpec) *GatewayRouteSpecGrpcRoute { return v.GrpcRoute }).(GatewayRouteSpecGrpcRoutePtrOutput) } -type MeshSpecPtrOutput struct{ *pulumi.OutputState } +// The specification of an HTTP/2 gateway route. +func (o GatewayRouteSpecOutput) Http2Route() GatewayRouteSpecHttp2RoutePtrOutput { + return o.ApplyT(func(v GatewayRouteSpec) *GatewayRouteSpecHttp2Route { return v.Http2Route }).(GatewayRouteSpecHttp2RoutePtrOutput) +} -func (MeshSpecPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MeshSpec)(nil)).Elem() +// The specification of an HTTP gateway route. +func (o GatewayRouteSpecOutput) HttpRoute() GatewayRouteSpecHttpRoutePtrOutput { + return o.ApplyT(func(v GatewayRouteSpec) *GatewayRouteSpecHttpRoute { return v.HttpRoute }).(GatewayRouteSpecHttpRoutePtrOutput) } -func (o MeshSpecPtrOutput) ToMeshSpecPtrOutput() MeshSpecPtrOutput { +type GatewayRouteSpecPtrOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpec)(nil)).Elem() +} + +func (o GatewayRouteSpecPtrOutput) ToGatewayRouteSpecPtrOutput() GatewayRouteSpecPtrOutput { return o } -func (o MeshSpecPtrOutput) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { +func (o GatewayRouteSpecPtrOutput) ToGatewayRouteSpecPtrOutputWithContext(ctx context.Context) GatewayRouteSpecPtrOutput { return o } -func (o MeshSpecPtrOutput) Elem() MeshSpecOutput { - return o.ApplyT(func(v *MeshSpec) MeshSpec { return *v }).(MeshSpecOutput) +func (o GatewayRouteSpecPtrOutput) Elem() GatewayRouteSpecOutput { + return o.ApplyT(func(v *GatewayRouteSpec) GatewayRouteSpec { return *v }).(GatewayRouteSpecOutput) } -// The egress filter rules for the service mesh. -func (o MeshSpecPtrOutput) EgressFilter() MeshSpecEgressFilterPtrOutput { - return o.ApplyT(func(v *MeshSpec) *MeshSpecEgressFilter { +// The specification of a gRPC gateway route. +func (o GatewayRouteSpecPtrOutput) GrpcRoute() GatewayRouteSpecGrpcRoutePtrOutput { + return o.ApplyT(func(v *GatewayRouteSpec) *GatewayRouteSpecGrpcRoute { if v == nil { return nil } - return v.EgressFilter - }).(MeshSpecEgressFilterPtrOutput) + return v.GrpcRoute + }).(GatewayRouteSpecGrpcRoutePtrOutput) } -type MeshSpecEgressFilter struct { - // The egress filter type. By default, the type is `DROP_ALL`. - // Valid values are `ALLOW_ALL` and `DROP_ALL`. - Type *string `pulumi:"type"` +// The specification of an HTTP/2 gateway route. +func (o GatewayRouteSpecPtrOutput) Http2Route() GatewayRouteSpecHttp2RoutePtrOutput { + return o.ApplyT(func(v *GatewayRouteSpec) *GatewayRouteSpecHttp2Route { + if v == nil { + return nil + } + return v.Http2Route + }).(GatewayRouteSpecHttp2RoutePtrOutput) } -// MeshSpecEgressFilterInput is an input type that accepts MeshSpecEgressFilterArgs and MeshSpecEgressFilterOutput values. -// You can construct a concrete instance of `MeshSpecEgressFilterInput` via: +// The specification of an HTTP gateway route. +func (o GatewayRouteSpecPtrOutput) HttpRoute() GatewayRouteSpecHttpRoutePtrOutput { + return o.ApplyT(func(v *GatewayRouteSpec) *GatewayRouteSpecHttpRoute { + if v == nil { + return nil + } + return v.HttpRoute + }).(GatewayRouteSpecHttpRoutePtrOutput) +} + +type GatewayRouteSpecGrpcRoute struct { + // The action to take if a match is determined. + Action GatewayRouteSpecGrpcRouteAction `pulumi:"action"` + // The criteria for determining a request match. + Match GatewayRouteSpecGrpcRouteMatch `pulumi:"match"` +} + +// GatewayRouteSpecGrpcRouteInput is an input type that accepts GatewayRouteSpecGrpcRouteArgs and GatewayRouteSpecGrpcRouteOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteInput` via: // -// MeshSpecEgressFilterArgs{...} -type MeshSpecEgressFilterInput interface { +// GatewayRouteSpecGrpcRouteArgs{...} +type GatewayRouteSpecGrpcRouteInput interface { pulumi.Input - ToMeshSpecEgressFilterOutput() MeshSpecEgressFilterOutput - ToMeshSpecEgressFilterOutputWithContext(context.Context) MeshSpecEgressFilterOutput + ToGatewayRouteSpecGrpcRouteOutput() GatewayRouteSpecGrpcRouteOutput + ToGatewayRouteSpecGrpcRouteOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteOutput } -type MeshSpecEgressFilterArgs struct { - // The egress filter type. By default, the type is `DROP_ALL`. - // Valid values are `ALLOW_ALL` and `DROP_ALL`. - Type pulumi.StringPtrInput `pulumi:"type"` +type GatewayRouteSpecGrpcRouteArgs struct { + // The action to take if a match is determined. + Action GatewayRouteSpecGrpcRouteActionInput `pulumi:"action"` + // The criteria for determining a request match. + Match GatewayRouteSpecGrpcRouteMatchInput `pulumi:"match"` } -func (MeshSpecEgressFilterArgs) ElementType() reflect.Type { - return reflect.TypeOf((*MeshSpecEgressFilter)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRoute)(nil)).Elem() } -func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterOutput() MeshSpecEgressFilterOutput { - return i.ToMeshSpecEgressFilterOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteArgs) ToGatewayRouteSpecGrpcRouteOutput() GatewayRouteSpecGrpcRouteOutput { + return i.ToGatewayRouteSpecGrpcRouteOutputWithContext(context.Background()) } -func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterOutputWithContext(ctx context.Context) MeshSpecEgressFilterOutput { - return pulumi.ToOutputWithContext(ctx, i).(MeshSpecEgressFilterOutput) +func (i GatewayRouteSpecGrpcRouteArgs) ToGatewayRouteSpecGrpcRouteOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteOutput) } -func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { - return i.ToMeshSpecEgressFilterPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteArgs) ToGatewayRouteSpecGrpcRoutePtrOutput() GatewayRouteSpecGrpcRoutePtrOutput { + return i.ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) } -func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MeshSpecEgressFilterOutput).ToMeshSpecEgressFilterPtrOutputWithContext(ctx) +func (i GatewayRouteSpecGrpcRouteArgs) ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteOutput).ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(ctx) } -// MeshSpecEgressFilterPtrInput is an input type that accepts MeshSpecEgressFilterArgs, MeshSpecEgressFilterPtr and MeshSpecEgressFilterPtrOutput values. -// You can construct a concrete instance of `MeshSpecEgressFilterPtrInput` via: +// GatewayRouteSpecGrpcRoutePtrInput is an input type that accepts GatewayRouteSpecGrpcRouteArgs, GatewayRouteSpecGrpcRoutePtr and GatewayRouteSpecGrpcRoutePtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRoutePtrInput` via: // -// MeshSpecEgressFilterArgs{...} +// GatewayRouteSpecGrpcRouteArgs{...} // // or: // // nil -type MeshSpecEgressFilterPtrInput interface { +type GatewayRouteSpecGrpcRoutePtrInput interface { pulumi.Input - ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput - ToMeshSpecEgressFilterPtrOutputWithContext(context.Context) MeshSpecEgressFilterPtrOutput + ToGatewayRouteSpecGrpcRoutePtrOutput() GatewayRouteSpecGrpcRoutePtrOutput + ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(context.Context) GatewayRouteSpecGrpcRoutePtrOutput } -type meshSpecEgressFilterPtrType MeshSpecEgressFilterArgs +type gatewayRouteSpecGrpcRoutePtrType GatewayRouteSpecGrpcRouteArgs -func MeshSpecEgressFilterPtr(v *MeshSpecEgressFilterArgs) MeshSpecEgressFilterPtrInput { - return (*meshSpecEgressFilterPtrType)(v) +func GatewayRouteSpecGrpcRoutePtr(v *GatewayRouteSpecGrpcRouteArgs) GatewayRouteSpecGrpcRoutePtrInput { + return (*gatewayRouteSpecGrpcRoutePtrType)(v) } -func (*meshSpecEgressFilterPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**MeshSpecEgressFilter)(nil)).Elem() +func (*gatewayRouteSpecGrpcRoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRoute)(nil)).Elem() } -func (i *meshSpecEgressFilterPtrType) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { - return i.ToMeshSpecEgressFilterPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecGrpcRoutePtrType) ToGatewayRouteSpecGrpcRoutePtrOutput() GatewayRouteSpecGrpcRoutePtrOutput { + return i.ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) } -func (i *meshSpecEgressFilterPtrType) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(MeshSpecEgressFilterPtrOutput) +func (i *gatewayRouteSpecGrpcRoutePtrType) ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRoutePtrOutput) } -type MeshSpecEgressFilterOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecGrpcRouteOutput struct{ *pulumi.OutputState } -func (MeshSpecEgressFilterOutput) ElementType() reflect.Type { - return reflect.TypeOf((*MeshSpecEgressFilter)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRoute)(nil)).Elem() } -func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterOutput() MeshSpecEgressFilterOutput { +func (o GatewayRouteSpecGrpcRouteOutput) ToGatewayRouteSpecGrpcRouteOutput() GatewayRouteSpecGrpcRouteOutput { return o } -func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterOutputWithContext(ctx context.Context) MeshSpecEgressFilterOutput { +func (o GatewayRouteSpecGrpcRouteOutput) ToGatewayRouteSpecGrpcRouteOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteOutput { return o } -func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { - return o.ToMeshSpecEgressFilterPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecGrpcRouteOutput) ToGatewayRouteSpecGrpcRoutePtrOutput() GatewayRouteSpecGrpcRoutePtrOutput { + return o.ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) } -func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { - return o.ApplyT(func(v MeshSpecEgressFilter) *MeshSpecEgressFilter { +func (o GatewayRouteSpecGrpcRouteOutput) ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRoutePtrOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRoute) *GatewayRouteSpecGrpcRoute { return &v - }).(MeshSpecEgressFilterPtrOutput) + }).(GatewayRouteSpecGrpcRoutePtrOutput) } -// The egress filter type. By default, the type is `DROP_ALL`. -// Valid values are `ALLOW_ALL` and `DROP_ALL`. -func (o MeshSpecEgressFilterOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v MeshSpecEgressFilter) *string { return v.Type }).(pulumi.StringPtrOutput) +// The action to take if a match is determined. +func (o GatewayRouteSpecGrpcRouteOutput) Action() GatewayRouteSpecGrpcRouteActionOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRoute) GatewayRouteSpecGrpcRouteAction { return v.Action }).(GatewayRouteSpecGrpcRouteActionOutput) } -type MeshSpecEgressFilterPtrOutput struct{ *pulumi.OutputState } +// The criteria for determining a request match. +func (o GatewayRouteSpecGrpcRouteOutput) Match() GatewayRouteSpecGrpcRouteMatchOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRoute) GatewayRouteSpecGrpcRouteMatch { return v.Match }).(GatewayRouteSpecGrpcRouteMatchOutput) +} -func (MeshSpecEgressFilterPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**MeshSpecEgressFilter)(nil)).Elem() +type GatewayRouteSpecGrpcRoutePtrOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecGrpcRoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRoute)(nil)).Elem() } -func (o MeshSpecEgressFilterPtrOutput) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { +func (o GatewayRouteSpecGrpcRoutePtrOutput) ToGatewayRouteSpecGrpcRoutePtrOutput() GatewayRouteSpecGrpcRoutePtrOutput { return o } -func (o MeshSpecEgressFilterPtrOutput) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { +func (o GatewayRouteSpecGrpcRoutePtrOutput) ToGatewayRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRoutePtrOutput { return o } -func (o MeshSpecEgressFilterPtrOutput) Elem() MeshSpecEgressFilterOutput { - return o.ApplyT(func(v *MeshSpecEgressFilter) MeshSpecEgressFilter { return *v }).(MeshSpecEgressFilterOutput) +func (o GatewayRouteSpecGrpcRoutePtrOutput) Elem() GatewayRouteSpecGrpcRouteOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRoute) GatewayRouteSpecGrpcRoute { return *v }).(GatewayRouteSpecGrpcRouteOutput) } -// The egress filter type. By default, the type is `DROP_ALL`. -// Valid values are `ALLOW_ALL` and `DROP_ALL`. -func (o MeshSpecEgressFilterPtrOutput) Type() pulumi.StringPtrOutput { - return o.ApplyT(func(v *MeshSpecEgressFilter) *string { +// The action to take if a match is determined. +func (o GatewayRouteSpecGrpcRoutePtrOutput) Action() GatewayRouteSpecGrpcRouteActionPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRoute) *GatewayRouteSpecGrpcRouteAction { if v == nil { return nil } - return v.Type - }).(pulumi.StringPtrOutput) + return &v.Action + }).(GatewayRouteSpecGrpcRouteActionPtrOutput) } -type RouteSpec struct { - // The gRPC routing information for the route. - GrpcRoute *RouteSpecGrpcRoute `pulumi:"grpcRoute"` - // The HTTP/2 routing information for the route. - Http2Route *RouteSpecHttp2Route `pulumi:"http2Route"` - // The HTTP routing information for the route. - HttpRoute *RouteSpecHttpRoute `pulumi:"httpRoute"` - // The priority for the route, between `0` and `1000`. - // Routes are matched based on the specified value, where `0` is the highest priority. - Priority *int `pulumi:"priority"` - // The TCP routing information for the route. - TcpRoute *RouteSpecTcpRoute `pulumi:"tcpRoute"` +// The criteria for determining a request match. +func (o GatewayRouteSpecGrpcRoutePtrOutput) Match() GatewayRouteSpecGrpcRouteMatchPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRoute) *GatewayRouteSpecGrpcRouteMatch { + if v == nil { + return nil + } + return &v.Match + }).(GatewayRouteSpecGrpcRouteMatchPtrOutput) } -// RouteSpecInput is an input type that accepts RouteSpecArgs and RouteSpecOutput values. -// You can construct a concrete instance of `RouteSpecInput` via: +type GatewayRouteSpecGrpcRouteAction struct { + // The target that traffic is routed to when a request matches the gateway route. + Target GatewayRouteSpecGrpcRouteActionTarget `pulumi:"target"` +} + +// GatewayRouteSpecGrpcRouteActionInput is an input type that accepts GatewayRouteSpecGrpcRouteActionArgs and GatewayRouteSpecGrpcRouteActionOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteActionInput` via: // -// RouteSpecArgs{...} -type RouteSpecInput interface { +// GatewayRouteSpecGrpcRouteActionArgs{...} +type GatewayRouteSpecGrpcRouteActionInput interface { pulumi.Input - ToRouteSpecOutput() RouteSpecOutput - ToRouteSpecOutputWithContext(context.Context) RouteSpecOutput + ToGatewayRouteSpecGrpcRouteActionOutput() GatewayRouteSpecGrpcRouteActionOutput + ToGatewayRouteSpecGrpcRouteActionOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteActionOutput } -type RouteSpecArgs struct { - // The gRPC routing information for the route. - GrpcRoute RouteSpecGrpcRoutePtrInput `pulumi:"grpcRoute"` - // The HTTP/2 routing information for the route. - Http2Route RouteSpecHttp2RoutePtrInput `pulumi:"http2Route"` - // The HTTP routing information for the route. - HttpRoute RouteSpecHttpRoutePtrInput `pulumi:"httpRoute"` - // The priority for the route, between `0` and `1000`. - // Routes are matched based on the specified value, where `0` is the highest priority. - Priority pulumi.IntPtrInput `pulumi:"priority"` - // The TCP routing information for the route. - TcpRoute RouteSpecTcpRoutePtrInput `pulumi:"tcpRoute"` +type GatewayRouteSpecGrpcRouteActionArgs struct { + // The target that traffic is routed to when a request matches the gateway route. + Target GatewayRouteSpecGrpcRouteActionTargetInput `pulumi:"target"` } -func (RouteSpecArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpec)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteAction)(nil)).Elem() } -func (i RouteSpecArgs) ToRouteSpecOutput() RouteSpecOutput { - return i.ToRouteSpecOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteActionArgs) ToGatewayRouteSpecGrpcRouteActionOutput() GatewayRouteSpecGrpcRouteActionOutput { + return i.ToGatewayRouteSpecGrpcRouteActionOutputWithContext(context.Background()) } -func (i RouteSpecArgs) ToRouteSpecOutputWithContext(ctx context.Context) RouteSpecOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecOutput) +func (i GatewayRouteSpecGrpcRouteActionArgs) ToGatewayRouteSpecGrpcRouteActionOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionOutput) } -func (i RouteSpecArgs) ToRouteSpecPtrOutput() RouteSpecPtrOutput { - return i.ToRouteSpecPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteActionArgs) ToGatewayRouteSpecGrpcRouteActionPtrOutput() GatewayRouteSpecGrpcRouteActionPtrOutput { + return i.ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) } -func (i RouteSpecArgs) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecOutput).ToRouteSpecPtrOutputWithContext(ctx) +func (i GatewayRouteSpecGrpcRouteActionArgs) ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionOutput).ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(ctx) } -// RouteSpecPtrInput is an input type that accepts RouteSpecArgs, RouteSpecPtr and RouteSpecPtrOutput values. -// You can construct a concrete instance of `RouteSpecPtrInput` via: +// GatewayRouteSpecGrpcRouteActionPtrInput is an input type that accepts GatewayRouteSpecGrpcRouteActionArgs, GatewayRouteSpecGrpcRouteActionPtr and GatewayRouteSpecGrpcRouteActionPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteActionPtrInput` via: // -// RouteSpecArgs{...} +// GatewayRouteSpecGrpcRouteActionArgs{...} // // or: // // nil -type RouteSpecPtrInput interface { +type GatewayRouteSpecGrpcRouteActionPtrInput interface { pulumi.Input - ToRouteSpecPtrOutput() RouteSpecPtrOutput - ToRouteSpecPtrOutputWithContext(context.Context) RouteSpecPtrOutput + ToGatewayRouteSpecGrpcRouteActionPtrOutput() GatewayRouteSpecGrpcRouteActionPtrOutput + ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteActionPtrOutput } -type routeSpecPtrType RouteSpecArgs +type gatewayRouteSpecGrpcRouteActionPtrType GatewayRouteSpecGrpcRouteActionArgs -func RouteSpecPtr(v *RouteSpecArgs) RouteSpecPtrInput { - return (*routeSpecPtrType)(v) +func GatewayRouteSpecGrpcRouteActionPtr(v *GatewayRouteSpecGrpcRouteActionArgs) GatewayRouteSpecGrpcRouteActionPtrInput { + return (*gatewayRouteSpecGrpcRouteActionPtrType)(v) } -func (*routeSpecPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpec)(nil)).Elem() +func (*gatewayRouteSpecGrpcRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteAction)(nil)).Elem() } -func (i *routeSpecPtrType) ToRouteSpecPtrOutput() RouteSpecPtrOutput { - return i.ToRouteSpecPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecGrpcRouteActionPtrType) ToGatewayRouteSpecGrpcRouteActionPtrOutput() GatewayRouteSpecGrpcRouteActionPtrOutput { + return i.ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) } -func (i *routeSpecPtrType) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecPtrOutput) +func (i *gatewayRouteSpecGrpcRouteActionPtrType) ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionPtrOutput) } -type RouteSpecOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecGrpcRouteActionOutput struct{ *pulumi.OutputState } -func (RouteSpecOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpec)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteAction)(nil)).Elem() } -func (o RouteSpecOutput) ToRouteSpecOutput() RouteSpecOutput { +func (o GatewayRouteSpecGrpcRouteActionOutput) ToGatewayRouteSpecGrpcRouteActionOutput() GatewayRouteSpecGrpcRouteActionOutput { return o } -func (o RouteSpecOutput) ToRouteSpecOutputWithContext(ctx context.Context) RouteSpecOutput { +func (o GatewayRouteSpecGrpcRouteActionOutput) ToGatewayRouteSpecGrpcRouteActionOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionOutput { return o } -func (o RouteSpecOutput) ToRouteSpecPtrOutput() RouteSpecPtrOutput { - return o.ToRouteSpecPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecGrpcRouteActionOutput) ToGatewayRouteSpecGrpcRouteActionPtrOutput() GatewayRouteSpecGrpcRouteActionPtrOutput { + return o.ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) } -func (o RouteSpecOutput) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { - return o.ApplyT(func(v RouteSpec) *RouteSpec { +func (o GatewayRouteSpecGrpcRouteActionOutput) ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteAction) *GatewayRouteSpecGrpcRouteAction { return &v - }).(RouteSpecPtrOutput) + }).(GatewayRouteSpecGrpcRouteActionPtrOutput) } -// The gRPC routing information for the route. -func (o RouteSpecOutput) GrpcRoute() RouteSpecGrpcRoutePtrOutput { - return o.ApplyT(func(v RouteSpec) *RouteSpecGrpcRoute { return v.GrpcRoute }).(RouteSpecGrpcRoutePtrOutput) +// The target that traffic is routed to when a request matches the gateway route. +func (o GatewayRouteSpecGrpcRouteActionOutput) Target() GatewayRouteSpecGrpcRouteActionTargetOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteAction) GatewayRouteSpecGrpcRouteActionTarget { return v.Target }).(GatewayRouteSpecGrpcRouteActionTargetOutput) } -// The HTTP/2 routing information for the route. -func (o RouteSpecOutput) Http2Route() RouteSpecHttp2RoutePtrOutput { - return o.ApplyT(func(v RouteSpec) *RouteSpecHttp2Route { return v.Http2Route }).(RouteSpecHttp2RoutePtrOutput) +type GatewayRouteSpecGrpcRouteActionPtrOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecGrpcRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteAction)(nil)).Elem() } -// The HTTP routing information for the route. -func (o RouteSpecOutput) HttpRoute() RouteSpecHttpRoutePtrOutput { - return o.ApplyT(func(v RouteSpec) *RouteSpecHttpRoute { return v.HttpRoute }).(RouteSpecHttpRoutePtrOutput) +func (o GatewayRouteSpecGrpcRouteActionPtrOutput) ToGatewayRouteSpecGrpcRouteActionPtrOutput() GatewayRouteSpecGrpcRouteActionPtrOutput { + return o } -// The priority for the route, between `0` and `1000`. -// Routes are matched based on the specified value, where `0` is the highest priority. -func (o RouteSpecOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v RouteSpec) *int { return v.Priority }).(pulumi.IntPtrOutput) +func (o GatewayRouteSpecGrpcRouteActionPtrOutput) ToGatewayRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionPtrOutput { + return o } -// The TCP routing information for the route. -func (o RouteSpecOutput) TcpRoute() RouteSpecTcpRoutePtrOutput { - return o.ApplyT(func(v RouteSpec) *RouteSpecTcpRoute { return v.TcpRoute }).(RouteSpecTcpRoutePtrOutput) +func (o GatewayRouteSpecGrpcRouteActionPtrOutput) Elem() GatewayRouteSpecGrpcRouteActionOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteAction) GatewayRouteSpecGrpcRouteAction { return *v }).(GatewayRouteSpecGrpcRouteActionOutput) } -type RouteSpecPtrOutput struct{ *pulumi.OutputState } +// The target that traffic is routed to when a request matches the gateway route. +func (o GatewayRouteSpecGrpcRouteActionPtrOutput) Target() GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteAction) *GatewayRouteSpecGrpcRouteActionTarget { + if v == nil { + return nil + } + return &v.Target + }).(GatewayRouteSpecGrpcRouteActionTargetPtrOutput) +} -func (RouteSpecPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpec)(nil)).Elem() +type GatewayRouteSpecGrpcRouteActionTarget struct { + // The virtual service gateway route target. + VirtualService GatewayRouteSpecGrpcRouteActionTargetVirtualService `pulumi:"virtualService"` } -func (o RouteSpecPtrOutput) ToRouteSpecPtrOutput() RouteSpecPtrOutput { - return o +// GatewayRouteSpecGrpcRouteActionTargetInput is an input type that accepts GatewayRouteSpecGrpcRouteActionTargetArgs and GatewayRouteSpecGrpcRouteActionTargetOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteActionTargetInput` via: +// +// GatewayRouteSpecGrpcRouteActionTargetArgs{...} +type GatewayRouteSpecGrpcRouteActionTargetInput interface { + pulumi.Input + + ToGatewayRouteSpecGrpcRouteActionTargetOutput() GatewayRouteSpecGrpcRouteActionTargetOutput + ToGatewayRouteSpecGrpcRouteActionTargetOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteActionTargetOutput } -func (o RouteSpecPtrOutput) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { - return o +type GatewayRouteSpecGrpcRouteActionTargetArgs struct { + // The virtual service gateway route target. + VirtualService GatewayRouteSpecGrpcRouteActionTargetVirtualServiceInput `pulumi:"virtualService"` } -func (o RouteSpecPtrOutput) Elem() RouteSpecOutput { - return o.ApplyT(func(v *RouteSpec) RouteSpec { return *v }).(RouteSpecOutput) +func (GatewayRouteSpecGrpcRouteActionTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteActionTarget)(nil)).Elem() } -// The gRPC routing information for the route. -func (o RouteSpecPtrOutput) GrpcRoute() RouteSpecGrpcRoutePtrOutput { - return o.ApplyT(func(v *RouteSpec) *RouteSpecGrpcRoute { - if v == nil { - return nil - } - return v.GrpcRoute - }).(RouteSpecGrpcRoutePtrOutput) +func (i GatewayRouteSpecGrpcRouteActionTargetArgs) ToGatewayRouteSpecGrpcRouteActionTargetOutput() GatewayRouteSpecGrpcRouteActionTargetOutput { + return i.ToGatewayRouteSpecGrpcRouteActionTargetOutputWithContext(context.Background()) } -// The HTTP/2 routing information for the route. -func (o RouteSpecPtrOutput) Http2Route() RouteSpecHttp2RoutePtrOutput { - return o.ApplyT(func(v *RouteSpec) *RouteSpecHttp2Route { - if v == nil { - return nil - } - return v.Http2Route - }).(RouteSpecHttp2RoutePtrOutput) +func (i GatewayRouteSpecGrpcRouteActionTargetArgs) ToGatewayRouteSpecGrpcRouteActionTargetOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionTargetOutput) } -// The HTTP routing information for the route. -func (o RouteSpecPtrOutput) HttpRoute() RouteSpecHttpRoutePtrOutput { - return o.ApplyT(func(v *RouteSpec) *RouteSpecHttpRoute { - if v == nil { - return nil - } - return v.HttpRoute - }).(RouteSpecHttpRoutePtrOutput) +func (i GatewayRouteSpecGrpcRouteActionTargetArgs) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutput() GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return i.ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(context.Background()) } -// The priority for the route, between `0` and `1000`. -// Routes are matched based on the specified value, where `0` is the highest priority. -func (o RouteSpecPtrOutput) Priority() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpec) *int { - if v == nil { - return nil - } - return v.Priority - }).(pulumi.IntPtrOutput) +func (i GatewayRouteSpecGrpcRouteActionTargetArgs) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionTargetOutput).ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(ctx) } -// The TCP routing information for the route. -func (o RouteSpecPtrOutput) TcpRoute() RouteSpecTcpRoutePtrOutput { - return o.ApplyT(func(v *RouteSpec) *RouteSpecTcpRoute { +// GatewayRouteSpecGrpcRouteActionTargetPtrInput is an input type that accepts GatewayRouteSpecGrpcRouteActionTargetArgs, GatewayRouteSpecGrpcRouteActionTargetPtr and GatewayRouteSpecGrpcRouteActionTargetPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteActionTargetPtrInput` via: +// +// GatewayRouteSpecGrpcRouteActionTargetArgs{...} +// +// or: +// +// nil +type GatewayRouteSpecGrpcRouteActionTargetPtrInput interface { + pulumi.Input + + ToGatewayRouteSpecGrpcRouteActionTargetPtrOutput() GatewayRouteSpecGrpcRouteActionTargetPtrOutput + ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteActionTargetPtrOutput +} + +type gatewayRouteSpecGrpcRouteActionTargetPtrType GatewayRouteSpecGrpcRouteActionTargetArgs + +func GatewayRouteSpecGrpcRouteActionTargetPtr(v *GatewayRouteSpecGrpcRouteActionTargetArgs) GatewayRouteSpecGrpcRouteActionTargetPtrInput { + return (*gatewayRouteSpecGrpcRouteActionTargetPtrType)(v) +} + +func (*gatewayRouteSpecGrpcRouteActionTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteActionTarget)(nil)).Elem() +} + +func (i *gatewayRouteSpecGrpcRouteActionTargetPtrType) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutput() GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return i.ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(context.Background()) +} + +func (i *gatewayRouteSpecGrpcRouteActionTargetPtrType) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionTargetPtrOutput) +} + +type GatewayRouteSpecGrpcRouteActionTargetOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecGrpcRouteActionTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteActionTarget)(nil)).Elem() +} + +func (o GatewayRouteSpecGrpcRouteActionTargetOutput) ToGatewayRouteSpecGrpcRouteActionTargetOutput() GatewayRouteSpecGrpcRouteActionTargetOutput { + return o +} + +func (o GatewayRouteSpecGrpcRouteActionTargetOutput) ToGatewayRouteSpecGrpcRouteActionTargetOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetOutput { + return o +} + +func (o GatewayRouteSpecGrpcRouteActionTargetOutput) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutput() GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return o.ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(context.Background()) +} + +func (o GatewayRouteSpecGrpcRouteActionTargetOutput) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteActionTarget) *GatewayRouteSpecGrpcRouteActionTarget { + return &v + }).(GatewayRouteSpecGrpcRouteActionTargetPtrOutput) +} + +// The virtual service gateway route target. +func (o GatewayRouteSpecGrpcRouteActionTargetOutput) VirtualService() GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteActionTarget) GatewayRouteSpecGrpcRouteActionTargetVirtualService { + return v.VirtualService + }).(GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) +} + +type GatewayRouteSpecGrpcRouteActionTargetPtrOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecGrpcRouteActionTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteActionTarget)(nil)).Elem() +} + +func (o GatewayRouteSpecGrpcRouteActionTargetPtrOutput) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutput() GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return o +} + +func (o GatewayRouteSpecGrpcRouteActionTargetPtrOutput) ToGatewayRouteSpecGrpcRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetPtrOutput { + return o +} + +func (o GatewayRouteSpecGrpcRouteActionTargetPtrOutput) Elem() GatewayRouteSpecGrpcRouteActionTargetOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteActionTarget) GatewayRouteSpecGrpcRouteActionTarget { return *v }).(GatewayRouteSpecGrpcRouteActionTargetOutput) +} + +// The virtual service gateway route target. +func (o GatewayRouteSpecGrpcRouteActionTargetPtrOutput) VirtualService() GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteActionTarget) *GatewayRouteSpecGrpcRouteActionTargetVirtualService { if v == nil { return nil } - return v.TcpRoute - }).(RouteSpecTcpRoutePtrOutput) + return &v.VirtualService + }).(GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) } -type RouteSpecGrpcRoute struct { - // The action to take if a match is determined. - Action RouteSpecGrpcRouteAction `pulumi:"action"` - // The criteria for determining an gRPC request match. - Match RouteSpecGrpcRouteMatch `pulumi:"match"` - // The retry policy. - RetryPolicy *RouteSpecGrpcRouteRetryPolicy `pulumi:"retryPolicy"` - // The types of timeouts. - Timeout *RouteSpecGrpcRouteTimeout `pulumi:"timeout"` +type GatewayRouteSpecGrpcRouteActionTargetVirtualService struct { + // The name of the virtual service that traffic is routed to. + VirtualServiceName string `pulumi:"virtualServiceName"` } -// RouteSpecGrpcRouteInput is an input type that accepts RouteSpecGrpcRouteArgs and RouteSpecGrpcRouteOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteInput` via: +// GatewayRouteSpecGrpcRouteActionTargetVirtualServiceInput is an input type that accepts GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs and GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteActionTargetVirtualServiceInput` via: // -// RouteSpecGrpcRouteArgs{...} -type RouteSpecGrpcRouteInput interface { +// GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs{...} +type GatewayRouteSpecGrpcRouteActionTargetVirtualServiceInput interface { pulumi.Input - ToRouteSpecGrpcRouteOutput() RouteSpecGrpcRouteOutput - ToRouteSpecGrpcRouteOutputWithContext(context.Context) RouteSpecGrpcRouteOutput + ToGatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput + ToGatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput } -type RouteSpecGrpcRouteArgs struct { - // The action to take if a match is determined. - Action RouteSpecGrpcRouteActionInput `pulumi:"action"` - // The criteria for determining an gRPC request match. - Match RouteSpecGrpcRouteMatchInput `pulumi:"match"` - // The retry policy. - RetryPolicy RouteSpecGrpcRouteRetryPolicyPtrInput `pulumi:"retryPolicy"` - // The types of timeouts. - Timeout RouteSpecGrpcRouteTimeoutPtrInput `pulumi:"timeout"` +type GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs struct { + // The name of the virtual service that traffic is routed to. + VirtualServiceName pulumi.StringInput `pulumi:"virtualServiceName"` } -func (RouteSpecGrpcRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRoute)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteActionTargetVirtualService)(nil)).Elem() } -func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRouteOutput() RouteSpecGrpcRouteOutput { - return i.ToRouteSpecGrpcRouteOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput { + return i.ToGatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRouteOutputWithContext(ctx context.Context) RouteSpecGrpcRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteOutput) +func (i GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) } -func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { - return i.ToRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { + return i.ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteOutput).ToRouteSpecGrpcRoutePtrOutputWithContext(ctx) +func (i GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput).ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(ctx) } -// RouteSpecGrpcRoutePtrInput is an input type that accepts RouteSpecGrpcRouteArgs, RouteSpecGrpcRoutePtr and RouteSpecGrpcRoutePtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRoutePtrInput` via: +// GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrInput is an input type that accepts GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs, GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtr and GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrInput` via: // -// RouteSpecGrpcRouteArgs{...} +// GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs{...} // // or: // // nil -type RouteSpecGrpcRoutePtrInput interface { +type GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrInput interface { pulumi.Input - ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput - ToRouteSpecGrpcRoutePtrOutputWithContext(context.Context) RouteSpecGrpcRoutePtrOutput + ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput + ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput } -type routeSpecGrpcRoutePtrType RouteSpecGrpcRouteArgs +type gatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrType GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs -func RouteSpecGrpcRoutePtr(v *RouteSpecGrpcRouteArgs) RouteSpecGrpcRoutePtrInput { - return (*routeSpecGrpcRoutePtrType)(v) +func GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtr(v *GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs) GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrInput { + return (*gatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrType)(v) } -func (*routeSpecGrpcRoutePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRoute)(nil)).Elem() +func (*gatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteActionTargetVirtualService)(nil)).Elem() } -func (i *routeSpecGrpcRoutePtrType) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { - return i.ToRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrType) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { + return i.ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRoutePtrType) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRoutePtrOutput) +func (i *gatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrType) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) } -type RouteSpecGrpcRouteOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRoute)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteActionTargetVirtualService)(nil)).Elem() } -func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRouteOutput() RouteSpecGrpcRouteOutput { +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput { return o } -func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRouteOutputWithContext(ctx context.Context) RouteSpecGrpcRouteOutput { +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput { return o } -func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { - return o.ToRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { + return o.ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRoute) *RouteSpecGrpcRoute { +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteActionTargetVirtualService) *GatewayRouteSpecGrpcRouteActionTargetVirtualService { return &v - }).(RouteSpecGrpcRoutePtrOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecGrpcRouteOutput) Action() RouteSpecGrpcRouteActionOutput { - return o.ApplyT(func(v RouteSpecGrpcRoute) RouteSpecGrpcRouteAction { return v.Action }).(RouteSpecGrpcRouteActionOutput) -} - -// The criteria for determining an gRPC request match. -func (o RouteSpecGrpcRouteOutput) Match() RouteSpecGrpcRouteMatchOutput { - return o.ApplyT(func(v RouteSpecGrpcRoute) RouteSpecGrpcRouteMatch { return v.Match }).(RouteSpecGrpcRouteMatchOutput) -} - -// The retry policy. -func (o RouteSpecGrpcRouteOutput) RetryPolicy() RouteSpecGrpcRouteRetryPolicyPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRoute) *RouteSpecGrpcRouteRetryPolicy { return v.RetryPolicy }).(RouteSpecGrpcRouteRetryPolicyPtrOutput) + }).(GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) } -// The types of timeouts. -func (o RouteSpecGrpcRouteOutput) Timeout() RouteSpecGrpcRouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRoute) *RouteSpecGrpcRouteTimeout { return v.Timeout }).(RouteSpecGrpcRouteTimeoutPtrOutput) +// The name of the virtual service that traffic is routed to. +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) VirtualServiceName() pulumi.StringOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteActionTargetVirtualService) string { return v.VirtualServiceName }).(pulumi.StringOutput) } -type RouteSpecGrpcRoutePtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRoutePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRoute)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteActionTargetVirtualService)(nil)).Elem() } -func (o RouteSpecGrpcRoutePtrOutput) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { return o } -func (o RouteSpecGrpcRoutePtrOutput) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) ToGatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput { return o } -func (o RouteSpecGrpcRoutePtrOutput) Elem() RouteSpecGrpcRouteOutput { - return o.ApplyT(func(v *RouteSpecGrpcRoute) RouteSpecGrpcRoute { return *v }).(RouteSpecGrpcRouteOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecGrpcRoutePtrOutput) Action() RouteSpecGrpcRouteActionPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteAction { - if v == nil { - return nil - } - return &v.Action - }).(RouteSpecGrpcRouteActionPtrOutput) -} - -// The criteria for determining an gRPC request match. -func (o RouteSpecGrpcRoutePtrOutput) Match() RouteSpecGrpcRouteMatchPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteMatch { - if v == nil { - return nil - } - return &v.Match - }).(RouteSpecGrpcRouteMatchPtrOutput) -} - -// The retry policy. -func (o RouteSpecGrpcRoutePtrOutput) RetryPolicy() RouteSpecGrpcRouteRetryPolicyPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteRetryPolicy { - if v == nil { - return nil - } - return v.RetryPolicy - }).(RouteSpecGrpcRouteRetryPolicyPtrOutput) +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) Elem() GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteActionTargetVirtualService) GatewayRouteSpecGrpcRouteActionTargetVirtualService { + return *v + }).(GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput) } -// The types of timeouts. -func (o RouteSpecGrpcRoutePtrOutput) Timeout() RouteSpecGrpcRouteTimeoutPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteTimeout { +// The name of the virtual service that traffic is routed to. +func (o GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput) VirtualServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteActionTargetVirtualService) *string { if v == nil { return nil } - return v.Timeout - }).(RouteSpecGrpcRouteTimeoutPtrOutput) + return &v.VirtualServiceName + }).(pulumi.StringPtrOutput) } -type RouteSpecGrpcRouteAction struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets []RouteSpecGrpcRouteActionWeightedTarget `pulumi:"weightedTargets"` +type GatewayRouteSpecGrpcRouteMatch struct { + // The fully qualified domain name for the service to match from the request. + ServiceName string `pulumi:"serviceName"` } -// RouteSpecGrpcRouteActionInput is an input type that accepts RouteSpecGrpcRouteActionArgs and RouteSpecGrpcRouteActionOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteActionInput` via: +// GatewayRouteSpecGrpcRouteMatchInput is an input type that accepts GatewayRouteSpecGrpcRouteMatchArgs and GatewayRouteSpecGrpcRouteMatchOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteMatchInput` via: // -// RouteSpecGrpcRouteActionArgs{...} -type RouteSpecGrpcRouteActionInput interface { +// GatewayRouteSpecGrpcRouteMatchArgs{...} +type GatewayRouteSpecGrpcRouteMatchInput interface { pulumi.Input - ToRouteSpecGrpcRouteActionOutput() RouteSpecGrpcRouteActionOutput - ToRouteSpecGrpcRouteActionOutputWithContext(context.Context) RouteSpecGrpcRouteActionOutput + ToGatewayRouteSpecGrpcRouteMatchOutput() GatewayRouteSpecGrpcRouteMatchOutput + ToGatewayRouteSpecGrpcRouteMatchOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteMatchOutput } -type RouteSpecGrpcRouteActionArgs struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets RouteSpecGrpcRouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` +type GatewayRouteSpecGrpcRouteMatchArgs struct { + // The fully qualified domain name for the service to match from the request. + ServiceName pulumi.StringInput `pulumi:"serviceName"` } -func (RouteSpecGrpcRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteAction)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteMatch)(nil)).Elem() } -func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionOutput() RouteSpecGrpcRouteActionOutput { - return i.ToRouteSpecGrpcRouteActionOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteMatchArgs) ToGatewayRouteSpecGrpcRouteMatchOutput() GatewayRouteSpecGrpcRouteMatchOutput { + return i.ToGatewayRouteSpecGrpcRouteMatchOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionOutput) +func (i GatewayRouteSpecGrpcRouteMatchArgs) ToGatewayRouteSpecGrpcRouteMatchOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteMatchOutput) } -func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { - return i.ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecGrpcRouteMatchArgs) ToGatewayRouteSpecGrpcRouteMatchPtrOutput() GatewayRouteSpecGrpcRouteMatchPtrOutput { + return i.ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionOutput).ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx) +func (i GatewayRouteSpecGrpcRouteMatchArgs) ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteMatchOutput).ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteActionPtrInput is an input type that accepts RouteSpecGrpcRouteActionArgs, RouteSpecGrpcRouteActionPtr and RouteSpecGrpcRouteActionPtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteActionPtrInput` via: +// GatewayRouteSpecGrpcRouteMatchPtrInput is an input type that accepts GatewayRouteSpecGrpcRouteMatchArgs, GatewayRouteSpecGrpcRouteMatchPtr and GatewayRouteSpecGrpcRouteMatchPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecGrpcRouteMatchPtrInput` via: // -// RouteSpecGrpcRouteActionArgs{...} +// GatewayRouteSpecGrpcRouteMatchArgs{...} // // or: // // nil -type RouteSpecGrpcRouteActionPtrInput interface { +type GatewayRouteSpecGrpcRouteMatchPtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput - ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Context) RouteSpecGrpcRouteActionPtrOutput + ToGatewayRouteSpecGrpcRouteMatchPtrOutput() GatewayRouteSpecGrpcRouteMatchPtrOutput + ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Context) GatewayRouteSpecGrpcRouteMatchPtrOutput } -type routeSpecGrpcRouteActionPtrType RouteSpecGrpcRouteActionArgs +type gatewayRouteSpecGrpcRouteMatchPtrType GatewayRouteSpecGrpcRouteMatchArgs -func RouteSpecGrpcRouteActionPtr(v *RouteSpecGrpcRouteActionArgs) RouteSpecGrpcRouteActionPtrInput { - return (*routeSpecGrpcRouteActionPtrType)(v) +func GatewayRouteSpecGrpcRouteMatchPtr(v *GatewayRouteSpecGrpcRouteMatchArgs) GatewayRouteSpecGrpcRouteMatchPtrInput { + return (*gatewayRouteSpecGrpcRouteMatchPtrType)(v) } -func (*routeSpecGrpcRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteAction)(nil)).Elem() +func (*gatewayRouteSpecGrpcRouteMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteMatch)(nil)).Elem() } -func (i *routeSpecGrpcRouteActionPtrType) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { - return i.ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecGrpcRouteMatchPtrType) ToGatewayRouteSpecGrpcRouteMatchPtrOutput() GatewayRouteSpecGrpcRouteMatchPtrOutput { + return i.ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteActionPtrType) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionPtrOutput) +func (i *gatewayRouteSpecGrpcRouteMatchPtrType) ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecGrpcRouteMatchPtrOutput) } -type RouteSpecGrpcRouteActionOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecGrpcRouteMatchOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteAction)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecGrpcRouteMatch)(nil)).Elem() } -func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionOutput() RouteSpecGrpcRouteActionOutput { +func (o GatewayRouteSpecGrpcRouteMatchOutput) ToGatewayRouteSpecGrpcRouteMatchOutput() GatewayRouteSpecGrpcRouteMatchOutput { return o } -func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionOutput { +func (o GatewayRouteSpecGrpcRouteMatchOutput) ToGatewayRouteSpecGrpcRouteMatchOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteMatchOutput { return o } -func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { - return o.ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecGrpcRouteMatchOutput) ToGatewayRouteSpecGrpcRouteMatchPtrOutput() GatewayRouteSpecGrpcRouteMatchPtrOutput { + return o.ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteAction) *RouteSpecGrpcRouteAction { +func (o GatewayRouteSpecGrpcRouteMatchOutput) ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteMatchPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteMatch) *GatewayRouteSpecGrpcRouteMatch { return &v - }).(RouteSpecGrpcRouteActionPtrOutput) + }).(GatewayRouteSpecGrpcRouteMatchPtrOutput) } -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecGrpcRouteActionOutput) WeightedTargets() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteAction) []RouteSpecGrpcRouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecGrpcRouteActionWeightedTargetArrayOutput) +// The fully qualified domain name for the service to match from the request. +func (o GatewayRouteSpecGrpcRouteMatchOutput) ServiceName() pulumi.StringOutput { + return o.ApplyT(func(v GatewayRouteSpecGrpcRouteMatch) string { return v.ServiceName }).(pulumi.StringOutput) } -type RouteSpecGrpcRouteActionPtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecGrpcRouteMatchPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteAction)(nil)).Elem() +func (GatewayRouteSpecGrpcRouteMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecGrpcRouteMatch)(nil)).Elem() } -func (o RouteSpecGrpcRouteActionPtrOutput) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { +func (o GatewayRouteSpecGrpcRouteMatchPtrOutput) ToGatewayRouteSpecGrpcRouteMatchPtrOutput() GatewayRouteSpecGrpcRouteMatchPtrOutput { return o } -func (o RouteSpecGrpcRouteActionPtrOutput) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { +func (o GatewayRouteSpecGrpcRouteMatchPtrOutput) ToGatewayRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecGrpcRouteMatchPtrOutput { return o } -func (o RouteSpecGrpcRouteActionPtrOutput) Elem() RouteSpecGrpcRouteActionOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteAction) RouteSpecGrpcRouteAction { return *v }).(RouteSpecGrpcRouteActionOutput) +func (o GatewayRouteSpecGrpcRouteMatchPtrOutput) Elem() GatewayRouteSpecGrpcRouteMatchOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteMatch) GatewayRouteSpecGrpcRouteMatch { return *v }).(GatewayRouteSpecGrpcRouteMatchOutput) } -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecGrpcRouteActionPtrOutput) WeightedTargets() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteAction) []RouteSpecGrpcRouteActionWeightedTarget { +// The fully qualified domain name for the service to match from the request. +func (o GatewayRouteSpecGrpcRouteMatchPtrOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecGrpcRouteMatch) *string { if v == nil { return nil } - return v.WeightedTargets - }).(RouteSpecGrpcRouteActionWeightedTargetArrayOutput) + return &v.ServiceName + }).(pulumi.StringPtrOutput) } -type RouteSpecGrpcRouteActionWeightedTarget struct { - // The virtual node to associate with the weighted target. - VirtualNode string `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight int `pulumi:"weight"` +type GatewayRouteSpecHttp2Route struct { + // The action to take if a match is determined. + Action GatewayRouteSpecHttp2RouteAction `pulumi:"action"` + // The criteria for determining a request match. + Match GatewayRouteSpecHttp2RouteMatch `pulumi:"match"` } -// RouteSpecGrpcRouteActionWeightedTargetInput is an input type that accepts RouteSpecGrpcRouteActionWeightedTargetArgs and RouteSpecGrpcRouteActionWeightedTargetOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteActionWeightedTargetInput` via: +// GatewayRouteSpecHttp2RouteInput is an input type that accepts GatewayRouteSpecHttp2RouteArgs and GatewayRouteSpecHttp2RouteOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteInput` via: // -// RouteSpecGrpcRouteActionWeightedTargetArgs{...} -type RouteSpecGrpcRouteActionWeightedTargetInput interface { +// GatewayRouteSpecHttp2RouteArgs{...} +type GatewayRouteSpecHttp2RouteInput interface { pulumi.Input - ToRouteSpecGrpcRouteActionWeightedTargetOutput() RouteSpecGrpcRouteActionWeightedTargetOutput - ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecGrpcRouteActionWeightedTargetOutput + ToGatewayRouteSpecHttp2RouteOutput() GatewayRouteSpecHttp2RouteOutput + ToGatewayRouteSpecHttp2RouteOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteOutput } -type RouteSpecGrpcRouteActionWeightedTargetArgs struct { - // The virtual node to associate with the weighted target. - VirtualNode pulumi.StringInput `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight pulumi.IntInput `pulumi:"weight"` +type GatewayRouteSpecHttp2RouteArgs struct { + // The action to take if a match is determined. + Action GatewayRouteSpecHttp2RouteActionInput `pulumi:"action"` + // The criteria for determining a request match. + Match GatewayRouteSpecHttp2RouteMatchInput `pulumi:"match"` } -func (RouteSpecGrpcRouteActionWeightedTargetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2Route)(nil)).Elem() } -func (i RouteSpecGrpcRouteActionWeightedTargetArgs) ToRouteSpecGrpcRouteActionWeightedTargetOutput() RouteSpecGrpcRouteActionWeightedTargetOutput { - return i.ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttp2RouteArgs) ToGatewayRouteSpecHttp2RouteOutput() GatewayRouteSpecHttp2RouteOutput { + return i.ToGatewayRouteSpecHttp2RouteOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteActionWeightedTargetArgs) ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionWeightedTargetOutput) +func (i GatewayRouteSpecHttp2RouteArgs) ToGatewayRouteSpecHttp2RouteOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteOutput) } -// RouteSpecGrpcRouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecGrpcRouteActionWeightedTargetArray and RouteSpecGrpcRouteActionWeightedTargetArrayOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteActionWeightedTargetArrayInput` via: +func (i GatewayRouteSpecHttp2RouteArgs) ToGatewayRouteSpecHttp2RoutePtrOutput() GatewayRouteSpecHttp2RoutePtrOutput { + return i.ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) +} + +func (i GatewayRouteSpecHttp2RouteArgs) ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteOutput).ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(ctx) +} + +// GatewayRouteSpecHttp2RoutePtrInput is an input type that accepts GatewayRouteSpecHttp2RouteArgs, GatewayRouteSpecHttp2RoutePtr and GatewayRouteSpecHttp2RoutePtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RoutePtrInput` via: // -// RouteSpecGrpcRouteActionWeightedTargetArray{ RouteSpecGrpcRouteActionWeightedTargetArgs{...} } -type RouteSpecGrpcRouteActionWeightedTargetArrayInput interface { +// GatewayRouteSpecHttp2RouteArgs{...} +// +// or: +// +// nil +type GatewayRouteSpecHttp2RoutePtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteActionWeightedTargetArrayOutput() RouteSpecGrpcRouteActionWeightedTargetArrayOutput - ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecGrpcRouteActionWeightedTargetArrayOutput + ToGatewayRouteSpecHttp2RoutePtrOutput() GatewayRouteSpecHttp2RoutePtrOutput + ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(context.Context) GatewayRouteSpecHttp2RoutePtrOutput } -type RouteSpecGrpcRouteActionWeightedTargetArray []RouteSpecGrpcRouteActionWeightedTargetInput +type gatewayRouteSpecHttp2RoutePtrType GatewayRouteSpecHttp2RouteArgs -func (RouteSpecGrpcRouteActionWeightedTargetArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() +func GatewayRouteSpecHttp2RoutePtr(v *GatewayRouteSpecHttp2RouteArgs) GatewayRouteSpecHttp2RoutePtrInput { + return (*gatewayRouteSpecHttp2RoutePtrType)(v) } -func (i RouteSpecGrpcRouteActionWeightedTargetArray) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutput() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { - return i.ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(context.Background()) +func (*gatewayRouteSpecHttp2RoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2Route)(nil)).Elem() } -func (i RouteSpecGrpcRouteActionWeightedTargetArray) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionWeightedTargetArrayOutput) +func (i *gatewayRouteSpecHttp2RoutePtrType) ToGatewayRouteSpecHttp2RoutePtrOutput() GatewayRouteSpecHttp2RoutePtrOutput { + return i.ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) } -type RouteSpecGrpcRouteActionWeightedTargetOutput struct{ *pulumi.OutputState } +func (i *gatewayRouteSpecHttp2RoutePtrType) ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RoutePtrOutput) +} -func (RouteSpecGrpcRouteActionWeightedTargetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() +type GatewayRouteSpecHttp2RouteOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecHttp2RouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2Route)(nil)).Elem() } -func (o RouteSpecGrpcRouteActionWeightedTargetOutput) ToRouteSpecGrpcRouteActionWeightedTargetOutput() RouteSpecGrpcRouteActionWeightedTargetOutput { +func (o GatewayRouteSpecHttp2RouteOutput) ToGatewayRouteSpecHttp2RouteOutput() GatewayRouteSpecHttp2RouteOutput { return o } -func (o RouteSpecGrpcRouteActionWeightedTargetOutput) ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetOutput { +func (o GatewayRouteSpecHttp2RouteOutput) ToGatewayRouteSpecHttp2RouteOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteOutput { return o } -// The virtual node to associate with the weighted target. -func (o RouteSpecGrpcRouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) +func (o GatewayRouteSpecHttp2RouteOutput) ToGatewayRouteSpecHttp2RoutePtrOutput() GatewayRouteSpecHttp2RoutePtrOutput { + return o.ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) } -// The relative weight of the weighted target. An integer between 0 and 100. -func (o RouteSpecGrpcRouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) +func (o GatewayRouteSpecHttp2RouteOutput) ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RoutePtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2Route) *GatewayRouteSpecHttp2Route { + return &v + }).(GatewayRouteSpecHttp2RoutePtrOutput) } -type RouteSpecGrpcRouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } +// The action to take if a match is determined. +func (o GatewayRouteSpecHttp2RouteOutput) Action() GatewayRouteSpecHttp2RouteActionOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2Route) GatewayRouteSpecHttp2RouteAction { return v.Action }).(GatewayRouteSpecHttp2RouteActionOutput) +} -func (RouteSpecGrpcRouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() +// The criteria for determining a request match. +func (o GatewayRouteSpecHttp2RouteOutput) Match() GatewayRouteSpecHttp2RouteMatchOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2Route) GatewayRouteSpecHttp2RouteMatch { return v.Match }).(GatewayRouteSpecHttp2RouteMatchOutput) } -func (o RouteSpecGrpcRouteActionWeightedTargetArrayOutput) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutput() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { +type GatewayRouteSpecHttp2RoutePtrOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecHttp2RoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2Route)(nil)).Elem() +} + +func (o GatewayRouteSpecHttp2RoutePtrOutput) ToGatewayRouteSpecHttp2RoutePtrOutput() GatewayRouteSpecHttp2RoutePtrOutput { return o } -func (o RouteSpecGrpcRouteActionWeightedTargetArrayOutput) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetArrayOutput { +func (o GatewayRouteSpecHttp2RoutePtrOutput) ToGatewayRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RoutePtrOutput { return o } -func (o RouteSpecGrpcRouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecGrpcRouteActionWeightedTargetOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecGrpcRouteActionWeightedTarget { - return vs[0].([]RouteSpecGrpcRouteActionWeightedTarget)[vs[1].(int)] - }).(RouteSpecGrpcRouteActionWeightedTargetOutput) +func (o GatewayRouteSpecHttp2RoutePtrOutput) Elem() GatewayRouteSpecHttp2RouteOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2Route) GatewayRouteSpecHttp2Route { return *v }).(GatewayRouteSpecHttp2RouteOutput) } -type RouteSpecGrpcRouteMatch struct { - // The data to match from the gRPC request. - Metadatas []RouteSpecGrpcRouteMatchMetadata `pulumi:"metadatas"` - // The method name to match from the request. If you specify a name, you must also specify a `serviceName`. - MethodName *string `pulumi:"methodName"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix *string `pulumi:"prefix"` - // The fully qualified domain name for the service to match from the request. - ServiceName *string `pulumi:"serviceName"` +// The action to take if a match is determined. +func (o GatewayRouteSpecHttp2RoutePtrOutput) Action() GatewayRouteSpecHttp2RouteActionPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2Route) *GatewayRouteSpecHttp2RouteAction { + if v == nil { + return nil + } + return &v.Action + }).(GatewayRouteSpecHttp2RouteActionPtrOutput) } -// RouteSpecGrpcRouteMatchInput is an input type that accepts RouteSpecGrpcRouteMatchArgs and RouteSpecGrpcRouteMatchOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchInput` via: +// The criteria for determining a request match. +func (o GatewayRouteSpecHttp2RoutePtrOutput) Match() GatewayRouteSpecHttp2RouteMatchPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2Route) *GatewayRouteSpecHttp2RouteMatch { + if v == nil { + return nil + } + return &v.Match + }).(GatewayRouteSpecHttp2RouteMatchPtrOutput) +} + +type GatewayRouteSpecHttp2RouteAction struct { + // The target that traffic is routed to when a request matches the gateway route. + Target GatewayRouteSpecHttp2RouteActionTarget `pulumi:"target"` +} + +// GatewayRouteSpecHttp2RouteActionInput is an input type that accepts GatewayRouteSpecHttp2RouteActionArgs and GatewayRouteSpecHttp2RouteActionOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteActionInput` via: // -// RouteSpecGrpcRouteMatchArgs{...} -type RouteSpecGrpcRouteMatchInput interface { +// GatewayRouteSpecHttp2RouteActionArgs{...} +type GatewayRouteSpecHttp2RouteActionInput interface { pulumi.Input - ToRouteSpecGrpcRouteMatchOutput() RouteSpecGrpcRouteMatchOutput - ToRouteSpecGrpcRouteMatchOutputWithContext(context.Context) RouteSpecGrpcRouteMatchOutput + ToGatewayRouteSpecHttp2RouteActionOutput() GatewayRouteSpecHttp2RouteActionOutput + ToGatewayRouteSpecHttp2RouteActionOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteActionOutput } -type RouteSpecGrpcRouteMatchArgs struct { - // The data to match from the gRPC request. - Metadatas RouteSpecGrpcRouteMatchMetadataArrayInput `pulumi:"metadatas"` - // The method name to match from the request. If you specify a name, you must also specify a `serviceName`. - MethodName pulumi.StringPtrInput `pulumi:"methodName"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix pulumi.StringPtrInput `pulumi:"prefix"` - // The fully qualified domain name for the service to match from the request. - ServiceName pulumi.StringPtrInput `pulumi:"serviceName"` +type GatewayRouteSpecHttp2RouteActionArgs struct { + // The target that traffic is routed to when a request matches the gateway route. + Target GatewayRouteSpecHttp2RouteActionTargetInput `pulumi:"target"` } -func (RouteSpecGrpcRouteMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatch)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteAction)(nil)).Elem() } -func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchOutput() RouteSpecGrpcRouteMatchOutput { - return i.ToRouteSpecGrpcRouteMatchOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttp2RouteActionArgs) ToGatewayRouteSpecHttp2RouteActionOutput() GatewayRouteSpecHttp2RouteActionOutput { + return i.ToGatewayRouteSpecHttp2RouteActionOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchOutput) +func (i GatewayRouteSpecHttp2RouteActionArgs) ToGatewayRouteSpecHttp2RouteActionOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionOutput) } -func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { - return i.ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttp2RouteActionArgs) ToGatewayRouteSpecHttp2RouteActionPtrOutput() GatewayRouteSpecHttp2RouteActionPtrOutput { + return i.ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchOutput).ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttp2RouteActionArgs) ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionOutput).ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteMatchPtrInput is an input type that accepts RouteSpecGrpcRouteMatchArgs, RouteSpecGrpcRouteMatchPtr and RouteSpecGrpcRouteMatchPtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchPtrInput` via: +// GatewayRouteSpecHttp2RouteActionPtrInput is an input type that accepts GatewayRouteSpecHttp2RouteActionArgs, GatewayRouteSpecHttp2RouteActionPtr and GatewayRouteSpecHttp2RouteActionPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteActionPtrInput` via: // -// RouteSpecGrpcRouteMatchArgs{...} +// GatewayRouteSpecHttp2RouteActionArgs{...} // // or: // // nil -type RouteSpecGrpcRouteMatchPtrInput interface { +type GatewayRouteSpecHttp2RouteActionPtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput - ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Context) RouteSpecGrpcRouteMatchPtrOutput + ToGatewayRouteSpecHttp2RouteActionPtrOutput() GatewayRouteSpecHttp2RouteActionPtrOutput + ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteActionPtrOutput } -type routeSpecGrpcRouteMatchPtrType RouteSpecGrpcRouteMatchArgs +type gatewayRouteSpecHttp2RouteActionPtrType GatewayRouteSpecHttp2RouteActionArgs -func RouteSpecGrpcRouteMatchPtr(v *RouteSpecGrpcRouteMatchArgs) RouteSpecGrpcRouteMatchPtrInput { - return (*routeSpecGrpcRouteMatchPtrType)(v) +func GatewayRouteSpecHttp2RouteActionPtr(v *GatewayRouteSpecHttp2RouteActionArgs) GatewayRouteSpecHttp2RouteActionPtrInput { + return (*gatewayRouteSpecHttp2RouteActionPtrType)(v) } -func (*routeSpecGrpcRouteMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteMatch)(nil)).Elem() +func (*gatewayRouteSpecHttp2RouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteAction)(nil)).Elem() } -func (i *routeSpecGrpcRouteMatchPtrType) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { - return i.ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttp2RouteActionPtrType) ToGatewayRouteSpecHttp2RouteActionPtrOutput() GatewayRouteSpecHttp2RouteActionPtrOutput { + return i.ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteMatchPtrType) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchPtrOutput) +func (i *gatewayRouteSpecHttp2RouteActionPtrType) ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionPtrOutput) } -type RouteSpecGrpcRouteMatchOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttp2RouteActionOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatch)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteAction)(nil)).Elem() } -func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchOutput() RouteSpecGrpcRouteMatchOutput { +func (o GatewayRouteSpecHttp2RouteActionOutput) ToGatewayRouteSpecHttp2RouteActionOutput() GatewayRouteSpecHttp2RouteActionOutput { return o } -func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchOutput { +func (o GatewayRouteSpecHttp2RouteActionOutput) ToGatewayRouteSpecHttp2RouteActionOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionOutput { return o } -func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { - return o.ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttp2RouteActionOutput) ToGatewayRouteSpecHttp2RouteActionPtrOutput() GatewayRouteSpecHttp2RouteActionPtrOutput { + return o.ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *RouteSpecGrpcRouteMatch { +func (o GatewayRouteSpecHttp2RouteActionOutput) ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteAction) *GatewayRouteSpecHttp2RouteAction { return &v - }).(RouteSpecGrpcRouteMatchPtrOutput) + }).(GatewayRouteSpecHttp2RouteActionPtrOutput) } -// The data to match from the gRPC request. -func (o RouteSpecGrpcRouteMatchOutput) Metadatas() RouteSpecGrpcRouteMatchMetadataArrayOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatch) []RouteSpecGrpcRouteMatchMetadata { return v.Metadatas }).(RouteSpecGrpcRouteMatchMetadataArrayOutput) +// The target that traffic is routed to when a request matches the gateway route. +func (o GatewayRouteSpecHttp2RouteActionOutput) Target() GatewayRouteSpecHttp2RouteActionTargetOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteAction) GatewayRouteSpecHttp2RouteActionTarget { return v.Target }).(GatewayRouteSpecHttp2RouteActionTargetOutput) } -// The method name to match from the request. If you specify a name, you must also specify a `serviceName`. -func (o RouteSpecGrpcRouteMatchOutput) MethodName() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *string { return v.MethodName }).(pulumi.StringPtrOutput) +type GatewayRouteSpecHttp2RouteActionPtrOutput struct{ *pulumi.OutputState } + +func (GatewayRouteSpecHttp2RouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteAction)(nil)).Elem() } -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecGrpcRouteMatchOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) +func (o GatewayRouteSpecHttp2RouteActionPtrOutput) ToGatewayRouteSpecHttp2RouteActionPtrOutput() GatewayRouteSpecHttp2RouteActionPtrOutput { + return o } -// The fully qualified domain name for the service to match from the request. -func (o RouteSpecGrpcRouteMatchOutput) ServiceName() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *string { return v.ServiceName }).(pulumi.StringPtrOutput) +func (o GatewayRouteSpecHttp2RouteActionPtrOutput) ToGatewayRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionPtrOutput { + return o } -type RouteSpecGrpcRouteMatchPtrOutput struct{ *pulumi.OutputState } +func (o GatewayRouteSpecHttp2RouteActionPtrOutput) Elem() GatewayRouteSpecHttp2RouteActionOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteAction) GatewayRouteSpecHttp2RouteAction { return *v }).(GatewayRouteSpecHttp2RouteActionOutput) +} -func (RouteSpecGrpcRouteMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteMatch)(nil)).Elem() +// The target that traffic is routed to when a request matches the gateway route. +func (o GatewayRouteSpecHttp2RouteActionPtrOutput) Target() GatewayRouteSpecHttp2RouteActionTargetPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteAction) *GatewayRouteSpecHttp2RouteActionTarget { + if v == nil { + return nil + } + return &v.Target + }).(GatewayRouteSpecHttp2RouteActionTargetPtrOutput) } -func (o RouteSpecGrpcRouteMatchPtrOutput) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { - return o +type GatewayRouteSpecHttp2RouteActionTarget struct { + // The virtual service gateway route target. + VirtualService GatewayRouteSpecHttp2RouteActionTargetVirtualService `pulumi:"virtualService"` } -func (o RouteSpecGrpcRouteMatchPtrOutput) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { - return o +// GatewayRouteSpecHttp2RouteActionTargetInput is an input type that accepts GatewayRouteSpecHttp2RouteActionTargetArgs and GatewayRouteSpecHttp2RouteActionTargetOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteActionTargetInput` via: +// +// GatewayRouteSpecHttp2RouteActionTargetArgs{...} +type GatewayRouteSpecHttp2RouteActionTargetInput interface { + pulumi.Input + + ToGatewayRouteSpecHttp2RouteActionTargetOutput() GatewayRouteSpecHttp2RouteActionTargetOutput + ToGatewayRouteSpecHttp2RouteActionTargetOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteActionTargetOutput } -func (o RouteSpecGrpcRouteMatchPtrOutput) Elem() RouteSpecGrpcRouteMatchOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) RouteSpecGrpcRouteMatch { return *v }).(RouteSpecGrpcRouteMatchOutput) +type GatewayRouteSpecHttp2RouteActionTargetArgs struct { + // The virtual service gateway route target. + VirtualService GatewayRouteSpecHttp2RouteActionTargetVirtualServiceInput `pulumi:"virtualService"` } -// The data to match from the gRPC request. -func (o RouteSpecGrpcRouteMatchPtrOutput) Metadatas() RouteSpecGrpcRouteMatchMetadataArrayOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) []RouteSpecGrpcRouteMatchMetadata { - if v == nil { - return nil - } - return v.Metadatas - }).(RouteSpecGrpcRouteMatchMetadataArrayOutput) +func (GatewayRouteSpecHttp2RouteActionTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteActionTarget)(nil)).Elem() } -// The method name to match from the request. If you specify a name, you must also specify a `serviceName`. -func (o RouteSpecGrpcRouteMatchPtrOutput) MethodName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) *string { - if v == nil { - return nil - } - return v.MethodName - }).(pulumi.StringPtrOutput) +func (i GatewayRouteSpecHttp2RouteActionTargetArgs) ToGatewayRouteSpecHttp2RouteActionTargetOutput() GatewayRouteSpecHttp2RouteActionTargetOutput { + return i.ToGatewayRouteSpecHttp2RouteActionTargetOutputWithContext(context.Background()) } -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecGrpcRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) *string { - if v == nil { - return nil - } - return v.Prefix - }).(pulumi.StringPtrOutput) +func (i GatewayRouteSpecHttp2RouteActionTargetArgs) ToGatewayRouteSpecHttp2RouteActionTargetOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionTargetOutput) } -// The fully qualified domain name for the service to match from the request. -func (o RouteSpecGrpcRouteMatchPtrOutput) ServiceName() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) *string { - if v == nil { - return nil - } - return v.ServiceName - }).(pulumi.StringPtrOutput) +func (i GatewayRouteSpecHttp2RouteActionTargetArgs) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutput() GatewayRouteSpecHttp2RouteActionTargetPtrOutput { + return i.ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(context.Background()) } -type RouteSpecGrpcRouteMatchMetadata struct { - // If `true`, the match is on the opposite of the `match` criteria. Default is `false`. - Invert *bool `pulumi:"invert"` - // The data to match from the request. - Match *RouteSpecGrpcRouteMatchMetadataMatch `pulumi:"match"` - // The name of the route. - Name string `pulumi:"name"` +func (i GatewayRouteSpecHttp2RouteActionTargetArgs) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionTargetOutput).ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteMatchMetadataInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataArgs and RouteSpecGrpcRouteMatchMetadataOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataInput` via: +// GatewayRouteSpecHttp2RouteActionTargetPtrInput is an input type that accepts GatewayRouteSpecHttp2RouteActionTargetArgs, GatewayRouteSpecHttp2RouteActionTargetPtr and GatewayRouteSpecHttp2RouteActionTargetPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteActionTargetPtrInput` via: // -// RouteSpecGrpcRouteMatchMetadataArgs{...} -type RouteSpecGrpcRouteMatchMetadataInput interface { +// GatewayRouteSpecHttp2RouteActionTargetArgs{...} +// +// or: +// +// nil +type GatewayRouteSpecHttp2RouteActionTargetPtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteMatchMetadataOutput() RouteSpecGrpcRouteMatchMetadataOutput - ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataOutput + ToGatewayRouteSpecHttp2RouteActionTargetPtrOutput() GatewayRouteSpecHttp2RouteActionTargetPtrOutput + ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteActionTargetPtrOutput } -type RouteSpecGrpcRouteMatchMetadataArgs struct { - // If `true`, the match is on the opposite of the `match` criteria. Default is `false`. - Invert pulumi.BoolPtrInput `pulumi:"invert"` - // The data to match from the request. - Match RouteSpecGrpcRouteMatchMetadataMatchPtrInput `pulumi:"match"` - // The name of the route. - Name pulumi.StringInput `pulumi:"name"` -} - -func (RouteSpecGrpcRouteMatchMetadataArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() -} - -func (i RouteSpecGrpcRouteMatchMetadataArgs) ToRouteSpecGrpcRouteMatchMetadataOutput() RouteSpecGrpcRouteMatchMetadataOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(context.Background()) -} - -func (i RouteSpecGrpcRouteMatchMetadataArgs) ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataOutput) -} - -// RouteSpecGrpcRouteMatchMetadataArrayInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataArray and RouteSpecGrpcRouteMatchMetadataArrayOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataArrayInput` via: -// -// RouteSpecGrpcRouteMatchMetadataArray{ RouteSpecGrpcRouteMatchMetadataArgs{...} } -type RouteSpecGrpcRouteMatchMetadataArrayInput interface { - pulumi.Input +type gatewayRouteSpecHttp2RouteActionTargetPtrType GatewayRouteSpecHttp2RouteActionTargetArgs - ToRouteSpecGrpcRouteMatchMetadataArrayOutput() RouteSpecGrpcRouteMatchMetadataArrayOutput - ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataArrayOutput +func GatewayRouteSpecHttp2RouteActionTargetPtr(v *GatewayRouteSpecHttp2RouteActionTargetArgs) GatewayRouteSpecHttp2RouteActionTargetPtrInput { + return (*gatewayRouteSpecHttp2RouteActionTargetPtrType)(v) } -type RouteSpecGrpcRouteMatchMetadataArray []RouteSpecGrpcRouteMatchMetadataInput - -func (RouteSpecGrpcRouteMatchMetadataArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() +func (*gatewayRouteSpecHttp2RouteActionTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteActionTarget)(nil)).Elem() } -func (i RouteSpecGrpcRouteMatchMetadataArray) ToRouteSpecGrpcRouteMatchMetadataArrayOutput() RouteSpecGrpcRouteMatchMetadataArrayOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttp2RouteActionTargetPtrType) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutput() GatewayRouteSpecHttp2RouteActionTargetPtrOutput { + return i.ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteMatchMetadataArray) ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataArrayOutput) +func (i *gatewayRouteSpecHttp2RouteActionTargetPtrType) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionTargetPtrOutput) } -type RouteSpecGrpcRouteMatchMetadataOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttp2RouteActionTargetOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteMatchMetadataOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteActionTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteActionTarget)(nil)).Elem() } -func (o RouteSpecGrpcRouteMatchMetadataOutput) ToRouteSpecGrpcRouteMatchMetadataOutput() RouteSpecGrpcRouteMatchMetadataOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetOutput) ToGatewayRouteSpecHttp2RouteActionTargetOutput() GatewayRouteSpecHttp2RouteActionTargetOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataOutput) ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetOutput) ToGatewayRouteSpecHttp2RouteActionTargetOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetOutput { return o } -// If `true`, the match is on the opposite of the `match` criteria. Default is `false`. -func (o RouteSpecGrpcRouteMatchMetadataOutput) Invert() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadata) *bool { return v.Invert }).(pulumi.BoolPtrOutput) +func (o GatewayRouteSpecHttp2RouteActionTargetOutput) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutput() GatewayRouteSpecHttp2RouteActionTargetPtrOutput { + return o.ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(context.Background()) } -// The data to match from the request. -func (o RouteSpecGrpcRouteMatchMetadataOutput) Match() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadata) *RouteSpecGrpcRouteMatchMetadataMatch { return v.Match }).(RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) +func (o GatewayRouteSpecHttp2RouteActionTargetOutput) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteActionTarget) *GatewayRouteSpecHttp2RouteActionTarget { + return &v + }).(GatewayRouteSpecHttp2RouteActionTargetPtrOutput) } -// The name of the route. -func (o RouteSpecGrpcRouteMatchMetadataOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadata) string { return v.Name }).(pulumi.StringOutput) +// The virtual service gateway route target. +func (o GatewayRouteSpecHttp2RouteActionTargetOutput) VirtualService() GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteActionTarget) GatewayRouteSpecHttp2RouteActionTargetVirtualService { + return v.VirtualService + }).(GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) } -type RouteSpecGrpcRouteMatchMetadataArrayOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttp2RouteActionTargetPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteMatchMetadataArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteActionTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteActionTarget)(nil)).Elem() } -func (o RouteSpecGrpcRouteMatchMetadataArrayOutput) ToRouteSpecGrpcRouteMatchMetadataArrayOutput() RouteSpecGrpcRouteMatchMetadataArrayOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetPtrOutput) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutput() GatewayRouteSpecHttp2RouteActionTargetPtrOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataArrayOutput) ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataArrayOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetPtrOutput) ToGatewayRouteSpecHttp2RouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetPtrOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataArrayOutput) Index(i pulumi.IntInput) RouteSpecGrpcRouteMatchMetadataOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecGrpcRouteMatchMetadata { - return vs[0].([]RouteSpecGrpcRouteMatchMetadata)[vs[1].(int)] - }).(RouteSpecGrpcRouteMatchMetadataOutput) +func (o GatewayRouteSpecHttp2RouteActionTargetPtrOutput) Elem() GatewayRouteSpecHttp2RouteActionTargetOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteActionTarget) GatewayRouteSpecHttp2RouteActionTarget { return *v }).(GatewayRouteSpecHttp2RouteActionTargetOutput) } -type RouteSpecGrpcRouteMatchMetadataMatch struct { - // The value sent by the client must match the specified value exactly. - Exact *string `pulumi:"exact"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix *string `pulumi:"prefix"` - // The object that specifies the range of numbers that the value sent by the client must be included in. - Range *RouteSpecGrpcRouteMatchMetadataMatchRange `pulumi:"range"` - // The value sent by the client must include the specified characters. - Regex *string `pulumi:"regex"` - // The value sent by the client must end with the specified characters. - Suffix *string `pulumi:"suffix"` +// The virtual service gateway route target. +func (o GatewayRouteSpecHttp2RouteActionTargetPtrOutput) VirtualService() GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteActionTarget) *GatewayRouteSpecHttp2RouteActionTargetVirtualService { + if v == nil { + return nil + } + return &v.VirtualService + }).(GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) } -// RouteSpecGrpcRouteMatchMetadataMatchInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchArgs and RouteSpecGrpcRouteMatchMetadataMatchOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchInput` via: +type GatewayRouteSpecHttp2RouteActionTargetVirtualService struct { + // The name of the virtual service that traffic is routed to. + VirtualServiceName string `pulumi:"virtualServiceName"` +} + +// GatewayRouteSpecHttp2RouteActionTargetVirtualServiceInput is an input type that accepts GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs and GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteActionTargetVirtualServiceInput` via: // -// RouteSpecGrpcRouteMatchMetadataMatchArgs{...} -type RouteSpecGrpcRouteMatchMetadataMatchInput interface { +// GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs{...} +type GatewayRouteSpecHttp2RouteActionTargetVirtualServiceInput interface { pulumi.Input - ToRouteSpecGrpcRouteMatchMetadataMatchOutput() RouteSpecGrpcRouteMatchMetadataMatchOutput - ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchOutput + ToGatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput + ToGatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput } -type RouteSpecGrpcRouteMatchMetadataMatchArgs struct { - // The value sent by the client must match the specified value exactly. - Exact pulumi.StringPtrInput `pulumi:"exact"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix pulumi.StringPtrInput `pulumi:"prefix"` - // The object that specifies the range of numbers that the value sent by the client must be included in. - Range RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput `pulumi:"range"` - // The value sent by the client must include the specified characters. - Regex pulumi.StringPtrInput `pulumi:"regex"` - // The value sent by the client must end with the specified characters. - Suffix pulumi.StringPtrInput `pulumi:"suffix"` +type GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs struct { + // The name of the virtual service that traffic is routed to. + VirtualServiceName pulumi.StringInput `pulumi:"virtualServiceName"` } -func (RouteSpecGrpcRouteMatchMetadataMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteActionTargetVirtualService)(nil)).Elem() } -func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchOutput() RouteSpecGrpcRouteMatchMetadataMatchOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput { + return i.ToGatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchOutput) +func (i GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) } -func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { + return i.ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchOutput).ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput).ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteMatchMetadataMatchPtrInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchArgs, RouteSpecGrpcRouteMatchMetadataMatchPtr and RouteSpecGrpcRouteMatchMetadataMatchPtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchPtrInput` via: +// GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrInput is an input type that accepts GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs, GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtr and GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrInput` via: // -// RouteSpecGrpcRouteMatchMetadataMatchArgs{...} +// GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs{...} // // or: // // nil -type RouteSpecGrpcRouteMatchMetadataMatchPtrInput interface { +type GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput - ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput + ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput + ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput } -type routeSpecGrpcRouteMatchMetadataMatchPtrType RouteSpecGrpcRouteMatchMetadataMatchArgs +type gatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrType GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs -func RouteSpecGrpcRouteMatchMetadataMatchPtr(v *RouteSpecGrpcRouteMatchMetadataMatchArgs) RouteSpecGrpcRouteMatchMetadataMatchPtrInput { - return (*routeSpecGrpcRouteMatchMetadataMatchPtrType)(v) +func GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtr(v *GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs) GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrInput { + return (*gatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrType)(v) } -func (*routeSpecGrpcRouteMatchMetadataMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +func (*gatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteActionTargetVirtualService)(nil)).Elem() } -func (i *routeSpecGrpcRouteMatchMetadataMatchPtrType) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrType) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { + return i.ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteMatchMetadataMatchPtrType) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) +func (i *gatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrType) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) } -type RouteSpecGrpcRouteMatchMetadataMatchOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteMatchMetadataMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteActionTargetVirtualService)(nil)).Elem() } -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchOutput() RouteSpecGrpcRouteMatchMetadataMatchOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { - return o.ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { + return o.ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatch { +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteActionTargetVirtualService) *GatewayRouteSpecHttp2RouteActionTargetVirtualService { return &v - }).(RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) -} - -// The value sent by the client must match the specified value exactly. -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Exact() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) -} - -// The object that specifies the range of numbers that the value sent by the client must be included in. -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Range() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatchRange { - return v.Range - }).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) -} - -// The value sent by the client must include the specified characters. -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Regex() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) + }).(GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) } -// The value sent by the client must end with the specified characters. -func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Suffix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) +// The name of the virtual service that traffic is routed to. +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) VirtualServiceName() pulumi.StringOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteActionTargetVirtualService) string { return v.VirtualServiceName }).(pulumi.StringOutput) } -type RouteSpecGrpcRouteMatchMetadataMatchPtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteActionTargetVirtualService)(nil)).Elem() } -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) ToGatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Elem() RouteSpecGrpcRouteMatchMetadataMatchOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) RouteSpecGrpcRouteMatchMetadataMatch { return *v }).(RouteSpecGrpcRouteMatchMetadataMatchOutput) -} - -// The value sent by the client must match the specified value exactly. -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Exact() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { - if v == nil { - return nil - } - return v.Exact - }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { - if v == nil { - return nil - } - return v.Prefix - }).(pulumi.StringPtrOutput) -} - -// The object that specifies the range of numbers that the value sent by the client must be included in. -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Range() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatchRange { - if v == nil { - return nil - } - return v.Range - }).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) -} - -// The value sent by the client must include the specified characters. -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Regex() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { - if v == nil { - return nil - } - return v.Regex - }).(pulumi.StringPtrOutput) +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) Elem() GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteActionTargetVirtualService) GatewayRouteSpecHttp2RouteActionTargetVirtualService { + return *v + }).(GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput) } -// The value sent by the client must end with the specified characters. -func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Suffix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { +// The name of the virtual service that traffic is routed to. +func (o GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput) VirtualServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteActionTargetVirtualService) *string { if v == nil { return nil } - return v.Suffix + return &v.VirtualServiceName }).(pulumi.StringPtrOutput) } -type RouteSpecGrpcRouteMatchMetadataMatchRange struct { - // The end of the range. - End int `pulumi:"end"` - // The start of the range. - Start int `pulumi:"start"` +type GatewayRouteSpecHttp2RouteMatch struct { + // Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + Prefix string `pulumi:"prefix"` } -// RouteSpecGrpcRouteMatchMetadataMatchRangeInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchRangeArgs and RouteSpecGrpcRouteMatchMetadataMatchRangeOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchRangeInput` via: +// GatewayRouteSpecHttp2RouteMatchInput is an input type that accepts GatewayRouteSpecHttp2RouteMatchArgs and GatewayRouteSpecHttp2RouteMatchOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteMatchInput` via: // -// RouteSpecGrpcRouteMatchMetadataMatchRangeArgs{...} -type RouteSpecGrpcRouteMatchMetadataMatchRangeInput interface { +// GatewayRouteSpecHttp2RouteMatchArgs{...} +type GatewayRouteSpecHttp2RouteMatchInput interface { pulumi.Input - ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutput() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput - ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangeOutput + ToGatewayRouteSpecHttp2RouteMatchOutput() GatewayRouteSpecHttp2RouteMatchOutput + ToGatewayRouteSpecHttp2RouteMatchOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteMatchOutput } -type RouteSpecGrpcRouteMatchMetadataMatchRangeArgs struct { - // The end of the range. - End pulumi.IntInput `pulumi:"end"` - // The start of the range. - Start pulumi.IntInput `pulumi:"start"` +type GatewayRouteSpecHttp2RouteMatchArgs struct { + // Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + Prefix pulumi.StringInput `pulumi:"prefix"` } -func (RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteMatch)(nil)).Elem() } -func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutput() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttp2RouteMatchArgs) ToGatewayRouteSpecHttp2RouteMatchOutput() GatewayRouteSpecHttp2RouteMatchOutput { + return i.ToGatewayRouteSpecHttp2RouteMatchOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) +func (i GatewayRouteSpecHttp2RouteMatchArgs) ToGatewayRouteSpecHttp2RouteMatchOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteMatchOutput) } -func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttp2RouteMatchArgs) ToGatewayRouteSpecHttp2RouteMatchPtrOutput() GatewayRouteSpecHttp2RouteMatchPtrOutput { + return i.ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchRangeOutput).ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttp2RouteMatchArgs) ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteMatchOutput).ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchRangeArgs, RouteSpecGrpcRouteMatchMetadataMatchRangePtr and RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput` via: +// GatewayRouteSpecHttp2RouteMatchPtrInput is an input type that accepts GatewayRouteSpecHttp2RouteMatchArgs, GatewayRouteSpecHttp2RouteMatchPtr and GatewayRouteSpecHttp2RouteMatchPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttp2RouteMatchPtrInput` via: // -// RouteSpecGrpcRouteMatchMetadataMatchRangeArgs{...} +// GatewayRouteSpecHttp2RouteMatchArgs{...} // // or: // // nil -type RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput interface { +type GatewayRouteSpecHttp2RouteMatchPtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput - ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput + ToGatewayRouteSpecHttp2RouteMatchPtrOutput() GatewayRouteSpecHttp2RouteMatchPtrOutput + ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Context) GatewayRouteSpecHttp2RouteMatchPtrOutput } -type routeSpecGrpcRouteMatchMetadataMatchRangePtrType RouteSpecGrpcRouteMatchMetadataMatchRangeArgs +type gatewayRouteSpecHttp2RouteMatchPtrType GatewayRouteSpecHttp2RouteMatchArgs -func RouteSpecGrpcRouteMatchMetadataMatchRangePtr(v *RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput { - return (*routeSpecGrpcRouteMatchMetadataMatchRangePtrType)(v) +func GatewayRouteSpecHttp2RouteMatchPtr(v *GatewayRouteSpecHttp2RouteMatchArgs) GatewayRouteSpecHttp2RouteMatchPtrInput { + return (*gatewayRouteSpecHttp2RouteMatchPtrType)(v) } -func (*routeSpecGrpcRouteMatchMetadataMatchRangePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +func (*gatewayRouteSpecHttp2RouteMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteMatch)(nil)).Elem() } -func (i *routeSpecGrpcRouteMatchMetadataMatchRangePtrType) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return i.ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttp2RouteMatchPtrType) ToGatewayRouteSpecHttp2RouteMatchPtrOutput() GatewayRouteSpecHttp2RouteMatchPtrOutput { + return i.ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteMatchMetadataMatchRangePtrType) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) +func (i *gatewayRouteSpecHttp2RouteMatchPtrType) ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttp2RouteMatchPtrOutput) } -type RouteSpecGrpcRouteMatchMetadataMatchRangeOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttp2RouteMatchOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttp2RouteMatch)(nil)).Elem() } -func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutput() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { +func (o GatewayRouteSpecHttp2RouteMatchOutput) ToGatewayRouteSpecHttp2RouteMatchOutput() GatewayRouteSpecHttp2RouteMatchOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { +func (o GatewayRouteSpecHttp2RouteMatchOutput) ToGatewayRouteSpecHttp2RouteMatchOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteMatchOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return o.ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttp2RouteMatchOutput) ToGatewayRouteSpecHttp2RouteMatchPtrOutput() GatewayRouteSpecHttp2RouteMatchPtrOutput { + return o.ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatchRange) *RouteSpecGrpcRouteMatchMetadataMatchRange { +func (o GatewayRouteSpecHttp2RouteMatchOutput) ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteMatchPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatch) *GatewayRouteSpecHttp2RouteMatch { return &v - }).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) + }).(GatewayRouteSpecHttp2RouteMatchPtrOutput) } -// The end of the range. -func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) End() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatchRange) int { return v.End }).(pulumi.IntOutput) -} - -// The start of the range. -func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) Start() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatchRange) int { return v.Start }).(pulumi.IntOutput) +// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. +func (o GatewayRouteSpecHttp2RouteMatchOutput) Prefix() pulumi.StringOutput { + return o.ApplyT(func(v GatewayRouteSpecHttp2RouteMatch) string { return v.Prefix }).(pulumi.StringOutput) } -type RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttp2RouteMatchPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +func (GatewayRouteSpecHttp2RouteMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttp2RouteMatch)(nil)).Elem() } -func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { +func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) ToGatewayRouteSpecHttp2RouteMatchPtrOutput() GatewayRouteSpecHttp2RouteMatchPtrOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { +func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) ToGatewayRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttp2RouteMatchPtrOutput { return o } -func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) Elem() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatchRange) RouteSpecGrpcRouteMatchMetadataMatchRange { - return *v - }).(RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) -} - -// The end of the range. -func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) End() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatchRange) *int { - if v == nil { - return nil - } - return &v.End - }).(pulumi.IntPtrOutput) +func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Elem() GatewayRouteSpecHttp2RouteMatchOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatch) GatewayRouteSpecHttp2RouteMatch { return *v }).(GatewayRouteSpecHttp2RouteMatchOutput) } -// The start of the range. -func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) Start() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatchRange) *int { +// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. +func (o GatewayRouteSpecHttp2RouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttp2RouteMatch) *string { if v == nil { return nil } - return &v.Start - }).(pulumi.IntPtrOutput) + return &v.Prefix + }).(pulumi.StringPtrOutput) } -type RouteSpecGrpcRouteRetryPolicy struct { - // List of gRPC retry events. - // Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. - GrpcRetryEvents []string `pulumi:"grpcRetryEvents"` - // List of HTTP retry events. - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - HttpRetryEvents []string `pulumi:"httpRetryEvents"` - // The maximum number of retries. - MaxRetries int `pulumi:"maxRetries"` - // The per-retry timeout. - PerRetryTimeout RouteSpecGrpcRouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` - // List of TCP retry events. The only valid value is `connection-error`. - TcpRetryEvents []string `pulumi:"tcpRetryEvents"` +type GatewayRouteSpecHttpRoute struct { + // The action to take if a match is determined. + Action GatewayRouteSpecHttpRouteAction `pulumi:"action"` + // The criteria for determining a request match. + Match GatewayRouteSpecHttpRouteMatch `pulumi:"match"` } -// RouteSpecGrpcRouteRetryPolicyInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyArgs and RouteSpecGrpcRouteRetryPolicyOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyInput` via: +// GatewayRouteSpecHttpRouteInput is an input type that accepts GatewayRouteSpecHttpRouteArgs and GatewayRouteSpecHttpRouteOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteInput` via: // -// RouteSpecGrpcRouteRetryPolicyArgs{...} -type RouteSpecGrpcRouteRetryPolicyInput interface { +// GatewayRouteSpecHttpRouteArgs{...} +type GatewayRouteSpecHttpRouteInput interface { pulumi.Input - ToRouteSpecGrpcRouteRetryPolicyOutput() RouteSpecGrpcRouteRetryPolicyOutput - ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyOutput + ToGatewayRouteSpecHttpRouteOutput() GatewayRouteSpecHttpRouteOutput + ToGatewayRouteSpecHttpRouteOutputWithContext(context.Context) GatewayRouteSpecHttpRouteOutput } -type RouteSpecGrpcRouteRetryPolicyArgs struct { - // List of gRPC retry events. - // Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. - GrpcRetryEvents pulumi.StringArrayInput `pulumi:"grpcRetryEvents"` - // List of HTTP retry events. - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` - // The maximum number of retries. - MaxRetries pulumi.IntInput `pulumi:"maxRetries"` - // The per-retry timeout. - PerRetryTimeout RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` - // List of TCP retry events. The only valid value is `connection-error`. - TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` +type GatewayRouteSpecHttpRouteArgs struct { + // The action to take if a match is determined. + Action GatewayRouteSpecHttpRouteActionInput `pulumi:"action"` + // The criteria for determining a request match. + Match GatewayRouteSpecHttpRouteMatchInput `pulumi:"match"` } -func (RouteSpecGrpcRouteRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +func (GatewayRouteSpecHttpRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRoute)(nil)).Elem() } -func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyOutput() RouteSpecGrpcRouteRetryPolicyOutput { - return i.ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteArgs) ToGatewayRouteSpecHttpRouteOutput() GatewayRouteSpecHttpRouteOutput { + return i.ToGatewayRouteSpecHttpRouteOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyOutput) +func (i GatewayRouteSpecHttpRouteArgs) ToGatewayRouteSpecHttpRouteOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteOutput) } -func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { - return i.ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteArgs) ToGatewayRouteSpecHttpRoutePtrOutput() GatewayRouteSpecHttpRoutePtrOutput { + return i.ToGatewayRouteSpecHttpRoutePtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyOutput).ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttpRouteArgs) ToGatewayRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteOutput).ToGatewayRouteSpecHttpRoutePtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteRetryPolicyPtrInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyArgs, RouteSpecGrpcRouteRetryPolicyPtr and RouteSpecGrpcRouteRetryPolicyPtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyPtrInput` via: +// GatewayRouteSpecHttpRoutePtrInput is an input type that accepts GatewayRouteSpecHttpRouteArgs, GatewayRouteSpecHttpRoutePtr and GatewayRouteSpecHttpRoutePtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRoutePtrInput` via: // -// RouteSpecGrpcRouteRetryPolicyArgs{...} +// GatewayRouteSpecHttpRouteArgs{...} // // or: // // nil -type RouteSpecGrpcRouteRetryPolicyPtrInput interface { +type GatewayRouteSpecHttpRoutePtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput - ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput + ToGatewayRouteSpecHttpRoutePtrOutput() GatewayRouteSpecHttpRoutePtrOutput + ToGatewayRouteSpecHttpRoutePtrOutputWithContext(context.Context) GatewayRouteSpecHttpRoutePtrOutput } -type routeSpecGrpcRouteRetryPolicyPtrType RouteSpecGrpcRouteRetryPolicyArgs +type gatewayRouteSpecHttpRoutePtrType GatewayRouteSpecHttpRouteArgs -func RouteSpecGrpcRouteRetryPolicyPtr(v *RouteSpecGrpcRouteRetryPolicyArgs) RouteSpecGrpcRouteRetryPolicyPtrInput { - return (*routeSpecGrpcRouteRetryPolicyPtrType)(v) +func GatewayRouteSpecHttpRoutePtr(v *GatewayRouteSpecHttpRouteArgs) GatewayRouteSpecHttpRoutePtrInput { + return (*gatewayRouteSpecHttpRoutePtrType)(v) } -func (*routeSpecGrpcRouteRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +func (*gatewayRouteSpecHttpRoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRoute)(nil)).Elem() } -func (i *routeSpecGrpcRouteRetryPolicyPtrType) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { - return i.ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttpRoutePtrType) ToGatewayRouteSpecHttpRoutePtrOutput() GatewayRouteSpecHttpRoutePtrOutput { + return i.ToGatewayRouteSpecHttpRoutePtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteRetryPolicyPtrType) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPtrOutput) +func (i *gatewayRouteSpecHttpRoutePtrType) ToGatewayRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRoutePtrOutput) } -type RouteSpecGrpcRouteRetryPolicyOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +func (GatewayRouteSpecHttpRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRoute)(nil)).Elem() } -func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyOutput() RouteSpecGrpcRouteRetryPolicyOutput { +func (o GatewayRouteSpecHttpRouteOutput) ToGatewayRouteSpecHttpRouteOutput() GatewayRouteSpecHttpRouteOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyOutput { +func (o GatewayRouteSpecHttpRouteOutput) ToGatewayRouteSpecHttpRouteOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { - return o.ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttpRouteOutput) ToGatewayRouteSpecHttpRoutePtrOutput() GatewayRouteSpecHttpRoutePtrOutput { + return o.ToGatewayRouteSpecHttpRoutePtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) *RouteSpecGrpcRouteRetryPolicy { +func (o GatewayRouteSpecHttpRouteOutput) ToGatewayRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRoutePtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRoute) *GatewayRouteSpecHttpRoute { return &v - }).(RouteSpecGrpcRouteRetryPolicyPtrOutput) -} - -// List of gRPC retry events. -// Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. -func (o RouteSpecGrpcRouteRetryPolicyOutput) GrpcRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.GrpcRetryEvents }).(pulumi.StringArrayOutput) -} - -// List of HTTP retry events. -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -func (o RouteSpecGrpcRouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) -} - -// The maximum number of retries. -func (o RouteSpecGrpcRouteRetryPolicyOutput) MaxRetries() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) int { return v.MaxRetries }).(pulumi.IntOutput) + }).(GatewayRouteSpecHttpRoutePtrOutput) } -// The per-retry timeout. -func (o RouteSpecGrpcRouteRetryPolicyOutput) PerRetryTimeout() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { - return v.PerRetryTimeout - }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) +// The action to take if a match is determined. +func (o GatewayRouteSpecHttpRouteOutput) Action() GatewayRouteSpecHttpRouteActionOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRoute) GatewayRouteSpecHttpRouteAction { return v.Action }).(GatewayRouteSpecHttpRouteActionOutput) } -// List of TCP retry events. The only valid value is `connection-error`. -func (o RouteSpecGrpcRouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) +// The criteria for determining a request match. +func (o GatewayRouteSpecHttpRouteOutput) Match() GatewayRouteSpecHttpRouteMatchOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRoute) GatewayRouteSpecHttpRouteMatch { return v.Match }).(GatewayRouteSpecHttpRouteMatchOutput) } -type RouteSpecGrpcRouteRetryPolicyPtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRoutePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +func (GatewayRouteSpecHttpRoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRoute)(nil)).Elem() } -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { +func (o GatewayRouteSpecHttpRoutePtrOutput) ToGatewayRouteSpecHttpRoutePtrOutput() GatewayRouteSpecHttpRoutePtrOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { +func (o GatewayRouteSpecHttpRoutePtrOutput) ToGatewayRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRoutePtrOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) Elem() RouteSpecGrpcRouteRetryPolicyOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) RouteSpecGrpcRouteRetryPolicy { return *v }).(RouteSpecGrpcRouteRetryPolicyOutput) -} - -// List of gRPC retry events. -// Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) GrpcRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { - if v == nil { - return nil - } - return v.GrpcRetryEvents - }).(pulumi.StringArrayOutput) -} - -// List of HTTP retry events. -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { - if v == nil { - return nil - } - return v.HttpRetryEvents - }).(pulumi.StringArrayOutput) -} - -// The maximum number of retries. -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) MaxRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) *int { - if v == nil { - return nil - } - return &v.MaxRetries - }).(pulumi.IntPtrOutput) +func (o GatewayRouteSpecHttpRoutePtrOutput) Elem() GatewayRouteSpecHttpRouteOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRoute) GatewayRouteSpecHttpRoute { return *v }).(GatewayRouteSpecHttpRouteOutput) } -// The per-retry timeout. -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { +// The action to take if a match is determined. +func (o GatewayRouteSpecHttpRoutePtrOutput) Action() GatewayRouteSpecHttpRouteActionPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRoute) *GatewayRouteSpecHttpRouteAction { if v == nil { return nil } - return &v.PerRetryTimeout - }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) + return &v.Action + }).(GatewayRouteSpecHttpRouteActionPtrOutput) } -// List of TCP retry events. The only valid value is `connection-error`. -func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { +// The criteria for determining a request match. +func (o GatewayRouteSpecHttpRoutePtrOutput) Match() GatewayRouteSpecHttpRouteMatchPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRoute) *GatewayRouteSpecHttpRouteMatch { if v == nil { return nil } - return v.TcpRetryEvents - }).(pulumi.StringArrayOutput) + return &v.Match + }).(GatewayRouteSpecHttpRouteMatchPtrOutput) } -type RouteSpecGrpcRouteRetryPolicyPerRetryTimeout struct { - // Retry unit. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // Retry value. - Value int `pulumi:"value"` +type GatewayRouteSpecHttpRouteAction struct { + // The target that traffic is routed to when a request matches the gateway route. + Target GatewayRouteSpecHttpRouteActionTarget `pulumi:"target"` } -// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs and RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput` via: +// GatewayRouteSpecHttpRouteActionInput is an input type that accepts GatewayRouteSpecHttpRouteActionArgs and GatewayRouteSpecHttpRouteActionOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteActionInput` via: // -// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs{...} -type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput interface { +// GatewayRouteSpecHttpRouteActionArgs{...} +type GatewayRouteSpecHttpRouteActionInput interface { pulumi.Input - ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput - ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput + ToGatewayRouteSpecHttpRouteActionOutput() GatewayRouteSpecHttpRouteActionOutput + ToGatewayRouteSpecHttpRouteActionOutputWithContext(context.Context) GatewayRouteSpecHttpRouteActionOutput } -type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs struct { - // Retry unit. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // Retry value. - Value pulumi.IntInput `pulumi:"value"` +type GatewayRouteSpecHttpRouteActionArgs struct { + // The target that traffic is routed to when a request matches the gateway route. + Target GatewayRouteSpecHttpRouteActionTargetInput `pulumi:"target"` } -func (RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteAction)(nil)).Elem() } -func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { - return i.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteActionArgs) ToGatewayRouteSpecHttpRouteActionOutput() GatewayRouteSpecHttpRouteActionOutput { + return i.ToGatewayRouteSpecHttpRouteActionOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) +func (i GatewayRouteSpecHttpRouteActionArgs) ToGatewayRouteSpecHttpRouteActionOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionOutput) } -func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { - return i.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteActionArgs) ToGatewayRouteSpecHttpRouteActionPtrOutput() GatewayRouteSpecHttpRouteActionPtrOutput { + return i.ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput).ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttpRouteActionArgs) ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionOutput).ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs, RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtr and RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput` via: +// GatewayRouteSpecHttpRouteActionPtrInput is an input type that accepts GatewayRouteSpecHttpRouteActionArgs, GatewayRouteSpecHttpRouteActionPtr and GatewayRouteSpecHttpRouteActionPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteActionPtrInput` via: // -// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs{...} +// GatewayRouteSpecHttpRouteActionArgs{...} // // or: // // nil -type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput interface { +type GatewayRouteSpecHttpRouteActionPtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput - ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput + ToGatewayRouteSpecHttpRouteActionPtrOutput() GatewayRouteSpecHttpRouteActionPtrOutput + ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(context.Context) GatewayRouteSpecHttpRouteActionPtrOutput } -type routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs +type gatewayRouteSpecHttpRouteActionPtrType GatewayRouteSpecHttpRouteActionArgs -func RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtr(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput { - return (*routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType)(v) +func GatewayRouteSpecHttpRouteActionPtr(v *GatewayRouteSpecHttpRouteActionArgs) GatewayRouteSpecHttpRouteActionPtrInput { + return (*gatewayRouteSpecHttpRouteActionPtrType)(v) } -func (*routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (*gatewayRouteSpecHttpRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteAction)(nil)).Elem() } -func (i *routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { - return i.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttpRouteActionPtrType) ToGatewayRouteSpecHttpRouteActionPtrOutput() GatewayRouteSpecHttpRouteActionPtrOutput { + return i.ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) +func (i *gatewayRouteSpecHttpRouteActionPtrType) ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionPtrOutput) } -type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteActionOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteAction)(nil)).Elem() } -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { +func (o GatewayRouteSpecHttpRouteActionOutput) ToGatewayRouteSpecHttpRouteActionOutput() GatewayRouteSpecHttpRouteActionOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { +func (o GatewayRouteSpecHttpRouteActionOutput) ToGatewayRouteSpecHttpRouteActionOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttpRouteActionOutput) ToGatewayRouteSpecHttpRouteActionPtrOutput() GatewayRouteSpecHttpRouteActionPtrOutput { + return o.ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { +func (o GatewayRouteSpecHttpRouteActionOutput) ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteAction) *GatewayRouteSpecHttpRouteAction { return &v - }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) -} - -// Retry unit. Valid values: `ms`, `s`. -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) string { return v.Unit }).(pulumi.StringOutput) + }).(GatewayRouteSpecHttpRouteActionPtrOutput) } -// Retry value. -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) int { return v.Value }).(pulumi.IntOutput) +// The target that traffic is routed to when a request matches the gateway route. +func (o GatewayRouteSpecHttpRouteActionOutput) Target() GatewayRouteSpecHttpRouteActionTargetOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteAction) GatewayRouteSpecHttpRouteActionTarget { return v.Target }).(GatewayRouteSpecHttpRouteActionTargetOutput) } -type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteActionPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteAction)(nil)).Elem() } -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { +func (o GatewayRouteSpecHttpRouteActionPtrOutput) ToGatewayRouteSpecHttpRouteActionPtrOutput() GatewayRouteSpecHttpRouteActionPtrOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { +func (o GatewayRouteSpecHttpRouteActionPtrOutput) ToGatewayRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionPtrOutput { return o } -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) Elem() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { - return *v - }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) -} - -// Retry unit. Valid values: `ms`, `s`. -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) *string { - if v == nil { - return nil - } - return &v.Unit - }).(pulumi.StringPtrOutput) +func (o GatewayRouteSpecHttpRouteActionPtrOutput) Elem() GatewayRouteSpecHttpRouteActionOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteAction) GatewayRouteSpecHttpRouteAction { return *v }).(GatewayRouteSpecHttpRouteActionOutput) } -// Retry value. -func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) *int { +// The target that traffic is routed to when a request matches the gateway route. +func (o GatewayRouteSpecHttpRouteActionPtrOutput) Target() GatewayRouteSpecHttpRouteActionTargetPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteAction) *GatewayRouteSpecHttpRouteActionTarget { if v == nil { return nil } - return &v.Value - }).(pulumi.IntPtrOutput) + return &v.Target + }).(GatewayRouteSpecHttpRouteActionTargetPtrOutput) } -type RouteSpecGrpcRouteTimeout struct { - // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle *RouteSpecGrpcRouteTimeoutIdle `pulumi:"idle"` - // The per request timeout. - PerRequest *RouteSpecGrpcRouteTimeoutPerRequest `pulumi:"perRequest"` +type GatewayRouteSpecHttpRouteActionTarget struct { + // The virtual service gateway route target. + VirtualService GatewayRouteSpecHttpRouteActionTargetVirtualService `pulumi:"virtualService"` } -// RouteSpecGrpcRouteTimeoutInput is an input type that accepts RouteSpecGrpcRouteTimeoutArgs and RouteSpecGrpcRouteTimeoutOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutInput` via: +// GatewayRouteSpecHttpRouteActionTargetInput is an input type that accepts GatewayRouteSpecHttpRouteActionTargetArgs and GatewayRouteSpecHttpRouteActionTargetOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteActionTargetInput` via: // -// RouteSpecGrpcRouteTimeoutArgs{...} -type RouteSpecGrpcRouteTimeoutInput interface { +// GatewayRouteSpecHttpRouteActionTargetArgs{...} +type GatewayRouteSpecHttpRouteActionTargetInput interface { pulumi.Input - ToRouteSpecGrpcRouteTimeoutOutput() RouteSpecGrpcRouteTimeoutOutput - ToRouteSpecGrpcRouteTimeoutOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutOutput + ToGatewayRouteSpecHttpRouteActionTargetOutput() GatewayRouteSpecHttpRouteActionTargetOutput + ToGatewayRouteSpecHttpRouteActionTargetOutputWithContext(context.Context) GatewayRouteSpecHttpRouteActionTargetOutput } -type RouteSpecGrpcRouteTimeoutArgs struct { - // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle RouteSpecGrpcRouteTimeoutIdlePtrInput `pulumi:"idle"` - // The per request timeout. - PerRequest RouteSpecGrpcRouteTimeoutPerRequestPtrInput `pulumi:"perRequest"` +type GatewayRouteSpecHttpRouteActionTargetArgs struct { + // The virtual service gateway route target. + VirtualService GatewayRouteSpecHttpRouteActionTargetVirtualServiceInput `pulumi:"virtualService"` } -func (RouteSpecGrpcRouteTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteTimeout)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteActionTarget)(nil)).Elem() } -func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutOutput() RouteSpecGrpcRouteTimeoutOutput { - return i.ToRouteSpecGrpcRouteTimeoutOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteActionTargetArgs) ToGatewayRouteSpecHttpRouteActionTargetOutput() GatewayRouteSpecHttpRouteActionTargetOutput { + return i.ToGatewayRouteSpecHttpRouteActionTargetOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutOutput) +func (i GatewayRouteSpecHttpRouteActionTargetArgs) ToGatewayRouteSpecHttpRouteActionTargetOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionTargetOutput) } -func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { - return i.ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteActionTargetArgs) ToGatewayRouteSpecHttpRouteActionTargetPtrOutput() GatewayRouteSpecHttpRouteActionTargetPtrOutput { + return i.ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutOutput).ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttpRouteActionTargetArgs) ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionTargetOutput).ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteTimeoutPtrInput is an input type that accepts RouteSpecGrpcRouteTimeoutArgs, RouteSpecGrpcRouteTimeoutPtr and RouteSpecGrpcRouteTimeoutPtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutPtrInput` via: +// GatewayRouteSpecHttpRouteActionTargetPtrInput is an input type that accepts GatewayRouteSpecHttpRouteActionTargetArgs, GatewayRouteSpecHttpRouteActionTargetPtr and GatewayRouteSpecHttpRouteActionTargetPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteActionTargetPtrInput` via: // -// RouteSpecGrpcRouteTimeoutArgs{...} +// GatewayRouteSpecHttpRouteActionTargetArgs{...} // // or: // // nil -type RouteSpecGrpcRouteTimeoutPtrInput interface { +type GatewayRouteSpecHttpRouteActionTargetPtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput - ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutPtrOutput + ToGatewayRouteSpecHttpRouteActionTargetPtrOutput() GatewayRouteSpecHttpRouteActionTargetPtrOutput + ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(context.Context) GatewayRouteSpecHttpRouteActionTargetPtrOutput } -type routeSpecGrpcRouteTimeoutPtrType RouteSpecGrpcRouteTimeoutArgs +type gatewayRouteSpecHttpRouteActionTargetPtrType GatewayRouteSpecHttpRouteActionTargetArgs -func RouteSpecGrpcRouteTimeoutPtr(v *RouteSpecGrpcRouteTimeoutArgs) RouteSpecGrpcRouteTimeoutPtrInput { - return (*routeSpecGrpcRouteTimeoutPtrType)(v) +func GatewayRouteSpecHttpRouteActionTargetPtr(v *GatewayRouteSpecHttpRouteActionTargetArgs) GatewayRouteSpecHttpRouteActionTargetPtrInput { + return (*gatewayRouteSpecHttpRouteActionTargetPtrType)(v) } -func (*routeSpecGrpcRouteTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteTimeout)(nil)).Elem() +func (*gatewayRouteSpecHttpRouteActionTargetPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteActionTarget)(nil)).Elem() } -func (i *routeSpecGrpcRouteTimeoutPtrType) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { - return i.ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttpRouteActionTargetPtrType) ToGatewayRouteSpecHttpRouteActionTargetPtrOutput() GatewayRouteSpecHttpRouteActionTargetPtrOutput { + return i.ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteTimeoutPtrType) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPtrOutput) +func (i *gatewayRouteSpecHttpRouteActionTargetPtrType) ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionTargetPtrOutput) } -type RouteSpecGrpcRouteTimeoutOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteActionTargetOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteTimeout)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteActionTarget)(nil)).Elem() } -func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutOutput() RouteSpecGrpcRouteTimeoutOutput { +func (o GatewayRouteSpecHttpRouteActionTargetOutput) ToGatewayRouteSpecHttpRouteActionTargetOutput() GatewayRouteSpecHttpRouteActionTargetOutput { return o } -func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutOutput { +func (o GatewayRouteSpecHttpRouteActionTargetOutput) ToGatewayRouteSpecHttpRouteActionTargetOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetOutput { return o } -func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { - return o.ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttpRouteActionTargetOutput) ToGatewayRouteSpecHttpRouteActionTargetPtrOutput() GatewayRouteSpecHttpRouteActionTargetPtrOutput { + return o.ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeout { +func (o GatewayRouteSpecHttpRouteActionTargetOutput) ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteActionTarget) *GatewayRouteSpecHttpRouteActionTarget { return &v - }).(RouteSpecGrpcRouteTimeoutPtrOutput) -} - -// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecGrpcRouteTimeoutOutput) Idle() RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutIdle { return v.Idle }).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) + }).(GatewayRouteSpecHttpRouteActionTargetPtrOutput) } -// The per request timeout. -func (o RouteSpecGrpcRouteTimeoutOutput) PerRequest() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutPerRequest { return v.PerRequest }).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) +// The virtual service gateway route target. +func (o GatewayRouteSpecHttpRouteActionTargetOutput) VirtualService() GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteActionTarget) GatewayRouteSpecHttpRouteActionTargetVirtualService { + return v.VirtualService + }).(GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) } -type RouteSpecGrpcRouteTimeoutPtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteActionTargetPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteTimeout)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionTargetPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteActionTarget)(nil)).Elem() } -func (o RouteSpecGrpcRouteTimeoutPtrOutput) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { +func (o GatewayRouteSpecHttpRouteActionTargetPtrOutput) ToGatewayRouteSpecHttpRouteActionTargetPtrOutput() GatewayRouteSpecHttpRouteActionTargetPtrOutput { return o } -func (o RouteSpecGrpcRouteTimeoutPtrOutput) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { +func (o GatewayRouteSpecHttpRouteActionTargetPtrOutput) ToGatewayRouteSpecHttpRouteActionTargetPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetPtrOutput { return o } -func (o RouteSpecGrpcRouteTimeoutPtrOutput) Elem() RouteSpecGrpcRouteTimeoutOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeout) RouteSpecGrpcRouteTimeout { return *v }).(RouteSpecGrpcRouteTimeoutOutput) -} - -// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecGrpcRouteTimeoutPtrOutput) Idle() RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutIdle { - if v == nil { - return nil - } - return v.Idle - }).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) +func (o GatewayRouteSpecHttpRouteActionTargetPtrOutput) Elem() GatewayRouteSpecHttpRouteActionTargetOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteActionTarget) GatewayRouteSpecHttpRouteActionTarget { return *v }).(GatewayRouteSpecHttpRouteActionTargetOutput) } -// The per request timeout. -func (o RouteSpecGrpcRouteTimeoutPtrOutput) PerRequest() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutPerRequest { +// The virtual service gateway route target. +func (o GatewayRouteSpecHttpRouteActionTargetPtrOutput) VirtualService() GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteActionTarget) *GatewayRouteSpecHttpRouteActionTargetVirtualService { if v == nil { return nil } - return v.PerRequest - }).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) + return &v.VirtualService + }).(GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) } -type RouteSpecGrpcRouteTimeoutIdle struct { - // The unit of time. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value int `pulumi:"value"` +type GatewayRouteSpecHttpRouteActionTargetVirtualService struct { + // The name of the virtual service that traffic is routed to. + VirtualServiceName string `pulumi:"virtualServiceName"` } -// RouteSpecGrpcRouteTimeoutIdleInput is an input type that accepts RouteSpecGrpcRouteTimeoutIdleArgs and RouteSpecGrpcRouteTimeoutIdleOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutIdleInput` via: +// GatewayRouteSpecHttpRouteActionTargetVirtualServiceInput is an input type that accepts GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs and GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteActionTargetVirtualServiceInput` via: // -// RouteSpecGrpcRouteTimeoutIdleArgs{...} -type RouteSpecGrpcRouteTimeoutIdleInput interface { +// GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs{...} +type GatewayRouteSpecHttpRouteActionTargetVirtualServiceInput interface { pulumi.Input - ToRouteSpecGrpcRouteTimeoutIdleOutput() RouteSpecGrpcRouteTimeoutIdleOutput - ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutIdleOutput + ToGatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput + ToGatewayRouteSpecHttpRouteActionTargetVirtualServiceOutputWithContext(context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput } -type RouteSpecGrpcRouteTimeoutIdleArgs struct { - // The unit of time. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value pulumi.IntInput `pulumi:"value"` +type GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs struct { + // The name of the virtual service that traffic is routed to. + VirtualServiceName pulumi.StringInput `pulumi:"virtualServiceName"` } -func (RouteSpecGrpcRouteTimeoutIdleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteActionTargetVirtualService)(nil)).Elem() } -func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdleOutput() RouteSpecGrpcRouteTimeoutIdleOutput { - return i.ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput { + return i.ToGatewayRouteSpecHttpRouteActionTargetVirtualServiceOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutIdleOutput) +func (i GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttpRouteActionTargetVirtualServiceOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) } -func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return i.ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { + return i.ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutIdleOutput).ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput).ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteTimeoutIdlePtrInput is an input type that accepts RouteSpecGrpcRouteTimeoutIdleArgs, RouteSpecGrpcRouteTimeoutIdlePtr and RouteSpecGrpcRouteTimeoutIdlePtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutIdlePtrInput` via: +// GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrInput is an input type that accepts GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs, GatewayRouteSpecHttpRouteActionTargetVirtualServicePtr and GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrInput` via: // -// RouteSpecGrpcRouteTimeoutIdleArgs{...} +// GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs{...} // // or: // // nil -type RouteSpecGrpcRouteTimeoutIdlePtrInput interface { +type GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput - ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput + ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput + ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput } -type routeSpecGrpcRouteTimeoutIdlePtrType RouteSpecGrpcRouteTimeoutIdleArgs +type gatewayRouteSpecHttpRouteActionTargetVirtualServicePtrType GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs -func RouteSpecGrpcRouteTimeoutIdlePtr(v *RouteSpecGrpcRouteTimeoutIdleArgs) RouteSpecGrpcRouteTimeoutIdlePtrInput { - return (*routeSpecGrpcRouteTimeoutIdlePtrType)(v) +func GatewayRouteSpecHttpRouteActionTargetVirtualServicePtr(v *GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs) GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrInput { + return (*gatewayRouteSpecHttpRouteActionTargetVirtualServicePtrType)(v) } -func (*routeSpecGrpcRouteTimeoutIdlePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +func (*gatewayRouteSpecHttpRouteActionTargetVirtualServicePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteActionTargetVirtualService)(nil)).Elem() } -func (i *routeSpecGrpcRouteTimeoutIdlePtrType) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return i.ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttpRouteActionTargetVirtualServicePtrType) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { + return i.ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteTimeoutIdlePtrType) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) +func (i *gatewayRouteSpecHttpRouteActionTargetVirtualServicePtrType) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) } -type RouteSpecGrpcRouteTimeoutIdleOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteTimeoutIdleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteActionTargetVirtualService)(nil)).Elem() } -func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdleOutput() RouteSpecGrpcRouteTimeoutIdleOutput { +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput { return o } -func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdleOutput { +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttpRouteActionTargetVirtualServiceOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput { return o } -func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return o.ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { + return o.ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutIdle) *RouteSpecGrpcRouteTimeoutIdle { +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteActionTargetVirtualService) *GatewayRouteSpecHttpRouteActionTargetVirtualService { return &v - }).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) -} - -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecGrpcRouteTimeoutIdleOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) + }).(GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecGrpcRouteTimeoutIdleOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) +// The name of the virtual service that traffic is routed to. +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) VirtualServiceName() pulumi.StringOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteActionTargetVirtualService) string { return v.VirtualServiceName }).(pulumi.StringOutput) } -type RouteSpecGrpcRouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteTimeoutIdlePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +func (GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteActionTargetVirtualService)(nil)).Elem() } -func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput() GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { return o } -func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) ToGatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput { return o } -func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) Elem() RouteSpecGrpcRouteTimeoutIdleOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutIdle) RouteSpecGrpcRouteTimeoutIdle { return *v }).(RouteSpecGrpcRouteTimeoutIdleOutput) +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) Elem() GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteActionTargetVirtualService) GatewayRouteSpecHttpRouteActionTargetVirtualService { + return *v + }).(GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutIdle) *string { +// The name of the virtual service that traffic is routed to. +func (o GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput) VirtualServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteActionTargetVirtualService) *string { if v == nil { return nil } - return &v.Unit + return &v.VirtualServiceName }).(pulumi.StringPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutIdle) *int { - if v == nil { - return nil - } - return &v.Value - }).(pulumi.IntPtrOutput) -} - -type RouteSpecGrpcRouteTimeoutPerRequest struct { - // The unit of time. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value int `pulumi:"value"` +type GatewayRouteSpecHttpRouteMatch struct { + // Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + Prefix string `pulumi:"prefix"` } -// RouteSpecGrpcRouteTimeoutPerRequestInput is an input type that accepts RouteSpecGrpcRouteTimeoutPerRequestArgs and RouteSpecGrpcRouteTimeoutPerRequestOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutPerRequestInput` via: +// GatewayRouteSpecHttpRouteMatchInput is an input type that accepts GatewayRouteSpecHttpRouteMatchArgs and GatewayRouteSpecHttpRouteMatchOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteMatchInput` via: // -// RouteSpecGrpcRouteTimeoutPerRequestArgs{...} -type RouteSpecGrpcRouteTimeoutPerRequestInput interface { +// GatewayRouteSpecHttpRouteMatchArgs{...} +type GatewayRouteSpecHttpRouteMatchInput interface { pulumi.Input - ToRouteSpecGrpcRouteTimeoutPerRequestOutput() RouteSpecGrpcRouteTimeoutPerRequestOutput - ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutPerRequestOutput + ToGatewayRouteSpecHttpRouteMatchOutput() GatewayRouteSpecHttpRouteMatchOutput + ToGatewayRouteSpecHttpRouteMatchOutputWithContext(context.Context) GatewayRouteSpecHttpRouteMatchOutput } -type RouteSpecGrpcRouteTimeoutPerRequestArgs struct { - // The unit of time. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value pulumi.IntInput `pulumi:"value"` +type GatewayRouteSpecHttpRouteMatchArgs struct { + // Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + Prefix pulumi.StringInput `pulumi:"prefix"` } -func (RouteSpecGrpcRouteTimeoutPerRequestArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +func (GatewayRouteSpecHttpRouteMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteMatch)(nil)).Elem() } -func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestOutput() RouteSpecGrpcRouteTimeoutPerRequestOutput { - return i.ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteMatchArgs) ToGatewayRouteSpecHttpRouteMatchOutput() GatewayRouteSpecHttpRouteMatchOutput { + return i.ToGatewayRouteSpecHttpRouteMatchOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPerRequestOutput) +func (i GatewayRouteSpecHttpRouteMatchArgs) ToGatewayRouteSpecHttpRouteMatchOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteMatchOutput) } -func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return i.ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (i GatewayRouteSpecHttpRouteMatchArgs) ToGatewayRouteSpecHttpRouteMatchPtrOutput() GatewayRouteSpecHttpRouteMatchPtrOutput { + return i.ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) } -func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPerRequestOutput).ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx) +func (i GatewayRouteSpecHttpRouteMatchArgs) ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteMatchOutput).ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(ctx) } -// RouteSpecGrpcRouteTimeoutPerRequestPtrInput is an input type that accepts RouteSpecGrpcRouteTimeoutPerRequestArgs, RouteSpecGrpcRouteTimeoutPerRequestPtr and RouteSpecGrpcRouteTimeoutPerRequestPtrOutput values. -// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutPerRequestPtrInput` via: +// GatewayRouteSpecHttpRouteMatchPtrInput is an input type that accepts GatewayRouteSpecHttpRouteMatchArgs, GatewayRouteSpecHttpRouteMatchPtr and GatewayRouteSpecHttpRouteMatchPtrOutput values. +// You can construct a concrete instance of `GatewayRouteSpecHttpRouteMatchPtrInput` via: // -// RouteSpecGrpcRouteTimeoutPerRequestArgs{...} +// GatewayRouteSpecHttpRouteMatchArgs{...} // // or: // // nil -type RouteSpecGrpcRouteTimeoutPerRequestPtrInput interface { +type GatewayRouteSpecHttpRouteMatchPtrInput interface { pulumi.Input - ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput - ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput + ToGatewayRouteSpecHttpRouteMatchPtrOutput() GatewayRouteSpecHttpRouteMatchPtrOutput + ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(context.Context) GatewayRouteSpecHttpRouteMatchPtrOutput } -type routeSpecGrpcRouteTimeoutPerRequestPtrType RouteSpecGrpcRouteTimeoutPerRequestArgs +type gatewayRouteSpecHttpRouteMatchPtrType GatewayRouteSpecHttpRouteMatchArgs -func RouteSpecGrpcRouteTimeoutPerRequestPtr(v *RouteSpecGrpcRouteTimeoutPerRequestArgs) RouteSpecGrpcRouteTimeoutPerRequestPtrInput { - return (*routeSpecGrpcRouteTimeoutPerRequestPtrType)(v) +func GatewayRouteSpecHttpRouteMatchPtr(v *GatewayRouteSpecHttpRouteMatchArgs) GatewayRouteSpecHttpRouteMatchPtrInput { + return (*gatewayRouteSpecHttpRouteMatchPtrType)(v) } -func (*routeSpecGrpcRouteTimeoutPerRequestPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +func (*gatewayRouteSpecHttpRouteMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteMatch)(nil)).Elem() } -func (i *routeSpecGrpcRouteTimeoutPerRequestPtrType) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return i.ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (i *gatewayRouteSpecHttpRouteMatchPtrType) ToGatewayRouteSpecHttpRouteMatchPtrOutput() GatewayRouteSpecHttpRouteMatchPtrOutput { + return i.ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) } -func (i *routeSpecGrpcRouteTimeoutPerRequestPtrType) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) +func (i *gatewayRouteSpecHttpRouteMatchPtrType) ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(GatewayRouteSpecHttpRouteMatchPtrOutput) } -type RouteSpecGrpcRouteTimeoutPerRequestOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteMatchOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteTimeoutPerRequestOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +func (GatewayRouteSpecHttpRouteMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GatewayRouteSpecHttpRouteMatch)(nil)).Elem() } -func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestOutput() RouteSpecGrpcRouteTimeoutPerRequestOutput { +func (o GatewayRouteSpecHttpRouteMatchOutput) ToGatewayRouteSpecHttpRouteMatchOutput() GatewayRouteSpecHttpRouteMatchOutput { return o } -func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestOutput { +func (o GatewayRouteSpecHttpRouteMatchOutput) ToGatewayRouteSpecHttpRouteMatchOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteMatchOutput { return o } -func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return o.ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (o GatewayRouteSpecHttpRouteMatchOutput) ToGatewayRouteSpecHttpRouteMatchPtrOutput() GatewayRouteSpecHttpRouteMatchPtrOutput { + return o.ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) } -func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutPerRequest) *RouteSpecGrpcRouteTimeoutPerRequest { +func (o GatewayRouteSpecHttpRouteMatchOutput) ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteMatchPtrOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatch) *GatewayRouteSpecHttpRouteMatch { return &v - }).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) -} - -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutPerRequest) string { return v.Unit }).(pulumi.StringOutput) + }).(GatewayRouteSpecHttpRouteMatchPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutPerRequest) int { return v.Value }).(pulumi.IntOutput) +// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. +func (o GatewayRouteSpecHttpRouteMatchOutput) Prefix() pulumi.StringOutput { + return o.ApplyT(func(v GatewayRouteSpecHttpRouteMatch) string { return v.Prefix }).(pulumi.StringOutput) } -type RouteSpecGrpcRouteTimeoutPerRequestPtrOutput struct{ *pulumi.OutputState } +type GatewayRouteSpecHttpRouteMatchPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +func (GatewayRouteSpecHttpRouteMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**GatewayRouteSpecHttpRouteMatch)(nil)).Elem() } -func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { +func (o GatewayRouteSpecHttpRouteMatchPtrOutput) ToGatewayRouteSpecHttpRouteMatchPtrOutput() GatewayRouteSpecHttpRouteMatchPtrOutput { return o } -func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { +func (o GatewayRouteSpecHttpRouteMatchPtrOutput) ToGatewayRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) GatewayRouteSpecHttpRouteMatchPtrOutput { return o } -func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) Elem() RouteSpecGrpcRouteTimeoutPerRequestOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutPerRequest) RouteSpecGrpcRouteTimeoutPerRequest { return *v }).(RouteSpecGrpcRouteTimeoutPerRequestOutput) +func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Elem() GatewayRouteSpecHttpRouteMatchOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatch) GatewayRouteSpecHttpRouteMatch { return *v }).(GatewayRouteSpecHttpRouteMatchOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutPerRequest) *string { +// Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. +func (o GatewayRouteSpecHttpRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *GatewayRouteSpecHttpRouteMatch) *string { if v == nil { return nil } - return &v.Unit + return &v.Prefix }).(pulumi.StringPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutPerRequest) *int { - if v == nil { - return nil - } - return &v.Value - }).(pulumi.IntPtrOutput) -} - -type RouteSpecHttp2Route struct { - // The action to take if a match is determined. - Action RouteSpecHttp2RouteAction `pulumi:"action"` - // The criteria for determining an gRPC request match. - Match RouteSpecHttp2RouteMatch `pulumi:"match"` - // The retry policy. - RetryPolicy *RouteSpecHttp2RouteRetryPolicy `pulumi:"retryPolicy"` - // The types of timeouts. - Timeout *RouteSpecHttp2RouteTimeout `pulumi:"timeout"` +type MeshSpec struct { + // The egress filter rules for the service mesh. + EgressFilter *MeshSpecEgressFilter `pulumi:"egressFilter"` } -// RouteSpecHttp2RouteInput is an input type that accepts RouteSpecHttp2RouteArgs and RouteSpecHttp2RouteOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteInput` via: +// MeshSpecInput is an input type that accepts MeshSpecArgs and MeshSpecOutput values. +// You can construct a concrete instance of `MeshSpecInput` via: // -// RouteSpecHttp2RouteArgs{...} -type RouteSpecHttp2RouteInput interface { +// MeshSpecArgs{...} +type MeshSpecInput interface { pulumi.Input - ToRouteSpecHttp2RouteOutput() RouteSpecHttp2RouteOutput - ToRouteSpecHttp2RouteOutputWithContext(context.Context) RouteSpecHttp2RouteOutput + ToMeshSpecOutput() MeshSpecOutput + ToMeshSpecOutputWithContext(context.Context) MeshSpecOutput } -type RouteSpecHttp2RouteArgs struct { - // The action to take if a match is determined. - Action RouteSpecHttp2RouteActionInput `pulumi:"action"` - // The criteria for determining an gRPC request match. - Match RouteSpecHttp2RouteMatchInput `pulumi:"match"` - // The retry policy. - RetryPolicy RouteSpecHttp2RouteRetryPolicyPtrInput `pulumi:"retryPolicy"` - // The types of timeouts. - Timeout RouteSpecHttp2RouteTimeoutPtrInput `pulumi:"timeout"` +type MeshSpecArgs struct { + // The egress filter rules for the service mesh. + EgressFilter MeshSpecEgressFilterPtrInput `pulumi:"egressFilter"` } -func (RouteSpecHttp2RouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2Route)(nil)).Elem() +func (MeshSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MeshSpec)(nil)).Elem() } -func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RouteOutput() RouteSpecHttp2RouteOutput { - return i.ToRouteSpecHttp2RouteOutputWithContext(context.Background()) +func (i MeshSpecArgs) ToMeshSpecOutput() MeshSpecOutput { + return i.ToMeshSpecOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RouteOutputWithContext(ctx context.Context) RouteSpecHttp2RouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteOutput) +func (i MeshSpecArgs) ToMeshSpecOutputWithContext(ctx context.Context) MeshSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(MeshSpecOutput) } -func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { - return i.ToRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) +func (i MeshSpecArgs) ToMeshSpecPtrOutput() MeshSpecPtrOutput { + return i.ToMeshSpecPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteOutput).ToRouteSpecHttp2RoutePtrOutputWithContext(ctx) +func (i MeshSpecArgs) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MeshSpecOutput).ToMeshSpecPtrOutputWithContext(ctx) } -// RouteSpecHttp2RoutePtrInput is an input type that accepts RouteSpecHttp2RouteArgs, RouteSpecHttp2RoutePtr and RouteSpecHttp2RoutePtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RoutePtrInput` via: +// MeshSpecPtrInput is an input type that accepts MeshSpecArgs, MeshSpecPtr and MeshSpecPtrOutput values. +// You can construct a concrete instance of `MeshSpecPtrInput` via: // -// RouteSpecHttp2RouteArgs{...} +// MeshSpecArgs{...} // // or: // // nil -type RouteSpecHttp2RoutePtrInput interface { +type MeshSpecPtrInput interface { pulumi.Input - ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput - ToRouteSpecHttp2RoutePtrOutputWithContext(context.Context) RouteSpecHttp2RoutePtrOutput + ToMeshSpecPtrOutput() MeshSpecPtrOutput + ToMeshSpecPtrOutputWithContext(context.Context) MeshSpecPtrOutput } -type routeSpecHttp2RoutePtrType RouteSpecHttp2RouteArgs +type meshSpecPtrType MeshSpecArgs -func RouteSpecHttp2RoutePtr(v *RouteSpecHttp2RouteArgs) RouteSpecHttp2RoutePtrInput { - return (*routeSpecHttp2RoutePtrType)(v) +func MeshSpecPtr(v *MeshSpecArgs) MeshSpecPtrInput { + return (*meshSpecPtrType)(v) } -func (*routeSpecHttp2RoutePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2Route)(nil)).Elem() +func (*meshSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MeshSpec)(nil)).Elem() } -func (i *routeSpecHttp2RoutePtrType) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { - return i.ToRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) +func (i *meshSpecPtrType) ToMeshSpecPtrOutput() MeshSpecPtrOutput { + return i.ToMeshSpecPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RoutePtrType) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RoutePtrOutput) +func (i *meshSpecPtrType) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MeshSpecPtrOutput) } -type RouteSpecHttp2RouteOutput struct{ *pulumi.OutputState } +type MeshSpecOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2Route)(nil)).Elem() +func (MeshSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MeshSpec)(nil)).Elem() } -func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RouteOutput() RouteSpecHttp2RouteOutput { +func (o MeshSpecOutput) ToMeshSpecOutput() MeshSpecOutput { return o } -func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RouteOutputWithContext(ctx context.Context) RouteSpecHttp2RouteOutput { +func (o MeshSpecOutput) ToMeshSpecOutputWithContext(ctx context.Context) MeshSpecOutput { return o } -func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { - return o.ToRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) +func (o MeshSpecOutput) ToMeshSpecPtrOutput() MeshSpecPtrOutput { + return o.ToMeshSpecPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { - return o.ApplyT(func(v RouteSpecHttp2Route) *RouteSpecHttp2Route { +func (o MeshSpecOutput) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { + return o.ApplyT(func(v MeshSpec) *MeshSpec { return &v - }).(RouteSpecHttp2RoutePtrOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecHttp2RouteOutput) Action() RouteSpecHttp2RouteActionOutput { - return o.ApplyT(func(v RouteSpecHttp2Route) RouteSpecHttp2RouteAction { return v.Action }).(RouteSpecHttp2RouteActionOutput) -} - -// The criteria for determining an gRPC request match. -func (o RouteSpecHttp2RouteOutput) Match() RouteSpecHttp2RouteMatchOutput { - return o.ApplyT(func(v RouteSpecHttp2Route) RouteSpecHttp2RouteMatch { return v.Match }).(RouteSpecHttp2RouteMatchOutput) -} - -// The retry policy. -func (o RouteSpecHttp2RouteOutput) RetryPolicy() RouteSpecHttp2RouteRetryPolicyPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2Route) *RouteSpecHttp2RouteRetryPolicy { return v.RetryPolicy }).(RouteSpecHttp2RouteRetryPolicyPtrOutput) + }).(MeshSpecPtrOutput) } -// The types of timeouts. -func (o RouteSpecHttp2RouteOutput) Timeout() RouteSpecHttp2RouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2Route) *RouteSpecHttp2RouteTimeout { return v.Timeout }).(RouteSpecHttp2RouteTimeoutPtrOutput) +// The egress filter rules for the service mesh. +func (o MeshSpecOutput) EgressFilter() MeshSpecEgressFilterPtrOutput { + return o.ApplyT(func(v MeshSpec) *MeshSpecEgressFilter { return v.EgressFilter }).(MeshSpecEgressFilterPtrOutput) } -type RouteSpecHttp2RoutePtrOutput struct{ *pulumi.OutputState } +type MeshSpecPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RoutePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2Route)(nil)).Elem() +func (MeshSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MeshSpec)(nil)).Elem() } -func (o RouteSpecHttp2RoutePtrOutput) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { +func (o MeshSpecPtrOutput) ToMeshSpecPtrOutput() MeshSpecPtrOutput { return o } -func (o RouteSpecHttp2RoutePtrOutput) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { +func (o MeshSpecPtrOutput) ToMeshSpecPtrOutputWithContext(ctx context.Context) MeshSpecPtrOutput { return o } -func (o RouteSpecHttp2RoutePtrOutput) Elem() RouteSpecHttp2RouteOutput { - return o.ApplyT(func(v *RouteSpecHttp2Route) RouteSpecHttp2Route { return *v }).(RouteSpecHttp2RouteOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecHttp2RoutePtrOutput) Action() RouteSpecHttp2RouteActionPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteAction { - if v == nil { - return nil - } - return &v.Action - }).(RouteSpecHttp2RouteActionPtrOutput) -} - -// The criteria for determining an gRPC request match. -func (o RouteSpecHttp2RoutePtrOutput) Match() RouteSpecHttp2RouteMatchPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteMatch { - if v == nil { - return nil - } - return &v.Match - }).(RouteSpecHttp2RouteMatchPtrOutput) -} - -// The retry policy. -func (o RouteSpecHttp2RoutePtrOutput) RetryPolicy() RouteSpecHttp2RouteRetryPolicyPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteRetryPolicy { - if v == nil { - return nil - } - return v.RetryPolicy - }).(RouteSpecHttp2RouteRetryPolicyPtrOutput) +func (o MeshSpecPtrOutput) Elem() MeshSpecOutput { + return o.ApplyT(func(v *MeshSpec) MeshSpec { return *v }).(MeshSpecOutput) } -// The types of timeouts. -func (o RouteSpecHttp2RoutePtrOutput) Timeout() RouteSpecHttp2RouteTimeoutPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteTimeout { +// The egress filter rules for the service mesh. +func (o MeshSpecPtrOutput) EgressFilter() MeshSpecEgressFilterPtrOutput { + return o.ApplyT(func(v *MeshSpec) *MeshSpecEgressFilter { if v == nil { return nil } - return v.Timeout - }).(RouteSpecHttp2RouteTimeoutPtrOutput) + return v.EgressFilter + }).(MeshSpecEgressFilterPtrOutput) } -type RouteSpecHttp2RouteAction struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets []RouteSpecHttp2RouteActionWeightedTarget `pulumi:"weightedTargets"` +type MeshSpecEgressFilter struct { + // The egress filter type. By default, the type is `DROP_ALL`. + // Valid values are `ALLOW_ALL` and `DROP_ALL`. + Type *string `pulumi:"type"` } -// RouteSpecHttp2RouteActionInput is an input type that accepts RouteSpecHttp2RouteActionArgs and RouteSpecHttp2RouteActionOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteActionInput` via: +// MeshSpecEgressFilterInput is an input type that accepts MeshSpecEgressFilterArgs and MeshSpecEgressFilterOutput values. +// You can construct a concrete instance of `MeshSpecEgressFilterInput` via: // -// RouteSpecHttp2RouteActionArgs{...} -type RouteSpecHttp2RouteActionInput interface { +// MeshSpecEgressFilterArgs{...} +type MeshSpecEgressFilterInput interface { pulumi.Input - ToRouteSpecHttp2RouteActionOutput() RouteSpecHttp2RouteActionOutput - ToRouteSpecHttp2RouteActionOutputWithContext(context.Context) RouteSpecHttp2RouteActionOutput + ToMeshSpecEgressFilterOutput() MeshSpecEgressFilterOutput + ToMeshSpecEgressFilterOutputWithContext(context.Context) MeshSpecEgressFilterOutput } -type RouteSpecHttp2RouteActionArgs struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets RouteSpecHttp2RouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` +type MeshSpecEgressFilterArgs struct { + // The egress filter type. By default, the type is `DROP_ALL`. + // Valid values are `ALLOW_ALL` and `DROP_ALL`. + Type pulumi.StringPtrInput `pulumi:"type"` } -func (RouteSpecHttp2RouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteAction)(nil)).Elem() +func (MeshSpecEgressFilterArgs) ElementType() reflect.Type { + return reflect.TypeOf((*MeshSpecEgressFilter)(nil)).Elem() } -func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionOutput() RouteSpecHttp2RouteActionOutput { - return i.ToRouteSpecHttp2RouteActionOutputWithContext(context.Background()) +func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterOutput() MeshSpecEgressFilterOutput { + return i.ToMeshSpecEgressFilterOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionOutput) +func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterOutputWithContext(ctx context.Context) MeshSpecEgressFilterOutput { + return pulumi.ToOutputWithContext(ctx, i).(MeshSpecEgressFilterOutput) } -func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { - return i.ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) +func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { + return i.ToMeshSpecEgressFilterPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionOutput).ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx) +func (i MeshSpecEgressFilterArgs) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MeshSpecEgressFilterOutput).ToMeshSpecEgressFilterPtrOutputWithContext(ctx) } -// RouteSpecHttp2RouteActionPtrInput is an input type that accepts RouteSpecHttp2RouteActionArgs, RouteSpecHttp2RouteActionPtr and RouteSpecHttp2RouteActionPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteActionPtrInput` via: +// MeshSpecEgressFilterPtrInput is an input type that accepts MeshSpecEgressFilterArgs, MeshSpecEgressFilterPtr and MeshSpecEgressFilterPtrOutput values. +// You can construct a concrete instance of `MeshSpecEgressFilterPtrInput` via: // -// RouteSpecHttp2RouteActionArgs{...} +// MeshSpecEgressFilterArgs{...} // // or: // // nil -type RouteSpecHttp2RouteActionPtrInput interface { +type MeshSpecEgressFilterPtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput - ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Context) RouteSpecHttp2RouteActionPtrOutput + ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput + ToMeshSpecEgressFilterPtrOutputWithContext(context.Context) MeshSpecEgressFilterPtrOutput } -type routeSpecHttp2RouteActionPtrType RouteSpecHttp2RouteActionArgs +type meshSpecEgressFilterPtrType MeshSpecEgressFilterArgs -func RouteSpecHttp2RouteActionPtr(v *RouteSpecHttp2RouteActionArgs) RouteSpecHttp2RouteActionPtrInput { - return (*routeSpecHttp2RouteActionPtrType)(v) +func MeshSpecEgressFilterPtr(v *MeshSpecEgressFilterArgs) MeshSpecEgressFilterPtrInput { + return (*meshSpecEgressFilterPtrType)(v) } -func (*routeSpecHttp2RouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteAction)(nil)).Elem() +func (*meshSpecEgressFilterPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**MeshSpecEgressFilter)(nil)).Elem() } -func (i *routeSpecHttp2RouteActionPtrType) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { - return i.ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) +func (i *meshSpecEgressFilterPtrType) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { + return i.ToMeshSpecEgressFilterPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteActionPtrType) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionPtrOutput) +func (i *meshSpecEgressFilterPtrType) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(MeshSpecEgressFilterPtrOutput) } -type RouteSpecHttp2RouteActionOutput struct{ *pulumi.OutputState } +type MeshSpecEgressFilterOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteAction)(nil)).Elem() +func (MeshSpecEgressFilterOutput) ElementType() reflect.Type { + return reflect.TypeOf((*MeshSpecEgressFilter)(nil)).Elem() } -func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionOutput() RouteSpecHttp2RouteActionOutput { +func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterOutput() MeshSpecEgressFilterOutput { return o } -func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionOutput { +func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterOutputWithContext(ctx context.Context) MeshSpecEgressFilterOutput { return o } -func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { - return o.ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) +func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { + return o.ToMeshSpecEgressFilterPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteAction) *RouteSpecHttp2RouteAction { +func (o MeshSpecEgressFilterOutput) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { + return o.ApplyT(func(v MeshSpecEgressFilter) *MeshSpecEgressFilter { return &v - }).(RouteSpecHttp2RouteActionPtrOutput) + }).(MeshSpecEgressFilterPtrOutput) } -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecHttp2RouteActionOutput) WeightedTargets() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteAction) []RouteSpecHttp2RouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecHttp2RouteActionWeightedTargetArrayOutput) +// The egress filter type. By default, the type is `DROP_ALL`. +// Valid values are `ALLOW_ALL` and `DROP_ALL`. +func (o MeshSpecEgressFilterOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v MeshSpecEgressFilter) *string { return v.Type }).(pulumi.StringPtrOutput) } -type RouteSpecHttp2RouteActionPtrOutput struct{ *pulumi.OutputState } +type MeshSpecEgressFilterPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteAction)(nil)).Elem() +func (MeshSpecEgressFilterPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**MeshSpecEgressFilter)(nil)).Elem() } -func (o RouteSpecHttp2RouteActionPtrOutput) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { +func (o MeshSpecEgressFilterPtrOutput) ToMeshSpecEgressFilterPtrOutput() MeshSpecEgressFilterPtrOutput { return o } -func (o RouteSpecHttp2RouteActionPtrOutput) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { +func (o MeshSpecEgressFilterPtrOutput) ToMeshSpecEgressFilterPtrOutputWithContext(ctx context.Context) MeshSpecEgressFilterPtrOutput { return o } -func (o RouteSpecHttp2RouteActionPtrOutput) Elem() RouteSpecHttp2RouteActionOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteAction) RouteSpecHttp2RouteAction { return *v }).(RouteSpecHttp2RouteActionOutput) +func (o MeshSpecEgressFilterPtrOutput) Elem() MeshSpecEgressFilterOutput { + return o.ApplyT(func(v *MeshSpecEgressFilter) MeshSpecEgressFilter { return *v }).(MeshSpecEgressFilterOutput) } -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecHttp2RouteActionPtrOutput) WeightedTargets() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteAction) []RouteSpecHttp2RouteActionWeightedTarget { +// The egress filter type. By default, the type is `DROP_ALL`. +// Valid values are `ALLOW_ALL` and `DROP_ALL`. +func (o MeshSpecEgressFilterPtrOutput) Type() pulumi.StringPtrOutput { + return o.ApplyT(func(v *MeshSpecEgressFilter) *string { if v == nil { return nil } - return v.WeightedTargets - }).(RouteSpecHttp2RouteActionWeightedTargetArrayOutput) + return v.Type + }).(pulumi.StringPtrOutput) } -type RouteSpecHttp2RouteActionWeightedTarget struct { - // The virtual node to associate with the weighted target. - VirtualNode string `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight int `pulumi:"weight"` +type RouteSpec struct { + // The gRPC routing information for the route. + GrpcRoute *RouteSpecGrpcRoute `pulumi:"grpcRoute"` + // The HTTP/2 routing information for the route. + Http2Route *RouteSpecHttp2Route `pulumi:"http2Route"` + // The HTTP routing information for the route. + HttpRoute *RouteSpecHttpRoute `pulumi:"httpRoute"` + // The priority for the route, between `0` and `1000`. + // Routes are matched based on the specified value, where `0` is the highest priority. + Priority *int `pulumi:"priority"` + // The TCP routing information for the route. + TcpRoute *RouteSpecTcpRoute `pulumi:"tcpRoute"` } -// RouteSpecHttp2RouteActionWeightedTargetInput is an input type that accepts RouteSpecHttp2RouteActionWeightedTargetArgs and RouteSpecHttp2RouteActionWeightedTargetOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteActionWeightedTargetInput` via: +// RouteSpecInput is an input type that accepts RouteSpecArgs and RouteSpecOutput values. +// You can construct a concrete instance of `RouteSpecInput` via: // -// RouteSpecHttp2RouteActionWeightedTargetArgs{...} -type RouteSpecHttp2RouteActionWeightedTargetInput interface { +// RouteSpecArgs{...} +type RouteSpecInput interface { pulumi.Input - ToRouteSpecHttp2RouteActionWeightedTargetOutput() RouteSpecHttp2RouteActionWeightedTargetOutput - ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecHttp2RouteActionWeightedTargetOutput + ToRouteSpecOutput() RouteSpecOutput + ToRouteSpecOutputWithContext(context.Context) RouteSpecOutput } -type RouteSpecHttp2RouteActionWeightedTargetArgs struct { - // The virtual node to associate with the weighted target. - VirtualNode pulumi.StringInput `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight pulumi.IntInput `pulumi:"weight"` +type RouteSpecArgs struct { + // The gRPC routing information for the route. + GrpcRoute RouteSpecGrpcRoutePtrInput `pulumi:"grpcRoute"` + // The HTTP/2 routing information for the route. + Http2Route RouteSpecHttp2RoutePtrInput `pulumi:"http2Route"` + // The HTTP routing information for the route. + HttpRoute RouteSpecHttpRoutePtrInput `pulumi:"httpRoute"` + // The priority for the route, between `0` and `1000`. + // Routes are matched based on the specified value, where `0` is the highest priority. + Priority pulumi.IntPtrInput `pulumi:"priority"` + // The TCP routing information for the route. + TcpRoute RouteSpecTcpRoutePtrInput `pulumi:"tcpRoute"` } -func (RouteSpecHttp2RouteActionWeightedTargetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +func (RouteSpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpec)(nil)).Elem() } -func (i RouteSpecHttp2RouteActionWeightedTargetArgs) ToRouteSpecHttp2RouteActionWeightedTargetOutput() RouteSpecHttp2RouteActionWeightedTargetOutput { - return i.ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(context.Background()) +func (i RouteSpecArgs) ToRouteSpecOutput() RouteSpecOutput { + return i.ToRouteSpecOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteActionWeightedTargetArgs) ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionWeightedTargetOutput) +func (i RouteSpecArgs) ToRouteSpecOutputWithContext(ctx context.Context) RouteSpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecOutput) } -// RouteSpecHttp2RouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecHttp2RouteActionWeightedTargetArray and RouteSpecHttp2RouteActionWeightedTargetArrayOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteActionWeightedTargetArrayInput` via: +func (i RouteSpecArgs) ToRouteSpecPtrOutput() RouteSpecPtrOutput { + return i.ToRouteSpecPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecArgs) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecOutput).ToRouteSpecPtrOutputWithContext(ctx) +} + +// RouteSpecPtrInput is an input type that accepts RouteSpecArgs, RouteSpecPtr and RouteSpecPtrOutput values. +// You can construct a concrete instance of `RouteSpecPtrInput` via: // -// RouteSpecHttp2RouteActionWeightedTargetArray{ RouteSpecHttp2RouteActionWeightedTargetArgs{...} } -type RouteSpecHttp2RouteActionWeightedTargetArrayInput interface { +// RouteSpecArgs{...} +// +// or: +// +// nil +type RouteSpecPtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteActionWeightedTargetArrayOutput() RouteSpecHttp2RouteActionWeightedTargetArrayOutput - ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecHttp2RouteActionWeightedTargetArrayOutput + ToRouteSpecPtrOutput() RouteSpecPtrOutput + ToRouteSpecPtrOutputWithContext(context.Context) RouteSpecPtrOutput } -type RouteSpecHttp2RouteActionWeightedTargetArray []RouteSpecHttp2RouteActionWeightedTargetInput +type routeSpecPtrType RouteSpecArgs -func (RouteSpecHttp2RouteActionWeightedTargetArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +func RouteSpecPtr(v *RouteSpecArgs) RouteSpecPtrInput { + return (*routeSpecPtrType)(v) } -func (i RouteSpecHttp2RouteActionWeightedTargetArray) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutput() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { - return i.ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(context.Background()) +func (*routeSpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpec)(nil)).Elem() } -func (i RouteSpecHttp2RouteActionWeightedTargetArray) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionWeightedTargetArrayOutput) +func (i *routeSpecPtrType) ToRouteSpecPtrOutput() RouteSpecPtrOutput { + return i.ToRouteSpecPtrOutputWithContext(context.Background()) } -type RouteSpecHttp2RouteActionWeightedTargetOutput struct{ *pulumi.OutputState } +func (i *routeSpecPtrType) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecPtrOutput) +} -func (RouteSpecHttp2RouteActionWeightedTargetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +type RouteSpecOutput struct{ *pulumi.OutputState } + +func (RouteSpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpec)(nil)).Elem() } -func (o RouteSpecHttp2RouteActionWeightedTargetOutput) ToRouteSpecHttp2RouteActionWeightedTargetOutput() RouteSpecHttp2RouteActionWeightedTargetOutput { +func (o RouteSpecOutput) ToRouteSpecOutput() RouteSpecOutput { return o } -func (o RouteSpecHttp2RouteActionWeightedTargetOutput) ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetOutput { +func (o RouteSpecOutput) ToRouteSpecOutputWithContext(ctx context.Context) RouteSpecOutput { return o } -// The virtual node to associate with the weighted target. -func (o RouteSpecHttp2RouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) +func (o RouteSpecOutput) ToRouteSpecPtrOutput() RouteSpecPtrOutput { + return o.ToRouteSpecPtrOutputWithContext(context.Background()) } -// The relative weight of the weighted target. An integer between 0 and 100. -func (o RouteSpecHttp2RouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) +func (o RouteSpecOutput) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { + return o.ApplyT(func(v RouteSpec) *RouteSpec { + return &v + }).(RouteSpecPtrOutput) } -type RouteSpecHttp2RouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } - -func (RouteSpecHttp2RouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +// The gRPC routing information for the route. +func (o RouteSpecOutput) GrpcRoute() RouteSpecGrpcRoutePtrOutput { + return o.ApplyT(func(v RouteSpec) *RouteSpecGrpcRoute { return v.GrpcRoute }).(RouteSpecGrpcRoutePtrOutput) } -func (o RouteSpecHttp2RouteActionWeightedTargetArrayOutput) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutput() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { - return o +// The HTTP/2 routing information for the route. +func (o RouteSpecOutput) Http2Route() RouteSpecHttp2RoutePtrOutput { + return o.ApplyT(func(v RouteSpec) *RouteSpecHttp2Route { return v.Http2Route }).(RouteSpecHttp2RoutePtrOutput) } -func (o RouteSpecHttp2RouteActionWeightedTargetArrayOutput) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetArrayOutput { - return o +// The HTTP routing information for the route. +func (o RouteSpecOutput) HttpRoute() RouteSpecHttpRoutePtrOutput { + return o.ApplyT(func(v RouteSpec) *RouteSpecHttpRoute { return v.HttpRoute }).(RouteSpecHttpRoutePtrOutput) } -func (o RouteSpecHttp2RouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecHttp2RouteActionWeightedTargetOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttp2RouteActionWeightedTarget { - return vs[0].([]RouteSpecHttp2RouteActionWeightedTarget)[vs[1].(int)] - }).(RouteSpecHttp2RouteActionWeightedTargetOutput) +// The priority for the route, between `0` and `1000`. +// Routes are matched based on the specified value, where `0` is the highest priority. +func (o RouteSpecOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v RouteSpec) *int { return v.Priority }).(pulumi.IntPtrOutput) } -type RouteSpecHttp2RouteMatch struct { - // The client request headers to match on. - Headers []RouteSpecHttp2RouteMatchHeader `pulumi:"headers"` - // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. - Method *string `pulumi:"method"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix string `pulumi:"prefix"` - // The client request header scheme to match on. Valid values: `http`, `https`. - Scheme *string `pulumi:"scheme"` +// The TCP routing information for the route. +func (o RouteSpecOutput) TcpRoute() RouteSpecTcpRoutePtrOutput { + return o.ApplyT(func(v RouteSpec) *RouteSpecTcpRoute { return v.TcpRoute }).(RouteSpecTcpRoutePtrOutput) } -// RouteSpecHttp2RouteMatchInput is an input type that accepts RouteSpecHttp2RouteMatchArgs and RouteSpecHttp2RouteMatchOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchInput` via: -// -// RouteSpecHttp2RouteMatchArgs{...} -type RouteSpecHttp2RouteMatchInput interface { - pulumi.Input +type RouteSpecPtrOutput struct{ *pulumi.OutputState } - ToRouteSpecHttp2RouteMatchOutput() RouteSpecHttp2RouteMatchOutput - ToRouteSpecHttp2RouteMatchOutputWithContext(context.Context) RouteSpecHttp2RouteMatchOutput +func (RouteSpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpec)(nil)).Elem() } -type RouteSpecHttp2RouteMatchArgs struct { - // The client request headers to match on. - Headers RouteSpecHttp2RouteMatchHeaderArrayInput `pulumi:"headers"` - // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. - Method pulumi.StringPtrInput `pulumi:"method"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix pulumi.StringInput `pulumi:"prefix"` - // The client request header scheme to match on. Valid values: `http`, `https`. - Scheme pulumi.StringPtrInput `pulumi:"scheme"` +func (o RouteSpecPtrOutput) ToRouteSpecPtrOutput() RouteSpecPtrOutput { + return o } -func (RouteSpecHttp2RouteMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatch)(nil)).Elem() +func (o RouteSpecPtrOutput) ToRouteSpecPtrOutputWithContext(ctx context.Context) RouteSpecPtrOutput { + return o } -func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchOutput() RouteSpecHttp2RouteMatchOutput { - return i.ToRouteSpecHttp2RouteMatchOutputWithContext(context.Background()) +func (o RouteSpecPtrOutput) Elem() RouteSpecOutput { + return o.ApplyT(func(v *RouteSpec) RouteSpec { return *v }).(RouteSpecOutput) } -func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchOutput) +// The gRPC routing information for the route. +func (o RouteSpecPtrOutput) GrpcRoute() RouteSpecGrpcRoutePtrOutput { + return o.ApplyT(func(v *RouteSpec) *RouteSpecGrpcRoute { + if v == nil { + return nil + } + return v.GrpcRoute + }).(RouteSpecGrpcRoutePtrOutput) } -func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { - return i.ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) +// The HTTP/2 routing information for the route. +func (o RouteSpecPtrOutput) Http2Route() RouteSpecHttp2RoutePtrOutput { + return o.ApplyT(func(v *RouteSpec) *RouteSpecHttp2Route { + if v == nil { + return nil + } + return v.Http2Route + }).(RouteSpecHttp2RoutePtrOutput) } -func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchOutput).ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx) +// The HTTP routing information for the route. +func (o RouteSpecPtrOutput) HttpRoute() RouteSpecHttpRoutePtrOutput { + return o.ApplyT(func(v *RouteSpec) *RouteSpecHttpRoute { + if v == nil { + return nil + } + return v.HttpRoute + }).(RouteSpecHttpRoutePtrOutput) } -// RouteSpecHttp2RouteMatchPtrInput is an input type that accepts RouteSpecHttp2RouteMatchArgs, RouteSpecHttp2RouteMatchPtr and RouteSpecHttp2RouteMatchPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchPtrInput` via: +// The priority for the route, between `0` and `1000`. +// Routes are matched based on the specified value, where `0` is the highest priority. +func (o RouteSpecPtrOutput) Priority() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpec) *int { + if v == nil { + return nil + } + return v.Priority + }).(pulumi.IntPtrOutput) +} + +// The TCP routing information for the route. +func (o RouteSpecPtrOutput) TcpRoute() RouteSpecTcpRoutePtrOutput { + return o.ApplyT(func(v *RouteSpec) *RouteSpecTcpRoute { + if v == nil { + return nil + } + return v.TcpRoute + }).(RouteSpecTcpRoutePtrOutput) +} + +type RouteSpecGrpcRoute struct { + // The action to take if a match is determined. + Action RouteSpecGrpcRouteAction `pulumi:"action"` + // The criteria for determining an gRPC request match. + Match RouteSpecGrpcRouteMatch `pulumi:"match"` + // The retry policy. + RetryPolicy *RouteSpecGrpcRouteRetryPolicy `pulumi:"retryPolicy"` + // The types of timeouts. + Timeout *RouteSpecGrpcRouteTimeout `pulumi:"timeout"` +} + +// RouteSpecGrpcRouteInput is an input type that accepts RouteSpecGrpcRouteArgs and RouteSpecGrpcRouteOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteInput` via: // -// RouteSpecHttp2RouteMatchArgs{...} +// RouteSpecGrpcRouteArgs{...} +type RouteSpecGrpcRouteInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteOutput() RouteSpecGrpcRouteOutput + ToRouteSpecGrpcRouteOutputWithContext(context.Context) RouteSpecGrpcRouteOutput +} + +type RouteSpecGrpcRouteArgs struct { + // The action to take if a match is determined. + Action RouteSpecGrpcRouteActionInput `pulumi:"action"` + // The criteria for determining an gRPC request match. + Match RouteSpecGrpcRouteMatchInput `pulumi:"match"` + // The retry policy. + RetryPolicy RouteSpecGrpcRouteRetryPolicyPtrInput `pulumi:"retryPolicy"` + // The types of timeouts. + Timeout RouteSpecGrpcRouteTimeoutPtrInput `pulumi:"timeout"` +} + +func (RouteSpecGrpcRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRoute)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRouteOutput() RouteSpecGrpcRouteOutput { + return i.ToRouteSpecGrpcRouteOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRouteOutputWithContext(ctx context.Context) RouteSpecGrpcRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteOutput) +} + +func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { + return i.ToRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteArgs) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteOutput).ToRouteSpecGrpcRoutePtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRoutePtrInput is an input type that accepts RouteSpecGrpcRouteArgs, RouteSpecGrpcRoutePtr and RouteSpecGrpcRoutePtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRoutePtrInput` via: +// +// RouteSpecGrpcRouteArgs{...} // // or: // // nil -type RouteSpecHttp2RouteMatchPtrInput interface { +type RouteSpecGrpcRoutePtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput - ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Context) RouteSpecHttp2RouteMatchPtrOutput + ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput + ToRouteSpecGrpcRoutePtrOutputWithContext(context.Context) RouteSpecGrpcRoutePtrOutput } -type routeSpecHttp2RouteMatchPtrType RouteSpecHttp2RouteMatchArgs +type routeSpecGrpcRoutePtrType RouteSpecGrpcRouteArgs -func RouteSpecHttp2RouteMatchPtr(v *RouteSpecHttp2RouteMatchArgs) RouteSpecHttp2RouteMatchPtrInput { - return (*routeSpecHttp2RouteMatchPtrType)(v) +func RouteSpecGrpcRoutePtr(v *RouteSpecGrpcRouteArgs) RouteSpecGrpcRoutePtrInput { + return (*routeSpecGrpcRoutePtrType)(v) } -func (*routeSpecHttp2RouteMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteMatch)(nil)).Elem() +func (*routeSpecGrpcRoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRoute)(nil)).Elem() } -func (i *routeSpecHttp2RouteMatchPtrType) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { - return i.ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) +func (i *routeSpecGrpcRoutePtrType) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { + return i.ToRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteMatchPtrType) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchPtrOutput) +func (i *routeSpecGrpcRoutePtrType) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRoutePtrOutput) } -type RouteSpecHttp2RouteMatchOutput struct{ *pulumi.OutputState } +type RouteSpecGrpcRouteOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatch)(nil)).Elem() +func (RouteSpecGrpcRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRoute)(nil)).Elem() } -func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchOutput() RouteSpecHttp2RouteMatchOutput { +func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRouteOutput() RouteSpecGrpcRouteOutput { return o } -func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchOutput { +func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRouteOutputWithContext(ctx context.Context) RouteSpecGrpcRouteOutput { return o } -func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { - return o.ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) +func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { + return o.ToRouteSpecGrpcRoutePtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *RouteSpecHttp2RouteMatch { +func (o RouteSpecGrpcRouteOutput) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRoute) *RouteSpecGrpcRoute { return &v - }).(RouteSpecHttp2RouteMatchPtrOutput) + }).(RouteSpecGrpcRoutePtrOutput) } -// The client request headers to match on. -func (o RouteSpecHttp2RouteMatchOutput) Headers() RouteSpecHttp2RouteMatchHeaderArrayOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatch) []RouteSpecHttp2RouteMatchHeader { return v.Headers }).(RouteSpecHttp2RouteMatchHeaderArrayOutput) +// The action to take if a match is determined. +func (o RouteSpecGrpcRouteOutput) Action() RouteSpecGrpcRouteActionOutput { + return o.ApplyT(func(v RouteSpecGrpcRoute) RouteSpecGrpcRouteAction { return v.Action }).(RouteSpecGrpcRouteActionOutput) } -// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. -func (o RouteSpecHttp2RouteMatchOutput) Method() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *string { return v.Method }).(pulumi.StringPtrOutput) +// The criteria for determining an gRPC request match. +func (o RouteSpecGrpcRouteOutput) Match() RouteSpecGrpcRouteMatchOutput { + return o.ApplyT(func(v RouteSpecGrpcRoute) RouteSpecGrpcRouteMatch { return v.Match }).(RouteSpecGrpcRouteMatchOutput) } -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttp2RouteMatchOutput) Prefix() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatch) string { return v.Prefix }).(pulumi.StringOutput) +// The retry policy. +func (o RouteSpecGrpcRouteOutput) RetryPolicy() RouteSpecGrpcRouteRetryPolicyPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRoute) *RouteSpecGrpcRouteRetryPolicy { return v.RetryPolicy }).(RouteSpecGrpcRouteRetryPolicyPtrOutput) } -// The client request header scheme to match on. Valid values: `http`, `https`. -func (o RouteSpecHttp2RouteMatchOutput) Scheme() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *string { return v.Scheme }).(pulumi.StringPtrOutput) +// The types of timeouts. +func (o RouteSpecGrpcRouteOutput) Timeout() RouteSpecGrpcRouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRoute) *RouteSpecGrpcRouteTimeout { return v.Timeout }).(RouteSpecGrpcRouteTimeoutPtrOutput) } -type RouteSpecHttp2RouteMatchPtrOutput struct{ *pulumi.OutputState } +type RouteSpecGrpcRoutePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteMatch)(nil)).Elem() +func (RouteSpecGrpcRoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRoute)(nil)).Elem() } -func (o RouteSpecHttp2RouteMatchPtrOutput) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { +func (o RouteSpecGrpcRoutePtrOutput) ToRouteSpecGrpcRoutePtrOutput() RouteSpecGrpcRoutePtrOutput { return o } -func (o RouteSpecHttp2RouteMatchPtrOutput) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { +func (o RouteSpecGrpcRoutePtrOutput) ToRouteSpecGrpcRoutePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRoutePtrOutput { return o } -func (o RouteSpecHttp2RouteMatchPtrOutput) Elem() RouteSpecHttp2RouteMatchOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) RouteSpecHttp2RouteMatch { return *v }).(RouteSpecHttp2RouteMatchOutput) +func (o RouteSpecGrpcRoutePtrOutput) Elem() RouteSpecGrpcRouteOutput { + return o.ApplyT(func(v *RouteSpecGrpcRoute) RouteSpecGrpcRoute { return *v }).(RouteSpecGrpcRouteOutput) } -// The client request headers to match on. -func (o RouteSpecHttp2RouteMatchPtrOutput) Headers() RouteSpecHttp2RouteMatchHeaderArrayOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) []RouteSpecHttp2RouteMatchHeader { +// The action to take if a match is determined. +func (o RouteSpecGrpcRoutePtrOutput) Action() RouteSpecGrpcRouteActionPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteAction { if v == nil { return nil } - return v.Headers - }).(RouteSpecHttp2RouteMatchHeaderArrayOutput) + return &v.Action + }).(RouteSpecGrpcRouteActionPtrOutput) } -// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. -func (o RouteSpecHttp2RouteMatchPtrOutput) Method() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) *string { +// The criteria for determining an gRPC request match. +func (o RouteSpecGrpcRoutePtrOutput) Match() RouteSpecGrpcRouteMatchPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteMatch { if v == nil { return nil } - return v.Method - }).(pulumi.StringPtrOutput) + return &v.Match + }).(RouteSpecGrpcRouteMatchPtrOutput) } -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttp2RouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) *string { +// The retry policy. +func (o RouteSpecGrpcRoutePtrOutput) RetryPolicy() RouteSpecGrpcRouteRetryPolicyPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteRetryPolicy { if v == nil { return nil } - return &v.Prefix - }).(pulumi.StringPtrOutput) + return v.RetryPolicy + }).(RouteSpecGrpcRouteRetryPolicyPtrOutput) } -// The client request header scheme to match on. Valid values: `http`, `https`. -func (o RouteSpecHttp2RouteMatchPtrOutput) Scheme() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) *string { +// The types of timeouts. +func (o RouteSpecGrpcRoutePtrOutput) Timeout() RouteSpecGrpcRouteTimeoutPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRoute) *RouteSpecGrpcRouteTimeout { if v == nil { return nil } - return v.Scheme - }).(pulumi.StringPtrOutput) + return v.Timeout + }).(RouteSpecGrpcRouteTimeoutPtrOutput) } -type RouteSpecHttp2RouteMatchHeader struct { - // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - Invert *bool `pulumi:"invert"` - // The method and value to match the header value sent with a request. Specify one match method. - Match *RouteSpecHttp2RouteMatchHeaderMatch `pulumi:"match"` - // A name for the HTTP header in the client request that will be matched on. - Name string `pulumi:"name"` +type RouteSpecGrpcRouteAction struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets []RouteSpecGrpcRouteActionWeightedTarget `pulumi:"weightedTargets"` } -// RouteSpecHttp2RouteMatchHeaderInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderArgs and RouteSpecHttp2RouteMatchHeaderOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderInput` via: +// RouteSpecGrpcRouteActionInput is an input type that accepts RouteSpecGrpcRouteActionArgs and RouteSpecGrpcRouteActionOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteActionInput` via: // -// RouteSpecHttp2RouteMatchHeaderArgs{...} -type RouteSpecHttp2RouteMatchHeaderInput interface { +// RouteSpecGrpcRouteActionArgs{...} +type RouteSpecGrpcRouteActionInput interface { pulumi.Input - ToRouteSpecHttp2RouteMatchHeaderOutput() RouteSpecHttp2RouteMatchHeaderOutput - ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderOutput + ToRouteSpecGrpcRouteActionOutput() RouteSpecGrpcRouteActionOutput + ToRouteSpecGrpcRouteActionOutputWithContext(context.Context) RouteSpecGrpcRouteActionOutput } -type RouteSpecHttp2RouteMatchHeaderArgs struct { - // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - Invert pulumi.BoolPtrInput `pulumi:"invert"` - // The method and value to match the header value sent with a request. Specify one match method. - Match RouteSpecHttp2RouteMatchHeaderMatchPtrInput `pulumi:"match"` - // A name for the HTTP header in the client request that will be matched on. - Name pulumi.StringInput `pulumi:"name"` +type RouteSpecGrpcRouteActionArgs struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets RouteSpecGrpcRouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` } -func (RouteSpecHttp2RouteMatchHeaderArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +func (RouteSpecGrpcRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteAction)(nil)).Elem() } -func (i RouteSpecHttp2RouteMatchHeaderArgs) ToRouteSpecHttp2RouteMatchHeaderOutput() RouteSpecHttp2RouteMatchHeaderOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(context.Background()) +func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionOutput() RouteSpecGrpcRouteActionOutput { + return i.ToRouteSpecGrpcRouteActionOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteMatchHeaderArgs) ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderOutput) +func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionOutput) } -// RouteSpecHttp2RouteMatchHeaderArrayInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderArray and RouteSpecHttp2RouteMatchHeaderArrayOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderArrayInput` via: +func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { + return i.ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteActionArgs) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionOutput).ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteActionPtrInput is an input type that accepts RouteSpecGrpcRouteActionArgs, RouteSpecGrpcRouteActionPtr and RouteSpecGrpcRouteActionPtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteActionPtrInput` via: // -// RouteSpecHttp2RouteMatchHeaderArray{ RouteSpecHttp2RouteMatchHeaderArgs{...} } -type RouteSpecHttp2RouteMatchHeaderArrayInput interface { +// RouteSpecGrpcRouteActionArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteActionPtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteMatchHeaderArrayOutput() RouteSpecHttp2RouteMatchHeaderArrayOutput - ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderArrayOutput + ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput + ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Context) RouteSpecGrpcRouteActionPtrOutput } -type RouteSpecHttp2RouteMatchHeaderArray []RouteSpecHttp2RouteMatchHeaderInput +type routeSpecGrpcRouteActionPtrType RouteSpecGrpcRouteActionArgs -func (RouteSpecHttp2RouteMatchHeaderArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +func RouteSpecGrpcRouteActionPtr(v *RouteSpecGrpcRouteActionArgs) RouteSpecGrpcRouteActionPtrInput { + return (*routeSpecGrpcRouteActionPtrType)(v) } -func (i RouteSpecHttp2RouteMatchHeaderArray) ToRouteSpecHttp2RouteMatchHeaderArrayOutput() RouteSpecHttp2RouteMatchHeaderArrayOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(context.Background()) +func (*routeSpecGrpcRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteAction)(nil)).Elem() } -func (i RouteSpecHttp2RouteMatchHeaderArray) ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderArrayOutput) +func (i *routeSpecGrpcRouteActionPtrType) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { + return i.ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) } -type RouteSpecHttp2RouteMatchHeaderOutput struct{ *pulumi.OutputState } +func (i *routeSpecGrpcRouteActionPtrType) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionPtrOutput) +} -func (RouteSpecHttp2RouteMatchHeaderOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +type RouteSpecGrpcRouteActionOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteAction)(nil)).Elem() } -func (o RouteSpecHttp2RouteMatchHeaderOutput) ToRouteSpecHttp2RouteMatchHeaderOutput() RouteSpecHttp2RouteMatchHeaderOutput { +func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionOutput() RouteSpecGrpcRouteActionOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderOutput) ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderOutput { +func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionOutput { return o } -// If `true`, the match is on the opposite of the `match` method and value. Default is `false`. -func (o RouteSpecHttp2RouteMatchHeaderOutput) Invert() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeader) *bool { return v.Invert }).(pulumi.BoolPtrOutput) +func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { + return o.ToRouteSpecGrpcRouteActionPtrOutputWithContext(context.Background()) } -// The method and value to match the header value sent with a request. Specify one match method. -func (o RouteSpecHttp2RouteMatchHeaderOutput) Match() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeader) *RouteSpecHttp2RouteMatchHeaderMatch { return v.Match }).(RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) +func (o RouteSpecGrpcRouteActionOutput) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteAction) *RouteSpecGrpcRouteAction { + return &v + }).(RouteSpecGrpcRouteActionPtrOutput) } -// A name for the HTTP header in the client request that will be matched on. -func (o RouteSpecHttp2RouteMatchHeaderOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeader) string { return v.Name }).(pulumi.StringOutput) +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecGrpcRouteActionOutput) WeightedTargets() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteAction) []RouteSpecGrpcRouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecGrpcRouteActionWeightedTargetArrayOutput) } -type RouteSpecHttp2RouteMatchHeaderArrayOutput struct{ *pulumi.OutputState } +type RouteSpecGrpcRouteActionPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteMatchHeaderArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +func (RouteSpecGrpcRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteAction)(nil)).Elem() } -func (o RouteSpecHttp2RouteMatchHeaderArrayOutput) ToRouteSpecHttp2RouteMatchHeaderArrayOutput() RouteSpecHttp2RouteMatchHeaderArrayOutput { +func (o RouteSpecGrpcRouteActionPtrOutput) ToRouteSpecGrpcRouteActionPtrOutput() RouteSpecGrpcRouteActionPtrOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderArrayOutput) ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderArrayOutput { +func (o RouteSpecGrpcRouteActionPtrOutput) ToRouteSpecGrpcRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionPtrOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderArrayOutput) Index(i pulumi.IntInput) RouteSpecHttp2RouteMatchHeaderOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttp2RouteMatchHeader { - return vs[0].([]RouteSpecHttp2RouteMatchHeader)[vs[1].(int)] - }).(RouteSpecHttp2RouteMatchHeaderOutput) +func (o RouteSpecGrpcRouteActionPtrOutput) Elem() RouteSpecGrpcRouteActionOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteAction) RouteSpecGrpcRouteAction { return *v }).(RouteSpecGrpcRouteActionOutput) } -type RouteSpecHttp2RouteMatchHeaderMatch struct { - // The value sent by the client must match the specified value exactly. - Exact *string `pulumi:"exact"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix *string `pulumi:"prefix"` - // The object that specifies the range of numbers that the value sent by the client must be included in. - Range *RouteSpecHttp2RouteMatchHeaderMatchRange `pulumi:"range"` - // The value sent by the client must include the specified characters. - Regex *string `pulumi:"regex"` - // The value sent by the client must end with the specified characters. - Suffix *string `pulumi:"suffix"` +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecGrpcRouteActionPtrOutput) WeightedTargets() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteAction) []RouteSpecGrpcRouteActionWeightedTarget { + if v == nil { + return nil + } + return v.WeightedTargets + }).(RouteSpecGrpcRouteActionWeightedTargetArrayOutput) } -// RouteSpecHttp2RouteMatchHeaderMatchInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchArgs and RouteSpecHttp2RouteMatchHeaderMatchOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchInput` via: -// -// RouteSpecHttp2RouteMatchHeaderMatchArgs{...} -type RouteSpecHttp2RouteMatchHeaderMatchInput interface { - pulumi.Input - - ToRouteSpecHttp2RouteMatchHeaderMatchOutput() RouteSpecHttp2RouteMatchHeaderMatchOutput - ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchOutput +type RouteSpecGrpcRouteActionWeightedTarget struct { + // The virtual node to associate with the weighted target. + VirtualNode string `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight int `pulumi:"weight"` } -type RouteSpecHttp2RouteMatchHeaderMatchArgs struct { - // The value sent by the client must match the specified value exactly. - Exact pulumi.StringPtrInput `pulumi:"exact"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix pulumi.StringPtrInput `pulumi:"prefix"` - // The object that specifies the range of numbers that the value sent by the client must be included in. - Range RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput `pulumi:"range"` - // The value sent by the client must include the specified characters. - Regex pulumi.StringPtrInput `pulumi:"regex"` - // The value sent by the client must end with the specified characters. - Suffix pulumi.StringPtrInput `pulumi:"suffix"` -} +// RouteSpecGrpcRouteActionWeightedTargetInput is an input type that accepts RouteSpecGrpcRouteActionWeightedTargetArgs and RouteSpecGrpcRouteActionWeightedTargetOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteActionWeightedTargetInput` via: +// +// RouteSpecGrpcRouteActionWeightedTargetArgs{...} +type RouteSpecGrpcRouteActionWeightedTargetInput interface { + pulumi.Input -func (RouteSpecHttp2RouteMatchHeaderMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() + ToRouteSpecGrpcRouteActionWeightedTargetOutput() RouteSpecGrpcRouteActionWeightedTargetOutput + ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecGrpcRouteActionWeightedTargetOutput } -func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchOutput() RouteSpecHttp2RouteMatchHeaderMatchOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(context.Background()) +type RouteSpecGrpcRouteActionWeightedTargetArgs struct { + // The virtual node to associate with the weighted target. + VirtualNode pulumi.StringInput `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight pulumi.IntInput `pulumi:"weight"` } -func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchOutput) +func (RouteSpecGrpcRouteActionWeightedTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() } -func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +func (i RouteSpecGrpcRouteActionWeightedTargetArgs) ToRouteSpecGrpcRouteActionWeightedTargetOutput() RouteSpecGrpcRouteActionWeightedTargetOutput { + return i.ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchOutput).ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx) +func (i RouteSpecGrpcRouteActionWeightedTargetArgs) ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionWeightedTargetOutput) } -// RouteSpecHttp2RouteMatchHeaderMatchPtrInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchArgs, RouteSpecHttp2RouteMatchHeaderMatchPtr and RouteSpecHttp2RouteMatchHeaderMatchPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchPtrInput` via: -// -// RouteSpecHttp2RouteMatchHeaderMatchArgs{...} -// -// or: +// RouteSpecGrpcRouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecGrpcRouteActionWeightedTargetArray and RouteSpecGrpcRouteActionWeightedTargetArrayOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteActionWeightedTargetArrayInput` via: // -// nil -type RouteSpecHttp2RouteMatchHeaderMatchPtrInput interface { +// RouteSpecGrpcRouteActionWeightedTargetArray{ RouteSpecGrpcRouteActionWeightedTargetArgs{...} } +type RouteSpecGrpcRouteActionWeightedTargetArrayInput interface { pulumi.Input - ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput - ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput + ToRouteSpecGrpcRouteActionWeightedTargetArrayOutput() RouteSpecGrpcRouteActionWeightedTargetArrayOutput + ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecGrpcRouteActionWeightedTargetArrayOutput } -type routeSpecHttp2RouteMatchHeaderMatchPtrType RouteSpecHttp2RouteMatchHeaderMatchArgs - -func RouteSpecHttp2RouteMatchHeaderMatchPtr(v *RouteSpecHttp2RouteMatchHeaderMatchArgs) RouteSpecHttp2RouteMatchHeaderMatchPtrInput { - return (*routeSpecHttp2RouteMatchHeaderMatchPtrType)(v) -} +type RouteSpecGrpcRouteActionWeightedTargetArray []RouteSpecGrpcRouteActionWeightedTargetInput -func (*routeSpecHttp2RouteMatchHeaderMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() +func (RouteSpecGrpcRouteActionWeightedTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() } -func (i *routeSpecHttp2RouteMatchHeaderMatchPtrType) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +func (i RouteSpecGrpcRouteActionWeightedTargetArray) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutput() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { + return i.ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteMatchHeaderMatchPtrType) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) +func (i RouteSpecGrpcRouteActionWeightedTargetArray) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteActionWeightedTargetArrayOutput) } -type RouteSpecHttp2RouteMatchHeaderMatchOutput struct{ *pulumi.OutputState } +type RouteSpecGrpcRouteActionWeightedTargetOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteMatchHeaderMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() +func (RouteSpecGrpcRouteActionWeightedTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() } -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchOutput() RouteSpecHttp2RouteMatchHeaderMatchOutput { +func (o RouteSpecGrpcRouteActionWeightedTargetOutput) ToRouteSpecGrpcRouteActionWeightedTargetOutput() RouteSpecGrpcRouteActionWeightedTargetOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchOutput { +func (o RouteSpecGrpcRouteActionWeightedTargetOutput) ToRouteSpecGrpcRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { - return o.ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +// The virtual node to associate with the weighted target. +func (o RouteSpecGrpcRouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) } -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatch { - return &v - }).(RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) +// The relative weight of the weighted target. An integer between 0 and 100. +func (o RouteSpecGrpcRouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) } -// The value sent by the client must match the specified value exactly. -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) +type RouteSpecGrpcRouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecGrpcRouteActionWeightedTarget)(nil)).Elem() } -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) -} - -// The object that specifies the range of numbers that the value sent by the client must be included in. -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Range() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatchRange { return v.Range }).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) -} - -// The value sent by the client must include the specified characters. -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Regex() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must end with the specified characters. -func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Suffix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) -} - -type RouteSpecHttp2RouteMatchHeaderMatchPtrOutput struct{ *pulumi.OutputState } - -func (RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() -} - -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { +func (o RouteSpecGrpcRouteActionWeightedTargetArrayOutput) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutput() RouteSpecGrpcRouteActionWeightedTargetArrayOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { +func (o RouteSpecGrpcRouteActionWeightedTargetArrayOutput) ToRouteSpecGrpcRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteActionWeightedTargetArrayOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Elem() RouteSpecHttp2RouteMatchHeaderMatchOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) RouteSpecHttp2RouteMatchHeaderMatch { return *v }).(RouteSpecHttp2RouteMatchHeaderMatchOutput) -} - -// The value sent by the client must match the specified value exactly. -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { - if v == nil { - return nil - } - return v.Exact - }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { - if v == nil { - return nil - } - return v.Prefix - }).(pulumi.StringPtrOutput) -} - -// The object that specifies the range of numbers that the value sent by the client must be included in. -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Range() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatchRange { - if v == nil { - return nil - } - return v.Range - }).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) -} - -// The value sent by the client must include the specified characters. -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Regex() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { - if v == nil { - return nil - } - return v.Regex - }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must end with the specified characters. -func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Suffix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { - if v == nil { - return nil - } - return v.Suffix - }).(pulumi.StringPtrOutput) +func (o RouteSpecGrpcRouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecGrpcRouteActionWeightedTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecGrpcRouteActionWeightedTarget { + return vs[0].([]RouteSpecGrpcRouteActionWeightedTarget)[vs[1].(int)] + }).(RouteSpecGrpcRouteActionWeightedTargetOutput) } -type RouteSpecHttp2RouteMatchHeaderMatchRange struct { - // The end of the range. - End int `pulumi:"end"` - // The start of the range. - Start int `pulumi:"start"` +type RouteSpecGrpcRouteMatch struct { + // The data to match from the gRPC request. + Metadatas []RouteSpecGrpcRouteMatchMetadata `pulumi:"metadatas"` + // The method name to match from the request. If you specify a name, you must also specify a `serviceName`. + MethodName *string `pulumi:"methodName"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix *string `pulumi:"prefix"` + // The fully qualified domain name for the service to match from the request. + ServiceName *string `pulumi:"serviceName"` } -// RouteSpecHttp2RouteMatchHeaderMatchRangeInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchRangeArgs and RouteSpecHttp2RouteMatchHeaderMatchRangeOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchRangeInput` via: +// RouteSpecGrpcRouteMatchInput is an input type that accepts RouteSpecGrpcRouteMatchArgs and RouteSpecGrpcRouteMatchOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchInput` via: // -// RouteSpecHttp2RouteMatchHeaderMatchRangeArgs{...} -type RouteSpecHttp2RouteMatchHeaderMatchRangeInput interface { +// RouteSpecGrpcRouteMatchArgs{...} +type RouteSpecGrpcRouteMatchInput interface { pulumi.Input - ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutput() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput - ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangeOutput + ToRouteSpecGrpcRouteMatchOutput() RouteSpecGrpcRouteMatchOutput + ToRouteSpecGrpcRouteMatchOutputWithContext(context.Context) RouteSpecGrpcRouteMatchOutput } -type RouteSpecHttp2RouteMatchHeaderMatchRangeArgs struct { - // The end of the range. - End pulumi.IntInput `pulumi:"end"` - // The start of the range. - Start pulumi.IntInput `pulumi:"start"` +type RouteSpecGrpcRouteMatchArgs struct { + // The data to match from the gRPC request. + Metadatas RouteSpecGrpcRouteMatchMetadataArrayInput `pulumi:"metadatas"` + // The method name to match from the request. If you specify a name, you must also specify a `serviceName`. + MethodName pulumi.StringPtrInput `pulumi:"methodName"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // The fully qualified domain name for the service to match from the request. + ServiceName pulumi.StringPtrInput `pulumi:"serviceName"` } -func (RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +func (RouteSpecGrpcRouteMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatch)(nil)).Elem() } -func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutput() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(context.Background()) +func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchOutput() RouteSpecGrpcRouteMatchOutput { + return i.ToRouteSpecGrpcRouteMatchOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) +func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchOutput) } -func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { + return i.ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchRangeOutput).ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx) +func (i RouteSpecGrpcRouteMatchArgs) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchOutput).ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx) } -// RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchRangeArgs, RouteSpecHttp2RouteMatchHeaderMatchRangePtr and RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput` via: +// RouteSpecGrpcRouteMatchPtrInput is an input type that accepts RouteSpecGrpcRouteMatchArgs, RouteSpecGrpcRouteMatchPtr and RouteSpecGrpcRouteMatchPtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchPtrInput` via: // -// RouteSpecHttp2RouteMatchHeaderMatchRangeArgs{...} +// RouteSpecGrpcRouteMatchArgs{...} // // or: // // nil -type RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput interface { +type RouteSpecGrpcRouteMatchPtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput - ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput + ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput + ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Context) RouteSpecGrpcRouteMatchPtrOutput } -type routeSpecHttp2RouteMatchHeaderMatchRangePtrType RouteSpecHttp2RouteMatchHeaderMatchRangeArgs +type routeSpecGrpcRouteMatchPtrType RouteSpecGrpcRouteMatchArgs -func RouteSpecHttp2RouteMatchHeaderMatchRangePtr(v *RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput { - return (*routeSpecHttp2RouteMatchHeaderMatchRangePtrType)(v) +func RouteSpecGrpcRouteMatchPtr(v *RouteSpecGrpcRouteMatchArgs) RouteSpecGrpcRouteMatchPtrInput { + return (*routeSpecGrpcRouteMatchPtrType)(v) } -func (*routeSpecHttp2RouteMatchHeaderMatchRangePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +func (*routeSpecGrpcRouteMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteMatch)(nil)).Elem() } -func (i *routeSpecHttp2RouteMatchHeaderMatchRangePtrType) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return i.ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +func (i *routeSpecGrpcRouteMatchPtrType) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { + return i.ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteMatchHeaderMatchRangePtrType) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) +func (i *routeSpecGrpcRouteMatchPtrType) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchPtrOutput) } -type RouteSpecHttp2RouteMatchHeaderMatchRangeOutput struct{ *pulumi.OutputState } +type RouteSpecGrpcRouteMatchOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +func (RouteSpecGrpcRouteMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatch)(nil)).Elem() } -func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutput() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { +func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchOutput() RouteSpecGrpcRouteMatchOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { +func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return o.ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { + return o.ToRouteSpecGrpcRouteMatchPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatchRange) *RouteSpecHttp2RouteMatchHeaderMatchRange { +func (o RouteSpecGrpcRouteMatchOutput) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *RouteSpecGrpcRouteMatch { return &v - }).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) + }).(RouteSpecGrpcRouteMatchPtrOutput) } -// The end of the range. -func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) End() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatchRange) int { return v.End }).(pulumi.IntOutput) +// The data to match from the gRPC request. +func (o RouteSpecGrpcRouteMatchOutput) Metadatas() RouteSpecGrpcRouteMatchMetadataArrayOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatch) []RouteSpecGrpcRouteMatchMetadata { return v.Metadatas }).(RouteSpecGrpcRouteMatchMetadataArrayOutput) } -// The start of the range. -func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) Start() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatchRange) int { return v.Start }).(pulumi.IntOutput) +// The method name to match from the request. If you specify a name, you must also specify a `serviceName`. +func (o RouteSpecGrpcRouteMatchOutput) MethodName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *string { return v.MethodName }).(pulumi.StringPtrOutput) } -type RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput struct{ *pulumi.OutputState } +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecGrpcRouteMatchOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} -func (RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +// The fully qualified domain name for the service to match from the request. +func (o RouteSpecGrpcRouteMatchOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatch) *string { return v.ServiceName }).(pulumi.StringPtrOutput) } -func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { +type RouteSpecGrpcRouteMatchPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteMatch)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteMatchPtrOutput) ToRouteSpecGrpcRouteMatchPtrOutput() RouteSpecGrpcRouteMatchPtrOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { +func (o RouteSpecGrpcRouteMatchPtrOutput) ToRouteSpecGrpcRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchPtrOutput { return o } -func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) Elem() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatchRange) RouteSpecHttp2RouteMatchHeaderMatchRange { return *v }).(RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) +func (o RouteSpecGrpcRouteMatchPtrOutput) Elem() RouteSpecGrpcRouteMatchOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) RouteSpecGrpcRouteMatch { return *v }).(RouteSpecGrpcRouteMatchOutput) } -// The end of the range. -func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) End() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatchRange) *int { +// The data to match from the gRPC request. +func (o RouteSpecGrpcRouteMatchPtrOutput) Metadatas() RouteSpecGrpcRouteMatchMetadataArrayOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) []RouteSpecGrpcRouteMatchMetadata { if v == nil { return nil } - return &v.End - }).(pulumi.IntPtrOutput) + return v.Metadatas + }).(RouteSpecGrpcRouteMatchMetadataArrayOutput) } -// The start of the range. -func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) Start() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatchRange) *int { +// The method name to match from the request. If you specify a name, you must also specify a `serviceName`. +func (o RouteSpecGrpcRouteMatchPtrOutput) MethodName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) *string { if v == nil { return nil } - return &v.Start - }).(pulumi.IntPtrOutput) + return v.MethodName + }).(pulumi.StringPtrOutput) } -type RouteSpecHttp2RouteRetryPolicy struct { +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecGrpcRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The fully qualified domain name for the service to match from the request. +func (o RouteSpecGrpcRouteMatchPtrOutput) ServiceName() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatch) *string { + if v == nil { + return nil + } + return v.ServiceName + }).(pulumi.StringPtrOutput) +} + +type RouteSpecGrpcRouteMatchMetadata struct { + // If `true`, the match is on the opposite of the `match` criteria. Default is `false`. + Invert *bool `pulumi:"invert"` + // The data to match from the request. + Match *RouteSpecGrpcRouteMatchMetadataMatch `pulumi:"match"` + // The name of the route. + Name string `pulumi:"name"` +} + +// RouteSpecGrpcRouteMatchMetadataInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataArgs and RouteSpecGrpcRouteMatchMetadataOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataInput` via: +// +// RouteSpecGrpcRouteMatchMetadataArgs{...} +type RouteSpecGrpcRouteMatchMetadataInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteMatchMetadataOutput() RouteSpecGrpcRouteMatchMetadataOutput + ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataOutput +} + +type RouteSpecGrpcRouteMatchMetadataArgs struct { + // If `true`, the match is on the opposite of the `match` criteria. Default is `false`. + Invert pulumi.BoolPtrInput `pulumi:"invert"` + // The data to match from the request. + Match RouteSpecGrpcRouteMatchMetadataMatchPtrInput `pulumi:"match"` + // The name of the route. + Name pulumi.StringInput `pulumi:"name"` +} + +func (RouteSpecGrpcRouteMatchMetadataArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteMatchMetadataArgs) ToRouteSpecGrpcRouteMatchMetadataOutput() RouteSpecGrpcRouteMatchMetadataOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteMatchMetadataArgs) ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataOutput) +} + +// RouteSpecGrpcRouteMatchMetadataArrayInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataArray and RouteSpecGrpcRouteMatchMetadataArrayOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataArrayInput` via: +// +// RouteSpecGrpcRouteMatchMetadataArray{ RouteSpecGrpcRouteMatchMetadataArgs{...} } +type RouteSpecGrpcRouteMatchMetadataArrayInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteMatchMetadataArrayOutput() RouteSpecGrpcRouteMatchMetadataArrayOutput + ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataArrayOutput +} + +type RouteSpecGrpcRouteMatchMetadataArray []RouteSpecGrpcRouteMatchMetadataInput + +func (RouteSpecGrpcRouteMatchMetadataArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteMatchMetadataArray) ToRouteSpecGrpcRouteMatchMetadataArrayOutput() RouteSpecGrpcRouteMatchMetadataArrayOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteMatchMetadataArray) ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataArrayOutput) +} + +type RouteSpecGrpcRouteMatchMetadataOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteMatchMetadataOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteMatchMetadataOutput) ToRouteSpecGrpcRouteMatchMetadataOutput() RouteSpecGrpcRouteMatchMetadataOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataOutput) ToRouteSpecGrpcRouteMatchMetadataOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataOutput { + return o +} + +// If `true`, the match is on the opposite of the `match` criteria. Default is `false`. +func (o RouteSpecGrpcRouteMatchMetadataOutput) Invert() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadata) *bool { return v.Invert }).(pulumi.BoolPtrOutput) +} + +// The data to match from the request. +func (o RouteSpecGrpcRouteMatchMetadataOutput) Match() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadata) *RouteSpecGrpcRouteMatchMetadataMatch { return v.Match }).(RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) +} + +// The name of the route. +func (o RouteSpecGrpcRouteMatchMetadataOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadata) string { return v.Name }).(pulumi.StringOutput) +} + +type RouteSpecGrpcRouteMatchMetadataArrayOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteMatchMetadataArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecGrpcRouteMatchMetadata)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteMatchMetadataArrayOutput) ToRouteSpecGrpcRouteMatchMetadataArrayOutput() RouteSpecGrpcRouteMatchMetadataArrayOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataArrayOutput) ToRouteSpecGrpcRouteMatchMetadataArrayOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataArrayOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataArrayOutput) Index(i pulumi.IntInput) RouteSpecGrpcRouteMatchMetadataOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecGrpcRouteMatchMetadata { + return vs[0].([]RouteSpecGrpcRouteMatchMetadata)[vs[1].(int)] + }).(RouteSpecGrpcRouteMatchMetadataOutput) +} + +type RouteSpecGrpcRouteMatchMetadataMatch struct { + // The value sent by the client must match the specified value exactly. + Exact *string `pulumi:"exact"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix *string `pulumi:"prefix"` + // The object that specifies the range of numbers that the value sent by the client must be included in. + Range *RouteSpecGrpcRouteMatchMetadataMatchRange `pulumi:"range"` + // The value sent by the client must include the specified characters. + Regex *string `pulumi:"regex"` + // The value sent by the client must end with the specified characters. + Suffix *string `pulumi:"suffix"` +} + +// RouteSpecGrpcRouteMatchMetadataMatchInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchArgs and RouteSpecGrpcRouteMatchMetadataMatchOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchInput` via: +// +// RouteSpecGrpcRouteMatchMetadataMatchArgs{...} +type RouteSpecGrpcRouteMatchMetadataMatchInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteMatchMetadataMatchOutput() RouteSpecGrpcRouteMatchMetadataMatchOutput + ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchOutput +} + +type RouteSpecGrpcRouteMatchMetadataMatchArgs struct { + // The value sent by the client must match the specified value exactly. + Exact pulumi.StringPtrInput `pulumi:"exact"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // The object that specifies the range of numbers that the value sent by the client must be included in. + Range RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput `pulumi:"range"` + // The value sent by the client must include the specified characters. + Regex pulumi.StringPtrInput `pulumi:"regex"` + // The value sent by the client must end with the specified characters. + Suffix pulumi.StringPtrInput `pulumi:"suffix"` +} + +func (RouteSpecGrpcRouteMatchMetadataMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchOutput() RouteSpecGrpcRouteMatchMetadataMatchOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchOutput) +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchArgs) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchOutput).ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteMatchMetadataMatchPtrInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchArgs, RouteSpecGrpcRouteMatchMetadataMatchPtr and RouteSpecGrpcRouteMatchMetadataMatchPtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchPtrInput` via: +// +// RouteSpecGrpcRouteMatchMetadataMatchArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteMatchMetadataMatchPtrInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput + ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput +} + +type routeSpecGrpcRouteMatchMetadataMatchPtrType RouteSpecGrpcRouteMatchMetadataMatchArgs + +func RouteSpecGrpcRouteMatchMetadataMatchPtr(v *RouteSpecGrpcRouteMatchMetadataMatchArgs) RouteSpecGrpcRouteMatchMetadataMatchPtrInput { + return (*routeSpecGrpcRouteMatchMetadataMatchPtrType)(v) +} + +func (*routeSpecGrpcRouteMatchMetadataMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +} + +func (i *routeSpecGrpcRouteMatchMetadataMatchPtrType) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecGrpcRouteMatchMetadataMatchPtrType) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) +} + +type RouteSpecGrpcRouteMatchMetadataMatchOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteMatchMetadataMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchOutput() RouteSpecGrpcRouteMatchMetadataMatchOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return o.ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatch { + return &v + }).(RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) +} + +// The value sent by the client must match the specified value exactly. +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Exact() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// The object that specifies the range of numbers that the value sent by the client must be included in. +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Range() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatchRange { + return v.Range + }).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) +} + +// The value sent by the client must include the specified characters. +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Regex() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must end with the specified characters. +func (o RouteSpecGrpcRouteMatchMetadataMatchOutput) Suffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) +} + +type RouteSpecGrpcRouteMatchMetadataMatchPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatch)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutput() RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Elem() RouteSpecGrpcRouteMatchMetadataMatchOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) RouteSpecGrpcRouteMatchMetadataMatch { return *v }).(RouteSpecGrpcRouteMatchMetadataMatchOutput) +} + +// The value sent by the client must match the specified value exactly. +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Exact() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { + if v == nil { + return nil + } + return v.Exact + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The object that specifies the range of numbers that the value sent by the client must be included in. +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Range() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *RouteSpecGrpcRouteMatchMetadataMatchRange { + if v == nil { + return nil + } + return v.Range + }).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) +} + +// The value sent by the client must include the specified characters. +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Regex() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { + if v == nil { + return nil + } + return v.Regex + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must end with the specified characters. +func (o RouteSpecGrpcRouteMatchMetadataMatchPtrOutput) Suffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatch) *string { + if v == nil { + return nil + } + return v.Suffix + }).(pulumi.StringPtrOutput) +} + +type RouteSpecGrpcRouteMatchMetadataMatchRange struct { + // The end of the range. + End int `pulumi:"end"` + // The start of the range. + Start int `pulumi:"start"` +} + +// RouteSpecGrpcRouteMatchMetadataMatchRangeInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchRangeArgs and RouteSpecGrpcRouteMatchMetadataMatchRangeOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchRangeInput` via: +// +// RouteSpecGrpcRouteMatchMetadataMatchRangeArgs{...} +type RouteSpecGrpcRouteMatchMetadataMatchRangeInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutput() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput + ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangeOutput +} + +type RouteSpecGrpcRouteMatchMetadataMatchRangeArgs struct { + // The end of the range. + End pulumi.IntInput `pulumi:"end"` + // The start of the range. + Start pulumi.IntInput `pulumi:"start"` +} + +func (RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutput() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchRangeOutput).ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput is an input type that accepts RouteSpecGrpcRouteMatchMetadataMatchRangeArgs, RouteSpecGrpcRouteMatchMetadataMatchRangePtr and RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput` via: +// +// RouteSpecGrpcRouteMatchMetadataMatchRangeArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput + ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput +} + +type routeSpecGrpcRouteMatchMetadataMatchRangePtrType RouteSpecGrpcRouteMatchMetadataMatchRangeArgs + +func RouteSpecGrpcRouteMatchMetadataMatchRangePtr(v *RouteSpecGrpcRouteMatchMetadataMatchRangeArgs) RouteSpecGrpcRouteMatchMetadataMatchRangePtrInput { + return (*routeSpecGrpcRouteMatchMetadataMatchRangePtrType)(v) +} + +func (*routeSpecGrpcRouteMatchMetadataMatchRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +} + +func (i *routeSpecGrpcRouteMatchMetadataMatchRangePtrType) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return i.ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecGrpcRouteMatchMetadataMatchRangePtrType) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) +} + +type RouteSpecGrpcRouteMatchMetadataMatchRangeOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutput() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangeOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return o.ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatchRange) *RouteSpecGrpcRouteMatchMetadataMatchRange { + return &v + }).(RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) +} + +// The end of the range. +func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) End() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatchRange) int { return v.End }).(pulumi.IntOutput) +} + +// The start of the range. +func (o RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) Start() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteMatchMetadataMatchRange) int { return v.Start }).(pulumi.IntOutput) +} + +type RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteMatchMetadataMatchRange)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput() RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) ToRouteSpecGrpcRouteMatchMetadataMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput { + return o +} + +func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) Elem() RouteSpecGrpcRouteMatchMetadataMatchRangeOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatchRange) RouteSpecGrpcRouteMatchMetadataMatchRange { + return *v + }).(RouteSpecGrpcRouteMatchMetadataMatchRangeOutput) +} + +// The end of the range. +func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) End() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatchRange) *int { + if v == nil { + return nil + } + return &v.End + }).(pulumi.IntPtrOutput) +} + +// The start of the range. +func (o RouteSpecGrpcRouteMatchMetadataMatchRangePtrOutput) Start() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteMatchMetadataMatchRange) *int { + if v == nil { + return nil + } + return &v.Start + }).(pulumi.IntPtrOutput) +} + +type RouteSpecGrpcRouteRetryPolicy struct { + // List of gRPC retry events. + // Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. + GrpcRetryEvents []string `pulumi:"grpcRetryEvents"` + // List of HTTP retry events. + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + HttpRetryEvents []string `pulumi:"httpRetryEvents"` + // The maximum number of retries. + MaxRetries int `pulumi:"maxRetries"` + // The per-retry timeout. + PerRetryTimeout RouteSpecGrpcRouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` + // List of TCP retry events. The only valid value is `connection-error`. + TcpRetryEvents []string `pulumi:"tcpRetryEvents"` +} + +// RouteSpecGrpcRouteRetryPolicyInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyArgs and RouteSpecGrpcRouteRetryPolicyOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyInput` via: +// +// RouteSpecGrpcRouteRetryPolicyArgs{...} +type RouteSpecGrpcRouteRetryPolicyInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteRetryPolicyOutput() RouteSpecGrpcRouteRetryPolicyOutput + ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyOutput +} + +type RouteSpecGrpcRouteRetryPolicyArgs struct { + // List of gRPC retry events. + // Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. + GrpcRetryEvents pulumi.StringArrayInput `pulumi:"grpcRetryEvents"` + // List of HTTP retry events. + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` + // The maximum number of retries. + MaxRetries pulumi.IntInput `pulumi:"maxRetries"` + // The per-retry timeout. + PerRetryTimeout RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` + // List of TCP retry events. The only valid value is `connection-error`. + TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` +} + +func (RouteSpecGrpcRouteRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyOutput() RouteSpecGrpcRouteRetryPolicyOutput { + return i.ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyOutput) +} + +func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { + return i.ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteRetryPolicyArgs) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyOutput).ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteRetryPolicyPtrInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyArgs, RouteSpecGrpcRouteRetryPolicyPtr and RouteSpecGrpcRouteRetryPolicyPtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyPtrInput` via: +// +// RouteSpecGrpcRouteRetryPolicyArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteRetryPolicyPtrInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput + ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput +} + +type routeSpecGrpcRouteRetryPolicyPtrType RouteSpecGrpcRouteRetryPolicyArgs + +func RouteSpecGrpcRouteRetryPolicyPtr(v *RouteSpecGrpcRouteRetryPolicyArgs) RouteSpecGrpcRouteRetryPolicyPtrInput { + return (*routeSpecGrpcRouteRetryPolicyPtrType)(v) +} + +func (*routeSpecGrpcRouteRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +} + +func (i *routeSpecGrpcRouteRetryPolicyPtrType) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { + return i.ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecGrpcRouteRetryPolicyPtrType) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPtrOutput) +} + +type RouteSpecGrpcRouteRetryPolicyOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyOutput() RouteSpecGrpcRouteRetryPolicyOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { + return o.ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecGrpcRouteRetryPolicyOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) *RouteSpecGrpcRouteRetryPolicy { + return &v + }).(RouteSpecGrpcRouteRetryPolicyPtrOutput) +} + +// List of gRPC retry events. +// Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. +func (o RouteSpecGrpcRouteRetryPolicyOutput) GrpcRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.GrpcRetryEvents }).(pulumi.StringArrayOutput) +} + +// List of HTTP retry events. +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +func (o RouteSpecGrpcRouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) +} + +// The maximum number of retries. +func (o RouteSpecGrpcRouteRetryPolicyOutput) MaxRetries() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) int { return v.MaxRetries }).(pulumi.IntOutput) +} + +// The per-retry timeout. +func (o RouteSpecGrpcRouteRetryPolicyOutput) PerRetryTimeout() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { + return v.PerRetryTimeout + }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) +} + +// List of TCP retry events. The only valid value is `connection-error`. +func (o RouteSpecGrpcRouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) +} + +type RouteSpecGrpcRouteRetryPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicy)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutput() RouteSpecGrpcRouteRetryPolicyPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) Elem() RouteSpecGrpcRouteRetryPolicyOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) RouteSpecGrpcRouteRetryPolicy { return *v }).(RouteSpecGrpcRouteRetryPolicyOutput) +} + +// List of gRPC retry events. +// Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) GrpcRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { + if v == nil { + return nil + } + return v.GrpcRetryEvents + }).(pulumi.StringArrayOutput) +} + +// List of HTTP retry events. +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { + if v == nil { + return nil + } + return v.HttpRetryEvents + }).(pulumi.StringArrayOutput) +} + +// The maximum number of retries. +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) MaxRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) *int { + if v == nil { + return nil + } + return &v.MaxRetries + }).(pulumi.IntPtrOutput) +} + +// The per-retry timeout. +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { + if v == nil { + return nil + } + return &v.PerRetryTimeout + }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +// List of TCP retry events. The only valid value is `connection-error`. +func (o RouteSpecGrpcRouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicy) []string { + if v == nil { + return nil + } + return v.TcpRetryEvents + }).(pulumi.StringArrayOutput) +} + +type RouteSpecGrpcRouteRetryPolicyPerRetryTimeout struct { + // Retry unit. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // Retry value. + Value int `pulumi:"value"` +} + +// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs and RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput` via: +// +// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs{...} +type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput + ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput +} + +type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs struct { + // Retry unit. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // Retry value. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { + return i.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) +} + +func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return i.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput).ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput is an input type that accepts RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs, RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtr and RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput` via: +// +// RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput + ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput +} + +type routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs + +func RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtr(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrInput { + return (*routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType)(v) +} + +func (*routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (i *routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return i.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { + return &v + }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +// Retry unit. Valid values: `ms`, `s`. +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) string { return v.Unit }).(pulumi.StringOutput) +} + +// Retry value. +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) Elem() RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) RouteSpecGrpcRouteRetryPolicyPerRetryTimeout { + return *v + }).(RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutOutput) +} + +// Retry unit. Valid values: `ms`, `s`. +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// Retry value. +func (o RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteRetryPolicyPerRetryTimeout) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecGrpcRouteTimeout struct { + // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + Idle *RouteSpecGrpcRouteTimeoutIdle `pulumi:"idle"` + // The per request timeout. + PerRequest *RouteSpecGrpcRouteTimeoutPerRequest `pulumi:"perRequest"` +} + +// RouteSpecGrpcRouteTimeoutInput is an input type that accepts RouteSpecGrpcRouteTimeoutArgs and RouteSpecGrpcRouteTimeoutOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutInput` via: +// +// RouteSpecGrpcRouteTimeoutArgs{...} +type RouteSpecGrpcRouteTimeoutInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteTimeoutOutput() RouteSpecGrpcRouteTimeoutOutput + ToRouteSpecGrpcRouteTimeoutOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutOutput +} + +type RouteSpecGrpcRouteTimeoutArgs struct { + // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + Idle RouteSpecGrpcRouteTimeoutIdlePtrInput `pulumi:"idle"` + // The per request timeout. + PerRequest RouteSpecGrpcRouteTimeoutPerRequestPtrInput `pulumi:"perRequest"` +} + +func (RouteSpecGrpcRouteTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteTimeout)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutOutput() RouteSpecGrpcRouteTimeoutOutput { + return i.ToRouteSpecGrpcRouteTimeoutOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutOutput) +} + +func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { + return i.ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteTimeoutArgs) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutOutput).ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteTimeoutPtrInput is an input type that accepts RouteSpecGrpcRouteTimeoutArgs, RouteSpecGrpcRouteTimeoutPtr and RouteSpecGrpcRouteTimeoutPtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutPtrInput` via: +// +// RouteSpecGrpcRouteTimeoutArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteTimeoutPtrInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput + ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutPtrOutput +} + +type routeSpecGrpcRouteTimeoutPtrType RouteSpecGrpcRouteTimeoutArgs + +func RouteSpecGrpcRouteTimeoutPtr(v *RouteSpecGrpcRouteTimeoutArgs) RouteSpecGrpcRouteTimeoutPtrInput { + return (*routeSpecGrpcRouteTimeoutPtrType)(v) +} + +func (*routeSpecGrpcRouteTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteTimeout)(nil)).Elem() +} + +func (i *routeSpecGrpcRouteTimeoutPtrType) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { + return i.ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecGrpcRouteTimeoutPtrType) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPtrOutput) +} + +type RouteSpecGrpcRouteTimeoutOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteTimeout)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutOutput() RouteSpecGrpcRouteTimeoutOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { + return o.ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecGrpcRouteTimeoutOutput) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeout { + return &v + }).(RouteSpecGrpcRouteTimeoutPtrOutput) +} + +// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. +func (o RouteSpecGrpcRouteTimeoutOutput) Idle() RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutIdle { return v.Idle }).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) +} + +// The per request timeout. +func (o RouteSpecGrpcRouteTimeoutOutput) PerRequest() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutPerRequest { return v.PerRequest }).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecGrpcRouteTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteTimeout)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteTimeoutPtrOutput) ToRouteSpecGrpcRouteTimeoutPtrOutput() RouteSpecGrpcRouteTimeoutPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutPtrOutput) ToRouteSpecGrpcRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutPtrOutput) Elem() RouteSpecGrpcRouteTimeoutOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeout) RouteSpecGrpcRouteTimeout { return *v }).(RouteSpecGrpcRouteTimeoutOutput) +} + +// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. +func (o RouteSpecGrpcRouteTimeoutPtrOutput) Idle() RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutIdle { + if v == nil { + return nil + } + return v.Idle + }).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) +} + +// The per request timeout. +func (o RouteSpecGrpcRouteTimeoutPtrOutput) PerRequest() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeout) *RouteSpecGrpcRouteTimeoutPerRequest { + if v == nil { + return nil + } + return v.PerRequest + }).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecGrpcRouteTimeoutIdle struct { + // The unit of time. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value int `pulumi:"value"` +} + +// RouteSpecGrpcRouteTimeoutIdleInput is an input type that accepts RouteSpecGrpcRouteTimeoutIdleArgs and RouteSpecGrpcRouteTimeoutIdleOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutIdleInput` via: +// +// RouteSpecGrpcRouteTimeoutIdleArgs{...} +type RouteSpecGrpcRouteTimeoutIdleInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteTimeoutIdleOutput() RouteSpecGrpcRouteTimeoutIdleOutput + ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutIdleOutput +} + +type RouteSpecGrpcRouteTimeoutIdleArgs struct { + // The unit of time. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecGrpcRouteTimeoutIdleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdleOutput() RouteSpecGrpcRouteTimeoutIdleOutput { + return i.ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutIdleOutput) +} + +func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return i.ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteTimeoutIdleArgs) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutIdleOutput).ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteTimeoutIdlePtrInput is an input type that accepts RouteSpecGrpcRouteTimeoutIdleArgs, RouteSpecGrpcRouteTimeoutIdlePtr and RouteSpecGrpcRouteTimeoutIdlePtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutIdlePtrInput` via: +// +// RouteSpecGrpcRouteTimeoutIdleArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteTimeoutIdlePtrInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput + ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput +} + +type routeSpecGrpcRouteTimeoutIdlePtrType RouteSpecGrpcRouteTimeoutIdleArgs + +func RouteSpecGrpcRouteTimeoutIdlePtr(v *RouteSpecGrpcRouteTimeoutIdleArgs) RouteSpecGrpcRouteTimeoutIdlePtrInput { + return (*routeSpecGrpcRouteTimeoutIdlePtrType)(v) +} + +func (*routeSpecGrpcRouteTimeoutIdlePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +} + +func (i *routeSpecGrpcRouteTimeoutIdlePtrType) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return i.ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecGrpcRouteTimeoutIdlePtrType) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) +} + +type RouteSpecGrpcRouteTimeoutIdleOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteTimeoutIdleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdleOutput() RouteSpecGrpcRouteTimeoutIdleOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdleOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return o.ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecGrpcRouteTimeoutIdleOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutIdle) *RouteSpecGrpcRouteTimeoutIdle { + return &v + }).(RouteSpecGrpcRouteTimeoutIdlePtrOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecGrpcRouteTimeoutIdleOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecGrpcRouteTimeoutIdleOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecGrpcRouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteTimeoutIdlePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutIdle)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutput() RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) ToRouteSpecGrpcRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutIdlePtrOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) Elem() RouteSpecGrpcRouteTimeoutIdleOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutIdle) RouteSpecGrpcRouteTimeoutIdle { return *v }).(RouteSpecGrpcRouteTimeoutIdleOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutIdle) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecGrpcRouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutIdle) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecGrpcRouteTimeoutPerRequest struct { + // The unit of time. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value int `pulumi:"value"` +} + +// RouteSpecGrpcRouteTimeoutPerRequestInput is an input type that accepts RouteSpecGrpcRouteTimeoutPerRequestArgs and RouteSpecGrpcRouteTimeoutPerRequestOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutPerRequestInput` via: +// +// RouteSpecGrpcRouteTimeoutPerRequestArgs{...} +type RouteSpecGrpcRouteTimeoutPerRequestInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteTimeoutPerRequestOutput() RouteSpecGrpcRouteTimeoutPerRequestOutput + ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutPerRequestOutput +} + +type RouteSpecGrpcRouteTimeoutPerRequestArgs struct { + // The unit of time. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecGrpcRouteTimeoutPerRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +} + +func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestOutput() RouteSpecGrpcRouteTimeoutPerRequestOutput { + return i.ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPerRequestOutput) +} + +func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return i.ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecGrpcRouteTimeoutPerRequestArgs) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPerRequestOutput).ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx) +} + +// RouteSpecGrpcRouteTimeoutPerRequestPtrInput is an input type that accepts RouteSpecGrpcRouteTimeoutPerRequestArgs, RouteSpecGrpcRouteTimeoutPerRequestPtr and RouteSpecGrpcRouteTimeoutPerRequestPtrOutput values. +// You can construct a concrete instance of `RouteSpecGrpcRouteTimeoutPerRequestPtrInput` via: +// +// RouteSpecGrpcRouteTimeoutPerRequestArgs{...} +// +// or: +// +// nil +type RouteSpecGrpcRouteTimeoutPerRequestPtrInput interface { + pulumi.Input + + ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput + ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput +} + +type routeSpecGrpcRouteTimeoutPerRequestPtrType RouteSpecGrpcRouteTimeoutPerRequestArgs + +func RouteSpecGrpcRouteTimeoutPerRequestPtr(v *RouteSpecGrpcRouteTimeoutPerRequestArgs) RouteSpecGrpcRouteTimeoutPerRequestPtrInput { + return (*routeSpecGrpcRouteTimeoutPerRequestPtrType)(v) +} + +func (*routeSpecGrpcRouteTimeoutPerRequestPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +} + +func (i *routeSpecGrpcRouteTimeoutPerRequestPtrType) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return i.ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecGrpcRouteTimeoutPerRequestPtrType) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecGrpcRouteTimeoutPerRequestOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteTimeoutPerRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestOutput() RouteSpecGrpcRouteTimeoutPerRequestOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return o.ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutPerRequest) *RouteSpecGrpcRouteTimeoutPerRequest { + return &v + }).(RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutPerRequest) string { return v.Unit }).(pulumi.StringOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecGrpcRouteTimeoutPerRequestOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecGrpcRouteTimeoutPerRequest) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecGrpcRouteTimeoutPerRequestPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecGrpcRouteTimeoutPerRequest)(nil)).Elem() +} + +func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutput() RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) ToRouteSpecGrpcRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecGrpcRouteTimeoutPerRequestPtrOutput { + return o +} + +func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) Elem() RouteSpecGrpcRouteTimeoutPerRequestOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutPerRequest) RouteSpecGrpcRouteTimeoutPerRequest { return *v }).(RouteSpecGrpcRouteTimeoutPerRequestOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutPerRequest) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecGrpcRouteTimeoutPerRequestPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecGrpcRouteTimeoutPerRequest) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttp2Route struct { + // The action to take if a match is determined. + Action RouteSpecHttp2RouteAction `pulumi:"action"` + // The criteria for determining an gRPC request match. + Match RouteSpecHttp2RouteMatch `pulumi:"match"` + // The retry policy. + RetryPolicy *RouteSpecHttp2RouteRetryPolicy `pulumi:"retryPolicy"` + // The types of timeouts. + Timeout *RouteSpecHttp2RouteTimeout `pulumi:"timeout"` +} + +// RouteSpecHttp2RouteInput is an input type that accepts RouteSpecHttp2RouteArgs and RouteSpecHttp2RouteOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteInput` via: +// +// RouteSpecHttp2RouteArgs{...} +type RouteSpecHttp2RouteInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteOutput() RouteSpecHttp2RouteOutput + ToRouteSpecHttp2RouteOutputWithContext(context.Context) RouteSpecHttp2RouteOutput +} + +type RouteSpecHttp2RouteArgs struct { + // The action to take if a match is determined. + Action RouteSpecHttp2RouteActionInput `pulumi:"action"` + // The criteria for determining an gRPC request match. + Match RouteSpecHttp2RouteMatchInput `pulumi:"match"` + // The retry policy. + RetryPolicy RouteSpecHttp2RouteRetryPolicyPtrInput `pulumi:"retryPolicy"` + // The types of timeouts. + Timeout RouteSpecHttp2RouteTimeoutPtrInput `pulumi:"timeout"` +} + +func (RouteSpecHttp2RouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2Route)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RouteOutput() RouteSpecHttp2RouteOutput { + return i.ToRouteSpecHttp2RouteOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RouteOutputWithContext(ctx context.Context) RouteSpecHttp2RouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteOutput) +} + +func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { + return i.ToRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteArgs) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteOutput).ToRouteSpecHttp2RoutePtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RoutePtrInput is an input type that accepts RouteSpecHttp2RouteArgs, RouteSpecHttp2RoutePtr and RouteSpecHttp2RoutePtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RoutePtrInput` via: +// +// RouteSpecHttp2RouteArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RoutePtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput + ToRouteSpecHttp2RoutePtrOutputWithContext(context.Context) RouteSpecHttp2RoutePtrOutput +} + +type routeSpecHttp2RoutePtrType RouteSpecHttp2RouteArgs + +func RouteSpecHttp2RoutePtr(v *RouteSpecHttp2RouteArgs) RouteSpecHttp2RoutePtrInput { + return (*routeSpecHttp2RoutePtrType)(v) +} + +func (*routeSpecHttp2RoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2Route)(nil)).Elem() +} + +func (i *routeSpecHttp2RoutePtrType) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { + return i.ToRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RoutePtrType) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RoutePtrOutput) +} + +type RouteSpecHttp2RouteOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2Route)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RouteOutput() RouteSpecHttp2RouteOutput { + return o +} + +func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RouteOutputWithContext(ctx context.Context) RouteSpecHttp2RouteOutput { + return o +} + +func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { + return o.ToRouteSpecHttp2RoutePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteOutput) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { + return o.ApplyT(func(v RouteSpecHttp2Route) *RouteSpecHttp2Route { + return &v + }).(RouteSpecHttp2RoutePtrOutput) +} + +// The action to take if a match is determined. +func (o RouteSpecHttp2RouteOutput) Action() RouteSpecHttp2RouteActionOutput { + return o.ApplyT(func(v RouteSpecHttp2Route) RouteSpecHttp2RouteAction { return v.Action }).(RouteSpecHttp2RouteActionOutput) +} + +// The criteria for determining an gRPC request match. +func (o RouteSpecHttp2RouteOutput) Match() RouteSpecHttp2RouteMatchOutput { + return o.ApplyT(func(v RouteSpecHttp2Route) RouteSpecHttp2RouteMatch { return v.Match }).(RouteSpecHttp2RouteMatchOutput) +} + +// The retry policy. +func (o RouteSpecHttp2RouteOutput) RetryPolicy() RouteSpecHttp2RouteRetryPolicyPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2Route) *RouteSpecHttp2RouteRetryPolicy { return v.RetryPolicy }).(RouteSpecHttp2RouteRetryPolicyPtrOutput) +} + +// The types of timeouts. +func (o RouteSpecHttp2RouteOutput) Timeout() RouteSpecHttp2RouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2Route) *RouteSpecHttp2RouteTimeout { return v.Timeout }).(RouteSpecHttp2RouteTimeoutPtrOutput) +} + +type RouteSpecHttp2RoutePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2Route)(nil)).Elem() +} + +func (o RouteSpecHttp2RoutePtrOutput) ToRouteSpecHttp2RoutePtrOutput() RouteSpecHttp2RoutePtrOutput { + return o +} + +func (o RouteSpecHttp2RoutePtrOutput) ToRouteSpecHttp2RoutePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RoutePtrOutput { + return o +} + +func (o RouteSpecHttp2RoutePtrOutput) Elem() RouteSpecHttp2RouteOutput { + return o.ApplyT(func(v *RouteSpecHttp2Route) RouteSpecHttp2Route { return *v }).(RouteSpecHttp2RouteOutput) +} + +// The action to take if a match is determined. +func (o RouteSpecHttp2RoutePtrOutput) Action() RouteSpecHttp2RouteActionPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteAction { + if v == nil { + return nil + } + return &v.Action + }).(RouteSpecHttp2RouteActionPtrOutput) +} + +// The criteria for determining an gRPC request match. +func (o RouteSpecHttp2RoutePtrOutput) Match() RouteSpecHttp2RouteMatchPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteMatch { + if v == nil { + return nil + } + return &v.Match + }).(RouteSpecHttp2RouteMatchPtrOutput) +} + +// The retry policy. +func (o RouteSpecHttp2RoutePtrOutput) RetryPolicy() RouteSpecHttp2RouteRetryPolicyPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteRetryPolicy { + if v == nil { + return nil + } + return v.RetryPolicy + }).(RouteSpecHttp2RouteRetryPolicyPtrOutput) +} + +// The types of timeouts. +func (o RouteSpecHttp2RoutePtrOutput) Timeout() RouteSpecHttp2RouteTimeoutPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2Route) *RouteSpecHttp2RouteTimeout { + if v == nil { + return nil + } + return v.Timeout + }).(RouteSpecHttp2RouteTimeoutPtrOutput) +} + +type RouteSpecHttp2RouteAction struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets []RouteSpecHttp2RouteActionWeightedTarget `pulumi:"weightedTargets"` +} + +// RouteSpecHttp2RouteActionInput is an input type that accepts RouteSpecHttp2RouteActionArgs and RouteSpecHttp2RouteActionOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteActionInput` via: +// +// RouteSpecHttp2RouteActionArgs{...} +type RouteSpecHttp2RouteActionInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteActionOutput() RouteSpecHttp2RouteActionOutput + ToRouteSpecHttp2RouteActionOutputWithContext(context.Context) RouteSpecHttp2RouteActionOutput +} + +type RouteSpecHttp2RouteActionArgs struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets RouteSpecHttp2RouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` +} + +func (RouteSpecHttp2RouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteAction)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionOutput() RouteSpecHttp2RouteActionOutput { + return i.ToRouteSpecHttp2RouteActionOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionOutput) +} + +func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { + return i.ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteActionArgs) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionOutput).ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteActionPtrInput is an input type that accepts RouteSpecHttp2RouteActionArgs, RouteSpecHttp2RouteActionPtr and RouteSpecHttp2RouteActionPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteActionPtrInput` via: +// +// RouteSpecHttp2RouteActionArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteActionPtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput + ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Context) RouteSpecHttp2RouteActionPtrOutput +} + +type routeSpecHttp2RouteActionPtrType RouteSpecHttp2RouteActionArgs + +func RouteSpecHttp2RouteActionPtr(v *RouteSpecHttp2RouteActionArgs) RouteSpecHttp2RouteActionPtrInput { + return (*routeSpecHttp2RouteActionPtrType)(v) +} + +func (*routeSpecHttp2RouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteAction)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteActionPtrType) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { + return i.ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteActionPtrType) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionPtrOutput) +} + +type RouteSpecHttp2RouteActionOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteAction)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionOutput() RouteSpecHttp2RouteActionOutput { + return o +} + +func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionOutput { + return o +} + +func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { + return o.ToRouteSpecHttp2RouteActionPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteActionOutput) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteAction) *RouteSpecHttp2RouteAction { + return &v + }).(RouteSpecHttp2RouteActionPtrOutput) +} + +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecHttp2RouteActionOutput) WeightedTargets() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteAction) []RouteSpecHttp2RouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecHttp2RouteActionWeightedTargetArrayOutput) +} + +type RouteSpecHttp2RouteActionPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteAction)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteActionPtrOutput) ToRouteSpecHttp2RouteActionPtrOutput() RouteSpecHttp2RouteActionPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteActionPtrOutput) ToRouteSpecHttp2RouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteActionPtrOutput) Elem() RouteSpecHttp2RouteActionOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteAction) RouteSpecHttp2RouteAction { return *v }).(RouteSpecHttp2RouteActionOutput) +} + +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecHttp2RouteActionPtrOutput) WeightedTargets() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteAction) []RouteSpecHttp2RouteActionWeightedTarget { + if v == nil { + return nil + } + return v.WeightedTargets + }).(RouteSpecHttp2RouteActionWeightedTargetArrayOutput) +} + +type RouteSpecHttp2RouteActionWeightedTarget struct { + // The virtual node to associate with the weighted target. + VirtualNode string `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight int `pulumi:"weight"` +} + +// RouteSpecHttp2RouteActionWeightedTargetInput is an input type that accepts RouteSpecHttp2RouteActionWeightedTargetArgs and RouteSpecHttp2RouteActionWeightedTargetOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteActionWeightedTargetInput` via: +// +// RouteSpecHttp2RouteActionWeightedTargetArgs{...} +type RouteSpecHttp2RouteActionWeightedTargetInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteActionWeightedTargetOutput() RouteSpecHttp2RouteActionWeightedTargetOutput + ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecHttp2RouteActionWeightedTargetOutput +} + +type RouteSpecHttp2RouteActionWeightedTargetArgs struct { + // The virtual node to associate with the weighted target. + VirtualNode pulumi.StringInput `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight pulumi.IntInput `pulumi:"weight"` +} + +func (RouteSpecHttp2RouteActionWeightedTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteActionWeightedTargetArgs) ToRouteSpecHttp2RouteActionWeightedTargetOutput() RouteSpecHttp2RouteActionWeightedTargetOutput { + return i.ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteActionWeightedTargetArgs) ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionWeightedTargetOutput) +} + +// RouteSpecHttp2RouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecHttp2RouteActionWeightedTargetArray and RouteSpecHttp2RouteActionWeightedTargetArrayOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteActionWeightedTargetArrayInput` via: +// +// RouteSpecHttp2RouteActionWeightedTargetArray{ RouteSpecHttp2RouteActionWeightedTargetArgs{...} } +type RouteSpecHttp2RouteActionWeightedTargetArrayInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteActionWeightedTargetArrayOutput() RouteSpecHttp2RouteActionWeightedTargetArrayOutput + ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecHttp2RouteActionWeightedTargetArrayOutput +} + +type RouteSpecHttp2RouteActionWeightedTargetArray []RouteSpecHttp2RouteActionWeightedTargetInput + +func (RouteSpecHttp2RouteActionWeightedTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteActionWeightedTargetArray) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutput() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { + return i.ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteActionWeightedTargetArray) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteActionWeightedTargetArrayOutput) +} + +type RouteSpecHttp2RouteActionWeightedTargetOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteActionWeightedTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteActionWeightedTargetOutput) ToRouteSpecHttp2RouteActionWeightedTargetOutput() RouteSpecHttp2RouteActionWeightedTargetOutput { + return o +} + +func (o RouteSpecHttp2RouteActionWeightedTargetOutput) ToRouteSpecHttp2RouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetOutput { + return o +} + +// The virtual node to associate with the weighted target. +func (o RouteSpecHttp2RouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) +} + +// The relative weight of the weighted target. An integer between 0 and 100. +func (o RouteSpecHttp2RouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) +} + +type RouteSpecHttp2RouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttp2RouteActionWeightedTarget)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteActionWeightedTargetArrayOutput) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutput() RouteSpecHttp2RouteActionWeightedTargetArrayOutput { + return o +} + +func (o RouteSpecHttp2RouteActionWeightedTargetArrayOutput) ToRouteSpecHttp2RouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteActionWeightedTargetArrayOutput { + return o +} + +func (o RouteSpecHttp2RouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecHttp2RouteActionWeightedTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttp2RouteActionWeightedTarget { + return vs[0].([]RouteSpecHttp2RouteActionWeightedTarget)[vs[1].(int)] + }).(RouteSpecHttp2RouteActionWeightedTargetOutput) +} + +type RouteSpecHttp2RouteMatch struct { + // The client request headers to match on. + Headers []RouteSpecHttp2RouteMatchHeader `pulumi:"headers"` + // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + Method *string `pulumi:"method"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix string `pulumi:"prefix"` + // The client request header scheme to match on. Valid values: `http`, `https`. + Scheme *string `pulumi:"scheme"` +} + +// RouteSpecHttp2RouteMatchInput is an input type that accepts RouteSpecHttp2RouteMatchArgs and RouteSpecHttp2RouteMatchOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchInput` via: +// +// RouteSpecHttp2RouteMatchArgs{...} +type RouteSpecHttp2RouteMatchInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchOutput() RouteSpecHttp2RouteMatchOutput + ToRouteSpecHttp2RouteMatchOutputWithContext(context.Context) RouteSpecHttp2RouteMatchOutput +} + +type RouteSpecHttp2RouteMatchArgs struct { + // The client request headers to match on. + Headers RouteSpecHttp2RouteMatchHeaderArrayInput `pulumi:"headers"` + // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + Method pulumi.StringPtrInput `pulumi:"method"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix pulumi.StringInput `pulumi:"prefix"` + // The client request header scheme to match on. Valid values: `http`, `https`. + Scheme pulumi.StringPtrInput `pulumi:"scheme"` +} + +func (RouteSpecHttp2RouteMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatch)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchOutput() RouteSpecHttp2RouteMatchOutput { + return i.ToRouteSpecHttp2RouteMatchOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchOutput) +} + +func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { + return i.ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchArgs) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchOutput).ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteMatchPtrInput is an input type that accepts RouteSpecHttp2RouteMatchArgs, RouteSpecHttp2RouteMatchPtr and RouteSpecHttp2RouteMatchPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchPtrInput` via: +// +// RouteSpecHttp2RouteMatchArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteMatchPtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput + ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Context) RouteSpecHttp2RouteMatchPtrOutput +} + +type routeSpecHttp2RouteMatchPtrType RouteSpecHttp2RouteMatchArgs + +func RouteSpecHttp2RouteMatchPtr(v *RouteSpecHttp2RouteMatchArgs) RouteSpecHttp2RouteMatchPtrInput { + return (*routeSpecHttp2RouteMatchPtrType)(v) +} + +func (*routeSpecHttp2RouteMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteMatch)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteMatchPtrType) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { + return i.ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteMatchPtrType) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchPtrOutput) +} + +type RouteSpecHttp2RouteMatchOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatch)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchOutput() RouteSpecHttp2RouteMatchOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { + return o.ToRouteSpecHttp2RouteMatchPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteMatchOutput) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *RouteSpecHttp2RouteMatch { + return &v + }).(RouteSpecHttp2RouteMatchPtrOutput) +} + +// The client request headers to match on. +func (o RouteSpecHttp2RouteMatchOutput) Headers() RouteSpecHttp2RouteMatchHeaderArrayOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatch) []RouteSpecHttp2RouteMatchHeader { return v.Headers }).(RouteSpecHttp2RouteMatchHeaderArrayOutput) +} + +// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. +func (o RouteSpecHttp2RouteMatchOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *string { return v.Method }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttp2RouteMatchOutput) Prefix() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatch) string { return v.Prefix }).(pulumi.StringOutput) +} + +// The client request header scheme to match on. Valid values: `http`, `https`. +func (o RouteSpecHttp2RouteMatchOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatch) *string { return v.Scheme }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttp2RouteMatchPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteMatch)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchPtrOutput) ToRouteSpecHttp2RouteMatchPtrOutput() RouteSpecHttp2RouteMatchPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchPtrOutput) ToRouteSpecHttp2RouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchPtrOutput) Elem() RouteSpecHttp2RouteMatchOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) RouteSpecHttp2RouteMatch { return *v }).(RouteSpecHttp2RouteMatchOutput) +} + +// The client request headers to match on. +func (o RouteSpecHttp2RouteMatchPtrOutput) Headers() RouteSpecHttp2RouteMatchHeaderArrayOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) []RouteSpecHttp2RouteMatchHeader { + if v == nil { + return nil + } + return v.Headers + }).(RouteSpecHttp2RouteMatchHeaderArrayOutput) +} + +// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. +func (o RouteSpecHttp2RouteMatchPtrOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) *string { + if v == nil { + return nil + } + return v.Method + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttp2RouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) *string { + if v == nil { + return nil + } + return &v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The client request header scheme to match on. Valid values: `http`, `https`. +func (o RouteSpecHttp2RouteMatchPtrOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatch) *string { + if v == nil { + return nil + } + return v.Scheme + }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttp2RouteMatchHeader struct { + // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + Invert *bool `pulumi:"invert"` + // The method and value to match the header value sent with a request. Specify one match method. + Match *RouteSpecHttp2RouteMatchHeaderMatch `pulumi:"match"` + // A name for the HTTP header in the client request that will be matched on. + Name string `pulumi:"name"` +} + +// RouteSpecHttp2RouteMatchHeaderInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderArgs and RouteSpecHttp2RouteMatchHeaderOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderInput` via: +// +// RouteSpecHttp2RouteMatchHeaderArgs{...} +type RouteSpecHttp2RouteMatchHeaderInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchHeaderOutput() RouteSpecHttp2RouteMatchHeaderOutput + ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderOutput +} + +type RouteSpecHttp2RouteMatchHeaderArgs struct { + // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + Invert pulumi.BoolPtrInput `pulumi:"invert"` + // The method and value to match the header value sent with a request. Specify one match method. + Match RouteSpecHttp2RouteMatchHeaderMatchPtrInput `pulumi:"match"` + // A name for the HTTP header in the client request that will be matched on. + Name pulumi.StringInput `pulumi:"name"` +} + +func (RouteSpecHttp2RouteMatchHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteMatchHeaderArgs) ToRouteSpecHttp2RouteMatchHeaderOutput() RouteSpecHttp2RouteMatchHeaderOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchHeaderArgs) ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderOutput) +} + +// RouteSpecHttp2RouteMatchHeaderArrayInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderArray and RouteSpecHttp2RouteMatchHeaderArrayOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderArrayInput` via: +// +// RouteSpecHttp2RouteMatchHeaderArray{ RouteSpecHttp2RouteMatchHeaderArgs{...} } +type RouteSpecHttp2RouteMatchHeaderArrayInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchHeaderArrayOutput() RouteSpecHttp2RouteMatchHeaderArrayOutput + ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderArrayOutput +} + +type RouteSpecHttp2RouteMatchHeaderArray []RouteSpecHttp2RouteMatchHeaderInput + +func (RouteSpecHttp2RouteMatchHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteMatchHeaderArray) ToRouteSpecHttp2RouteMatchHeaderArrayOutput() RouteSpecHttp2RouteMatchHeaderArrayOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchHeaderArray) ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderArrayOutput) +} + +type RouteSpecHttp2RouteMatchHeaderOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchHeaderOutput) ToRouteSpecHttp2RouteMatchHeaderOutput() RouteSpecHttp2RouteMatchHeaderOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderOutput) ToRouteSpecHttp2RouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderOutput { + return o +} + +// If `true`, the match is on the opposite of the `match` method and value. Default is `false`. +func (o RouteSpecHttp2RouteMatchHeaderOutput) Invert() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeader) *bool { return v.Invert }).(pulumi.BoolPtrOutput) +} + +// The method and value to match the header value sent with a request. Specify one match method. +func (o RouteSpecHttp2RouteMatchHeaderOutput) Match() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeader) *RouteSpecHttp2RouteMatchHeaderMatch { return v.Match }).(RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) +} + +// A name for the HTTP header in the client request that will be matched on. +func (o RouteSpecHttp2RouteMatchHeaderOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeader) string { return v.Name }).(pulumi.StringOutput) +} + +type RouteSpecHttp2RouteMatchHeaderArrayOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttp2RouteMatchHeader)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchHeaderArrayOutput) ToRouteSpecHttp2RouteMatchHeaderArrayOutput() RouteSpecHttp2RouteMatchHeaderArrayOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderArrayOutput) ToRouteSpecHttp2RouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderArrayOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderArrayOutput) Index(i pulumi.IntInput) RouteSpecHttp2RouteMatchHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttp2RouteMatchHeader { + return vs[0].([]RouteSpecHttp2RouteMatchHeader)[vs[1].(int)] + }).(RouteSpecHttp2RouteMatchHeaderOutput) +} + +type RouteSpecHttp2RouteMatchHeaderMatch struct { + // The value sent by the client must match the specified value exactly. + Exact *string `pulumi:"exact"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix *string `pulumi:"prefix"` + // The object that specifies the range of numbers that the value sent by the client must be included in. + Range *RouteSpecHttp2RouteMatchHeaderMatchRange `pulumi:"range"` + // The value sent by the client must include the specified characters. + Regex *string `pulumi:"regex"` + // The value sent by the client must end with the specified characters. + Suffix *string `pulumi:"suffix"` +} + +// RouteSpecHttp2RouteMatchHeaderMatchInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchArgs and RouteSpecHttp2RouteMatchHeaderMatchOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchInput` via: +// +// RouteSpecHttp2RouteMatchHeaderMatchArgs{...} +type RouteSpecHttp2RouteMatchHeaderMatchInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchHeaderMatchOutput() RouteSpecHttp2RouteMatchHeaderMatchOutput + ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchOutput +} + +type RouteSpecHttp2RouteMatchHeaderMatchArgs struct { + // The value sent by the client must match the specified value exactly. + Exact pulumi.StringPtrInput `pulumi:"exact"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // The object that specifies the range of numbers that the value sent by the client must be included in. + Range RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput `pulumi:"range"` + // The value sent by the client must include the specified characters. + Regex pulumi.StringPtrInput `pulumi:"regex"` + // The value sent by the client must end with the specified characters. + Suffix pulumi.StringPtrInput `pulumi:"suffix"` +} + +func (RouteSpecHttp2RouteMatchHeaderMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchOutput() RouteSpecHttp2RouteMatchHeaderMatchOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchOutput) +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchArgs) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchOutput).ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteMatchHeaderMatchPtrInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchArgs, RouteSpecHttp2RouteMatchHeaderMatchPtr and RouteSpecHttp2RouteMatchHeaderMatchPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchPtrInput` via: +// +// RouteSpecHttp2RouteMatchHeaderMatchArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteMatchHeaderMatchPtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput + ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput +} + +type routeSpecHttp2RouteMatchHeaderMatchPtrType RouteSpecHttp2RouteMatchHeaderMatchArgs + +func RouteSpecHttp2RouteMatchHeaderMatchPtr(v *RouteSpecHttp2RouteMatchHeaderMatchArgs) RouteSpecHttp2RouteMatchHeaderMatchPtrInput { + return (*routeSpecHttp2RouteMatchHeaderMatchPtrType)(v) +} + +func (*routeSpecHttp2RouteMatchHeaderMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteMatchHeaderMatchPtrType) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteMatchHeaderMatchPtrType) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) +} + +type RouteSpecHttp2RouteMatchHeaderMatchOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchHeaderMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchOutput() RouteSpecHttp2RouteMatchHeaderMatchOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return o.ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatch { + return &v + }).(RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) +} + +// The value sent by the client must match the specified value exactly. +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// The object that specifies the range of numbers that the value sent by the client must be included in. +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Range() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatchRange { return v.Range }).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) +} + +// The value sent by the client must include the specified characters. +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Regex() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must end with the specified characters. +func (o RouteSpecHttp2RouteMatchHeaderMatchOutput) Suffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttp2RouteMatchHeaderMatchPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatch)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutput() RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Elem() RouteSpecHttp2RouteMatchHeaderMatchOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) RouteSpecHttp2RouteMatchHeaderMatch { return *v }).(RouteSpecHttp2RouteMatchHeaderMatchOutput) +} + +// The value sent by the client must match the specified value exactly. +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Exact + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The object that specifies the range of numbers that the value sent by the client must be included in. +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Range() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *RouteSpecHttp2RouteMatchHeaderMatchRange { + if v == nil { + return nil + } + return v.Range + }).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) +} + +// The value sent by the client must include the specified characters. +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Regex() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Regex + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must end with the specified characters. +func (o RouteSpecHttp2RouteMatchHeaderMatchPtrOutput) Suffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Suffix + }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttp2RouteMatchHeaderMatchRange struct { + // The end of the range. + End int `pulumi:"end"` + // The start of the range. + Start int `pulumi:"start"` +} + +// RouteSpecHttp2RouteMatchHeaderMatchRangeInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchRangeArgs and RouteSpecHttp2RouteMatchHeaderMatchRangeOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchRangeInput` via: +// +// RouteSpecHttp2RouteMatchHeaderMatchRangeArgs{...} +type RouteSpecHttp2RouteMatchHeaderMatchRangeInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutput() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput + ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangeOutput +} + +type RouteSpecHttp2RouteMatchHeaderMatchRangeArgs struct { + // The end of the range. + End pulumi.IntInput `pulumi:"end"` + // The start of the range. + Start pulumi.IntInput `pulumi:"start"` +} + +func (RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutput() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchRangeOutput).ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput is an input type that accepts RouteSpecHttp2RouteMatchHeaderMatchRangeArgs, RouteSpecHttp2RouteMatchHeaderMatchRangePtr and RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput` via: +// +// RouteSpecHttp2RouteMatchHeaderMatchRangeArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput + ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput +} + +type routeSpecHttp2RouteMatchHeaderMatchRangePtrType RouteSpecHttp2RouteMatchHeaderMatchRangeArgs + +func RouteSpecHttp2RouteMatchHeaderMatchRangePtr(v *RouteSpecHttp2RouteMatchHeaderMatchRangeArgs) RouteSpecHttp2RouteMatchHeaderMatchRangePtrInput { + return (*routeSpecHttp2RouteMatchHeaderMatchRangePtrType)(v) +} + +func (*routeSpecHttp2RouteMatchHeaderMatchRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteMatchHeaderMatchRangePtrType) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return i.ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteMatchHeaderMatchRangePtrType) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) +} + +type RouteSpecHttp2RouteMatchHeaderMatchRangeOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutput() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return o.ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatchRange) *RouteSpecHttp2RouteMatchHeaderMatchRange { + return &v + }).(RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) +} + +// The end of the range. +func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) End() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatchRange) int { return v.End }).(pulumi.IntOutput) +} + +// The start of the range. +func (o RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) Start() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteMatchHeaderMatchRange) int { return v.Start }).(pulumi.IntOutput) +} + +type RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput() RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttp2RouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput { + return o +} + +func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) Elem() RouteSpecHttp2RouteMatchHeaderMatchRangeOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatchRange) RouteSpecHttp2RouteMatchHeaderMatchRange { return *v }).(RouteSpecHttp2RouteMatchHeaderMatchRangeOutput) +} + +// The end of the range. +func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) End() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatchRange) *int { + if v == nil { + return nil + } + return &v.End + }).(pulumi.IntPtrOutput) +} + +// The start of the range. +func (o RouteSpecHttp2RouteMatchHeaderMatchRangePtrOutput) Start() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteMatchHeaderMatchRange) *int { + if v == nil { + return nil + } + return &v.Start + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttp2RouteRetryPolicy struct { + // List of HTTP retry events. + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + HttpRetryEvents []string `pulumi:"httpRetryEvents"` + // The maximum number of retries. + MaxRetries int `pulumi:"maxRetries"` + // The per-retry timeout. + PerRetryTimeout RouteSpecHttp2RouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` + // List of TCP retry events. The only valid value is `connection-error`. + TcpRetryEvents []string `pulumi:"tcpRetryEvents"` +} + +// RouteSpecHttp2RouteRetryPolicyInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyArgs and RouteSpecHttp2RouteRetryPolicyOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyInput` via: +// +// RouteSpecHttp2RouteRetryPolicyArgs{...} +type RouteSpecHttp2RouteRetryPolicyInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteRetryPolicyOutput() RouteSpecHttp2RouteRetryPolicyOutput + ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyOutput +} + +type RouteSpecHttp2RouteRetryPolicyArgs struct { + // List of HTTP retry events. + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` + // The maximum number of retries. + MaxRetries pulumi.IntInput `pulumi:"maxRetries"` + // The per-retry timeout. + PerRetryTimeout RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` + // List of TCP retry events. The only valid value is `connection-error`. + TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` +} + +func (RouteSpecHttp2RouteRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyOutput() RouteSpecHttp2RouteRetryPolicyOutput { + return i.ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyOutput) +} + +func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { + return i.ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyOutput).ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteRetryPolicyPtrInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyArgs, RouteSpecHttp2RouteRetryPolicyPtr and RouteSpecHttp2RouteRetryPolicyPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyPtrInput` via: +// +// RouteSpecHttp2RouteRetryPolicyArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteRetryPolicyPtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput + ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput +} + +type routeSpecHttp2RouteRetryPolicyPtrType RouteSpecHttp2RouteRetryPolicyArgs + +func RouteSpecHttp2RouteRetryPolicyPtr(v *RouteSpecHttp2RouteRetryPolicyArgs) RouteSpecHttp2RouteRetryPolicyPtrInput { + return (*routeSpecHttp2RouteRetryPolicyPtrType)(v) +} + +func (*routeSpecHttp2RouteRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteRetryPolicyPtrType) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { + return i.ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteRetryPolicyPtrType) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPtrOutput) +} + +type RouteSpecHttp2RouteRetryPolicyOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyOutput() RouteSpecHttp2RouteRetryPolicyOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { + return o.ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) *RouteSpecHttp2RouteRetryPolicy { + return &v + }).(RouteSpecHttp2RouteRetryPolicyPtrOutput) +} + +// List of HTTP retry events. +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +func (o RouteSpecHttp2RouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) +} + +// The maximum number of retries. +func (o RouteSpecHttp2RouteRetryPolicyOutput) MaxRetries() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) int { return v.MaxRetries }).(pulumi.IntOutput) +} + +// The per-retry timeout. +func (o RouteSpecHttp2RouteRetryPolicyOutput) PerRetryTimeout() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { + return v.PerRetryTimeout + }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) +} + +// List of TCP retry events. The only valid value is `connection-error`. +func (o RouteSpecHttp2RouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) +} + +type RouteSpecHttp2RouteRetryPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) Elem() RouteSpecHttp2RouteRetryPolicyOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) RouteSpecHttp2RouteRetryPolicy { return *v }).(RouteSpecHttp2RouteRetryPolicyOutput) +} + +// List of HTTP retry events. +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) []string { + if v == nil { + return nil + } + return v.HttpRetryEvents + }).(pulumi.StringArrayOutput) +} + +// The maximum number of retries. +func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) MaxRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) *int { + if v == nil { + return nil + } + return &v.MaxRetries + }).(pulumi.IntPtrOutput) +} + +// The per-retry timeout. +func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { + if v == nil { + return nil + } + return &v.PerRetryTimeout + }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +// List of TCP retry events. The only valid value is `connection-error`. +func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) []string { + if v == nil { + return nil + } + return v.TcpRetryEvents + }).(pulumi.StringArrayOutput) +} + +type RouteSpecHttp2RouteRetryPolicyPerRetryTimeout struct { + // Retry unit. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // Retry value. + Value int `pulumi:"value"` +} + +// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs and RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput` via: +// +// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs{...} +type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput + ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput +} + +type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs struct { + // Retry unit. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // Retry value. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { + return i.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) +} + +func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return i.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput).ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs, RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtr and RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput` via: +// +// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput + ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput +} + +type routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs + +func RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtr(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput { + return (*routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType)(v) +} + +func (*routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return i.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { + return &v + }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +// Retry unit. Valid values: `ms`, `s`. +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) string { return v.Unit }).(pulumi.StringOutput) +} + +// Retry value. +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) Elem() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { + return *v + }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) +} + +// Retry unit. Valid values: `ms`, `s`. +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// Retry value. +func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttp2RouteTimeout struct { + // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + Idle *RouteSpecHttp2RouteTimeoutIdle `pulumi:"idle"` + // The per request timeout. + PerRequest *RouteSpecHttp2RouteTimeoutPerRequest `pulumi:"perRequest"` +} + +// RouteSpecHttp2RouteTimeoutInput is an input type that accepts RouteSpecHttp2RouteTimeoutArgs and RouteSpecHttp2RouteTimeoutOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutInput` via: +// +// RouteSpecHttp2RouteTimeoutArgs{...} +type RouteSpecHttp2RouteTimeoutInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteTimeoutOutput() RouteSpecHttp2RouteTimeoutOutput + ToRouteSpecHttp2RouteTimeoutOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutOutput +} + +type RouteSpecHttp2RouteTimeoutArgs struct { + // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + Idle RouteSpecHttp2RouteTimeoutIdlePtrInput `pulumi:"idle"` + // The per request timeout. + PerRequest RouteSpecHttp2RouteTimeoutPerRequestPtrInput `pulumi:"perRequest"` +} + +func (RouteSpecHttp2RouteTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteTimeout)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutOutput() RouteSpecHttp2RouteTimeoutOutput { + return i.ToRouteSpecHttp2RouteTimeoutOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutOutput) +} + +func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { + return i.ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutOutput).ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteTimeoutPtrInput is an input type that accepts RouteSpecHttp2RouteTimeoutArgs, RouteSpecHttp2RouteTimeoutPtr and RouteSpecHttp2RouteTimeoutPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutPtrInput` via: +// +// RouteSpecHttp2RouteTimeoutArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteTimeoutPtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput + ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutPtrOutput +} + +type routeSpecHttp2RouteTimeoutPtrType RouteSpecHttp2RouteTimeoutArgs + +func RouteSpecHttp2RouteTimeoutPtr(v *RouteSpecHttp2RouteTimeoutArgs) RouteSpecHttp2RouteTimeoutPtrInput { + return (*routeSpecHttp2RouteTimeoutPtrType)(v) +} + +func (*routeSpecHttp2RouteTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteTimeout)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteTimeoutPtrType) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { + return i.ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteTimeoutPtrType) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPtrOutput) +} + +type RouteSpecHttp2RouteTimeoutOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteTimeout)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutOutput() RouteSpecHttp2RouteTimeoutOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { + return o.ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeout { + return &v + }).(RouteSpecHttp2RouteTimeoutPtrOutput) +} + +// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. +func (o RouteSpecHttp2RouteTimeoutOutput) Idle() RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutIdle { return v.Idle }).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) +} + +// The per request timeout. +func (o RouteSpecHttp2RouteTimeoutOutput) PerRequest() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutPerRequest { return v.PerRequest }).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecHttp2RouteTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteTimeout)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteTimeoutPtrOutput) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutPtrOutput) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutPtrOutput) Elem() RouteSpecHttp2RouteTimeoutOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeout) RouteSpecHttp2RouteTimeout { return *v }).(RouteSpecHttp2RouteTimeoutOutput) +} + +// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. +func (o RouteSpecHttp2RouteTimeoutPtrOutput) Idle() RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutIdle { + if v == nil { + return nil + } + return v.Idle + }).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) +} + +// The per request timeout. +func (o RouteSpecHttp2RouteTimeoutPtrOutput) PerRequest() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutPerRequest { + if v == nil { + return nil + } + return v.PerRequest + }).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecHttp2RouteTimeoutIdle struct { + // The unit of time. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value int `pulumi:"value"` +} + +// RouteSpecHttp2RouteTimeoutIdleInput is an input type that accepts RouteSpecHttp2RouteTimeoutIdleArgs and RouteSpecHttp2RouteTimeoutIdleOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutIdleInput` via: +// +// RouteSpecHttp2RouteTimeoutIdleArgs{...} +type RouteSpecHttp2RouteTimeoutIdleInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteTimeoutIdleOutput() RouteSpecHttp2RouteTimeoutIdleOutput + ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutIdleOutput +} + +type RouteSpecHttp2RouteTimeoutIdleArgs struct { + // The unit of time. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecHttp2RouteTimeoutIdleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdleOutput() RouteSpecHttp2RouteTimeoutIdleOutput { + return i.ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutIdleOutput) +} + +func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return i.ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutIdleOutput).ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteTimeoutIdlePtrInput is an input type that accepts RouteSpecHttp2RouteTimeoutIdleArgs, RouteSpecHttp2RouteTimeoutIdlePtr and RouteSpecHttp2RouteTimeoutIdlePtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutIdlePtrInput` via: +// +// RouteSpecHttp2RouteTimeoutIdleArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteTimeoutIdlePtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput + ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput +} + +type routeSpecHttp2RouteTimeoutIdlePtrType RouteSpecHttp2RouteTimeoutIdleArgs + +func RouteSpecHttp2RouteTimeoutIdlePtr(v *RouteSpecHttp2RouteTimeoutIdleArgs) RouteSpecHttp2RouteTimeoutIdlePtrInput { + return (*routeSpecHttp2RouteTimeoutIdlePtrType)(v) +} + +func (*routeSpecHttp2RouteTimeoutIdlePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteTimeoutIdlePtrType) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return i.ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteTimeoutIdlePtrType) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) +} + +type RouteSpecHttp2RouteTimeoutIdleOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteTimeoutIdleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdleOutput() RouteSpecHttp2RouteTimeoutIdleOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdleOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return o.ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutIdle) *RouteSpecHttp2RouteTimeoutIdle { + return &v + }).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttp2RouteTimeoutIdleOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttp2RouteTimeoutIdleOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecHttp2RouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteTimeoutIdlePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Elem() RouteSpecHttp2RouteTimeoutIdleOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutIdle) RouteSpecHttp2RouteTimeoutIdle { return *v }).(RouteSpecHttp2RouteTimeoutIdleOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutIdle) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutIdle) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttp2RouteTimeoutPerRequest struct { + // The unit of time. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value int `pulumi:"value"` +} + +// RouteSpecHttp2RouteTimeoutPerRequestInput is an input type that accepts RouteSpecHttp2RouteTimeoutPerRequestArgs and RouteSpecHttp2RouteTimeoutPerRequestOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutPerRequestInput` via: +// +// RouteSpecHttp2RouteTimeoutPerRequestArgs{...} +type RouteSpecHttp2RouteTimeoutPerRequestInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteTimeoutPerRequestOutput() RouteSpecHttp2RouteTimeoutPerRequestOutput + ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutPerRequestOutput +} + +type RouteSpecHttp2RouteTimeoutPerRequestArgs struct { + // The unit of time. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecHttp2RouteTimeoutPerRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +} + +func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestOutput() RouteSpecHttp2RouteTimeoutPerRequestOutput { + return i.ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPerRequestOutput) +} + +func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return i.ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPerRequestOutput).ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx) +} + +// RouteSpecHttp2RouteTimeoutPerRequestPtrInput is an input type that accepts RouteSpecHttp2RouteTimeoutPerRequestArgs, RouteSpecHttp2RouteTimeoutPerRequestPtr and RouteSpecHttp2RouteTimeoutPerRequestPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutPerRequestPtrInput` via: +// +// RouteSpecHttp2RouteTimeoutPerRequestArgs{...} +// +// or: +// +// nil +type RouteSpecHttp2RouteTimeoutPerRequestPtrInput interface { + pulumi.Input + + ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput + ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput +} + +type routeSpecHttp2RouteTimeoutPerRequestPtrType RouteSpecHttp2RouteTimeoutPerRequestArgs + +func RouteSpecHttp2RouteTimeoutPerRequestPtr(v *RouteSpecHttp2RouteTimeoutPerRequestArgs) RouteSpecHttp2RouteTimeoutPerRequestPtrInput { + return (*routeSpecHttp2RouteTimeoutPerRequestPtrType)(v) +} + +func (*routeSpecHttp2RouteTimeoutPerRequestPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +} + +func (i *routeSpecHttp2RouteTimeoutPerRequestPtrType) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return i.ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttp2RouteTimeoutPerRequestPtrType) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecHttp2RouteTimeoutPerRequestOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteTimeoutPerRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestOutput() RouteSpecHttp2RouteTimeoutPerRequestOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return o.ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutPerRequest) *RouteSpecHttp2RouteTimeoutPerRequest { + return &v + }).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutPerRequest) string { return v.Unit }).(pulumi.StringOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutPerRequest) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecHttp2RouteTimeoutPerRequestPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +} + +func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { + return o +} + +func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) Elem() RouteSpecHttp2RouteTimeoutPerRequestOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutPerRequest) RouteSpecHttp2RouteTimeoutPerRequest { return *v }).(RouteSpecHttp2RouteTimeoutPerRequestOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutPerRequest) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutPerRequest) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttpRoute struct { + // The action to take if a match is determined. + Action RouteSpecHttpRouteAction `pulumi:"action"` + // The criteria for determining an HTTP request match. + Match RouteSpecHttpRouteMatch `pulumi:"match"` + // The retry policy. + RetryPolicy *RouteSpecHttpRouteRetryPolicy `pulumi:"retryPolicy"` + // The types of timeouts. + Timeout *RouteSpecHttpRouteTimeout `pulumi:"timeout"` +} + +// RouteSpecHttpRouteInput is an input type that accepts RouteSpecHttpRouteArgs and RouteSpecHttpRouteOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteInput` via: +// +// RouteSpecHttpRouteArgs{...} +type RouteSpecHttpRouteInput interface { + pulumi.Input + + ToRouteSpecHttpRouteOutput() RouteSpecHttpRouteOutput + ToRouteSpecHttpRouteOutputWithContext(context.Context) RouteSpecHttpRouteOutput +} + +type RouteSpecHttpRouteArgs struct { + // The action to take if a match is determined. + Action RouteSpecHttpRouteActionInput `pulumi:"action"` + // The criteria for determining an HTTP request match. + Match RouteSpecHttpRouteMatchInput `pulumi:"match"` + // The retry policy. + RetryPolicy RouteSpecHttpRouteRetryPolicyPtrInput `pulumi:"retryPolicy"` + // The types of timeouts. + Timeout RouteSpecHttpRouteTimeoutPtrInput `pulumi:"timeout"` +} + +func (RouteSpecHttpRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRoute)(nil)).Elem() +} + +func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRouteOutput() RouteSpecHttpRouteOutput { + return i.ToRouteSpecHttpRouteOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRouteOutputWithContext(ctx context.Context) RouteSpecHttpRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteOutput) +} + +func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { + return i.ToRouteSpecHttpRoutePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteOutput).ToRouteSpecHttpRoutePtrOutputWithContext(ctx) +} + +// RouteSpecHttpRoutePtrInput is an input type that accepts RouteSpecHttpRouteArgs, RouteSpecHttpRoutePtr and RouteSpecHttpRoutePtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRoutePtrInput` via: +// +// RouteSpecHttpRouteArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRoutePtrInput interface { + pulumi.Input + + ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput + ToRouteSpecHttpRoutePtrOutputWithContext(context.Context) RouteSpecHttpRoutePtrOutput +} + +type routeSpecHttpRoutePtrType RouteSpecHttpRouteArgs + +func RouteSpecHttpRoutePtr(v *RouteSpecHttpRouteArgs) RouteSpecHttpRoutePtrInput { + return (*routeSpecHttpRoutePtrType)(v) +} + +func (*routeSpecHttpRoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRoute)(nil)).Elem() +} + +func (i *routeSpecHttpRoutePtrType) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { + return i.ToRouteSpecHttpRoutePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRoutePtrType) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRoutePtrOutput) +} + +type RouteSpecHttpRouteOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRoute)(nil)).Elem() +} + +func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRouteOutput() RouteSpecHttpRouteOutput { + return o +} + +func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRouteOutputWithContext(ctx context.Context) RouteSpecHttpRouteOutput { + return o +} + +func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { + return o.ToRouteSpecHttpRoutePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { + return o.ApplyT(func(v RouteSpecHttpRoute) *RouteSpecHttpRoute { + return &v + }).(RouteSpecHttpRoutePtrOutput) +} + +// The action to take if a match is determined. +func (o RouteSpecHttpRouteOutput) Action() RouteSpecHttpRouteActionOutput { + return o.ApplyT(func(v RouteSpecHttpRoute) RouteSpecHttpRouteAction { return v.Action }).(RouteSpecHttpRouteActionOutput) +} + +// The criteria for determining an HTTP request match. +func (o RouteSpecHttpRouteOutput) Match() RouteSpecHttpRouteMatchOutput { + return o.ApplyT(func(v RouteSpecHttpRoute) RouteSpecHttpRouteMatch { return v.Match }).(RouteSpecHttpRouteMatchOutput) +} + +// The retry policy. +func (o RouteSpecHttpRouteOutput) RetryPolicy() RouteSpecHttpRouteRetryPolicyPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRoute) *RouteSpecHttpRouteRetryPolicy { return v.RetryPolicy }).(RouteSpecHttpRouteRetryPolicyPtrOutput) +} + +// The types of timeouts. +func (o RouteSpecHttpRouteOutput) Timeout() RouteSpecHttpRouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRoute) *RouteSpecHttpRouteTimeout { return v.Timeout }).(RouteSpecHttpRouteTimeoutPtrOutput) +} + +type RouteSpecHttpRoutePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRoute)(nil)).Elem() +} + +func (o RouteSpecHttpRoutePtrOutput) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { + return o +} + +func (o RouteSpecHttpRoutePtrOutput) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { + return o +} + +func (o RouteSpecHttpRoutePtrOutput) Elem() RouteSpecHttpRouteOutput { + return o.ApplyT(func(v *RouteSpecHttpRoute) RouteSpecHttpRoute { return *v }).(RouteSpecHttpRouteOutput) +} + +// The action to take if a match is determined. +func (o RouteSpecHttpRoutePtrOutput) Action() RouteSpecHttpRouteActionPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteAction { + if v == nil { + return nil + } + return &v.Action + }).(RouteSpecHttpRouteActionPtrOutput) +} + +// The criteria for determining an HTTP request match. +func (o RouteSpecHttpRoutePtrOutput) Match() RouteSpecHttpRouteMatchPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteMatch { + if v == nil { + return nil + } + return &v.Match + }).(RouteSpecHttpRouteMatchPtrOutput) +} + +// The retry policy. +func (o RouteSpecHttpRoutePtrOutput) RetryPolicy() RouteSpecHttpRouteRetryPolicyPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteRetryPolicy { + if v == nil { + return nil + } + return v.RetryPolicy + }).(RouteSpecHttpRouteRetryPolicyPtrOutput) +} + +// The types of timeouts. +func (o RouteSpecHttpRoutePtrOutput) Timeout() RouteSpecHttpRouteTimeoutPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteTimeout { + if v == nil { + return nil + } + return v.Timeout + }).(RouteSpecHttpRouteTimeoutPtrOutput) +} + +type RouteSpecHttpRouteAction struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets []RouteSpecHttpRouteActionWeightedTarget `pulumi:"weightedTargets"` +} + +// RouteSpecHttpRouteActionInput is an input type that accepts RouteSpecHttpRouteActionArgs and RouteSpecHttpRouteActionOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteActionInput` via: +// +// RouteSpecHttpRouteActionArgs{...} +type RouteSpecHttpRouteActionInput interface { + pulumi.Input + + ToRouteSpecHttpRouteActionOutput() RouteSpecHttpRouteActionOutput + ToRouteSpecHttpRouteActionOutputWithContext(context.Context) RouteSpecHttpRouteActionOutput +} + +type RouteSpecHttpRouteActionArgs struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets RouteSpecHttpRouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` +} + +func (RouteSpecHttpRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteAction)(nil)).Elem() +} + +func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionOutput() RouteSpecHttpRouteActionOutput { + return i.ToRouteSpecHttpRouteActionOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionOutput) +} + +func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { + return i.ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionOutput).ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteActionPtrInput is an input type that accepts RouteSpecHttpRouteActionArgs, RouteSpecHttpRouteActionPtr and RouteSpecHttpRouteActionPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteActionPtrInput` via: +// +// RouteSpecHttpRouteActionArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteActionPtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput + ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Context) RouteSpecHttpRouteActionPtrOutput +} + +type routeSpecHttpRouteActionPtrType RouteSpecHttpRouteActionArgs + +func RouteSpecHttpRouteActionPtr(v *RouteSpecHttpRouteActionArgs) RouteSpecHttpRouteActionPtrInput { + return (*routeSpecHttpRouteActionPtrType)(v) +} + +func (*routeSpecHttpRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteAction)(nil)).Elem() +} + +func (i *routeSpecHttpRouteActionPtrType) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { + return i.ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteActionPtrType) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionPtrOutput) +} + +type RouteSpecHttpRouteActionOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteAction)(nil)).Elem() +} + +func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionOutput() RouteSpecHttpRouteActionOutput { + return o +} + +func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionOutput { + return o +} + +func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { + return o.ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteAction) *RouteSpecHttpRouteAction { + return &v + }).(RouteSpecHttpRouteActionPtrOutput) +} + +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecHttpRouteActionOutput) WeightedTargets() RouteSpecHttpRouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v RouteSpecHttpRouteAction) []RouteSpecHttpRouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecHttpRouteActionWeightedTargetArrayOutput) +} + +type RouteSpecHttpRouteActionPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteAction)(nil)).Elem() +} + +func (o RouteSpecHttpRouteActionPtrOutput) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { + return o +} + +func (o RouteSpecHttpRouteActionPtrOutput) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { + return o +} + +func (o RouteSpecHttpRouteActionPtrOutput) Elem() RouteSpecHttpRouteActionOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteAction) RouteSpecHttpRouteAction { return *v }).(RouteSpecHttpRouteActionOutput) +} + +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecHttpRouteActionPtrOutput) WeightedTargets() RouteSpecHttpRouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteAction) []RouteSpecHttpRouteActionWeightedTarget { + if v == nil { + return nil + } + return v.WeightedTargets + }).(RouteSpecHttpRouteActionWeightedTargetArrayOutput) +} + +type RouteSpecHttpRouteActionWeightedTarget struct { + // The virtual node to associate with the weighted target. + VirtualNode string `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight int `pulumi:"weight"` +} + +// RouteSpecHttpRouteActionWeightedTargetInput is an input type that accepts RouteSpecHttpRouteActionWeightedTargetArgs and RouteSpecHttpRouteActionWeightedTargetOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteActionWeightedTargetInput` via: +// +// RouteSpecHttpRouteActionWeightedTargetArgs{...} +type RouteSpecHttpRouteActionWeightedTargetInput interface { + pulumi.Input + + ToRouteSpecHttpRouteActionWeightedTargetOutput() RouteSpecHttpRouteActionWeightedTargetOutput + ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecHttpRouteActionWeightedTargetOutput +} + +type RouteSpecHttpRouteActionWeightedTargetArgs struct { + // The virtual node to associate with the weighted target. + VirtualNode pulumi.StringInput `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight pulumi.IntInput `pulumi:"weight"` +} + +func (RouteSpecHttpRouteActionWeightedTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +} + +func (i RouteSpecHttpRouteActionWeightedTargetArgs) ToRouteSpecHttpRouteActionWeightedTargetOutput() RouteSpecHttpRouteActionWeightedTargetOutput { + return i.ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteActionWeightedTargetArgs) ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionWeightedTargetOutput) +} + +// RouteSpecHttpRouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecHttpRouteActionWeightedTargetArray and RouteSpecHttpRouteActionWeightedTargetArrayOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteActionWeightedTargetArrayInput` via: +// +// RouteSpecHttpRouteActionWeightedTargetArray{ RouteSpecHttpRouteActionWeightedTargetArgs{...} } +type RouteSpecHttpRouteActionWeightedTargetArrayInput interface { + pulumi.Input + + ToRouteSpecHttpRouteActionWeightedTargetArrayOutput() RouteSpecHttpRouteActionWeightedTargetArrayOutput + ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecHttpRouteActionWeightedTargetArrayOutput +} + +type RouteSpecHttpRouteActionWeightedTargetArray []RouteSpecHttpRouteActionWeightedTargetInput + +func (RouteSpecHttpRouteActionWeightedTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +} + +func (i RouteSpecHttpRouteActionWeightedTargetArray) ToRouteSpecHttpRouteActionWeightedTargetArrayOutput() RouteSpecHttpRouteActionWeightedTargetArrayOutput { + return i.ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteActionWeightedTargetArray) ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionWeightedTargetArrayOutput) +} + +type RouteSpecHttpRouteActionWeightedTargetOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteActionWeightedTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +} + +func (o RouteSpecHttpRouteActionWeightedTargetOutput) ToRouteSpecHttpRouteActionWeightedTargetOutput() RouteSpecHttpRouteActionWeightedTargetOutput { + return o +} + +func (o RouteSpecHttpRouteActionWeightedTargetOutput) ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetOutput { + return o +} + +// The virtual node to associate with the weighted target. +func (o RouteSpecHttpRouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttpRouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) +} + +// The relative weight of the weighted target. An integer between 0 and 100. +func (o RouteSpecHttpRouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttpRouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) +} + +type RouteSpecHttpRouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +} + +func (o RouteSpecHttpRouteActionWeightedTargetArrayOutput) ToRouteSpecHttpRouteActionWeightedTargetArrayOutput() RouteSpecHttpRouteActionWeightedTargetArrayOutput { + return o +} + +func (o RouteSpecHttpRouteActionWeightedTargetArrayOutput) ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetArrayOutput { + return o +} + +func (o RouteSpecHttpRouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecHttpRouteActionWeightedTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttpRouteActionWeightedTarget { + return vs[0].([]RouteSpecHttpRouteActionWeightedTarget)[vs[1].(int)] + }).(RouteSpecHttpRouteActionWeightedTargetOutput) +} + +type RouteSpecHttpRouteMatch struct { + // The client request headers to match on. + Headers []RouteSpecHttpRouteMatchHeader `pulumi:"headers"` + // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + Method *string `pulumi:"method"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix string `pulumi:"prefix"` + // The client request header scheme to match on. Valid values: `http`, `https`. + Scheme *string `pulumi:"scheme"` +} + +// RouteSpecHttpRouteMatchInput is an input type that accepts RouteSpecHttpRouteMatchArgs and RouteSpecHttpRouteMatchOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchInput` via: +// +// RouteSpecHttpRouteMatchArgs{...} +type RouteSpecHttpRouteMatchInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchOutput() RouteSpecHttpRouteMatchOutput + ToRouteSpecHttpRouteMatchOutputWithContext(context.Context) RouteSpecHttpRouteMatchOutput +} + +type RouteSpecHttpRouteMatchArgs struct { + // The client request headers to match on. + Headers RouteSpecHttpRouteMatchHeaderArrayInput `pulumi:"headers"` + // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + Method pulumi.StringPtrInput `pulumi:"method"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix pulumi.StringInput `pulumi:"prefix"` + // The client request header scheme to match on. Valid values: `http`, `https`. + Scheme pulumi.StringPtrInput `pulumi:"scheme"` +} + +func (RouteSpecHttpRouteMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatch)(nil)).Elem() +} + +func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchOutput() RouteSpecHttpRouteMatchOutput { + return i.ToRouteSpecHttpRouteMatchOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchOutput) +} + +func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { + return i.ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchOutput).ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteMatchPtrInput is an input type that accepts RouteSpecHttpRouteMatchArgs, RouteSpecHttpRouteMatchPtr and RouteSpecHttpRouteMatchPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchPtrInput` via: +// +// RouteSpecHttpRouteMatchArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteMatchPtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput + ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Context) RouteSpecHttpRouteMatchPtrOutput +} + +type routeSpecHttpRouteMatchPtrType RouteSpecHttpRouteMatchArgs + +func RouteSpecHttpRouteMatchPtr(v *RouteSpecHttpRouteMatchArgs) RouteSpecHttpRouteMatchPtrInput { + return (*routeSpecHttpRouteMatchPtrType)(v) +} + +func (*routeSpecHttpRouteMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteMatch)(nil)).Elem() +} + +func (i *routeSpecHttpRouteMatchPtrType) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { + return i.ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteMatchPtrType) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchPtrOutput) +} + +type RouteSpecHttpRouteMatchOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatch)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchOutput() RouteSpecHttpRouteMatchOutput { + return o +} + +func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchOutput { + return o +} + +func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { + return o.ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatch) *RouteSpecHttpRouteMatch { + return &v + }).(RouteSpecHttpRouteMatchPtrOutput) +} + +// The client request headers to match on. +func (o RouteSpecHttpRouteMatchOutput) Headers() RouteSpecHttpRouteMatchHeaderArrayOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatch) []RouteSpecHttpRouteMatchHeader { return v.Headers }).(RouteSpecHttpRouteMatchHeaderArrayOutput) +} + +// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. +func (o RouteSpecHttpRouteMatchOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatch) *string { return v.Method }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttpRouteMatchOutput) Prefix() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatch) string { return v.Prefix }).(pulumi.StringOutput) +} + +// The client request header scheme to match on. Valid values: `http`, `https`. +func (o RouteSpecHttpRouteMatchOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatch) *string { return v.Scheme }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttpRouteMatchPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteMatch)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchPtrOutput) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { + return o +} + +func (o RouteSpecHttpRouteMatchPtrOutput) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { + return o +} + +func (o RouteSpecHttpRouteMatchPtrOutput) Elem() RouteSpecHttpRouteMatchOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatch) RouteSpecHttpRouteMatch { return *v }).(RouteSpecHttpRouteMatchOutput) +} + +// The client request headers to match on. +func (o RouteSpecHttpRouteMatchPtrOutput) Headers() RouteSpecHttpRouteMatchHeaderArrayOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatch) []RouteSpecHttpRouteMatchHeader { + if v == nil { + return nil + } + return v.Headers + }).(RouteSpecHttpRouteMatchHeaderArrayOutput) +} + +// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. +func (o RouteSpecHttpRouteMatchPtrOutput) Method() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatch) *string { + if v == nil { + return nil + } + return v.Method + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttpRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatch) *string { + if v == nil { + return nil + } + return &v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The client request header scheme to match on. Valid values: `http`, `https`. +func (o RouteSpecHttpRouteMatchPtrOutput) Scheme() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatch) *string { + if v == nil { + return nil + } + return v.Scheme + }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttpRouteMatchHeader struct { + // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + Invert *bool `pulumi:"invert"` + // The method and value to match the header value sent with a request. Specify one match method. + Match *RouteSpecHttpRouteMatchHeaderMatch `pulumi:"match"` + // A name for the HTTP header in the client request that will be matched on. + Name string `pulumi:"name"` +} + +// RouteSpecHttpRouteMatchHeaderInput is an input type that accepts RouteSpecHttpRouteMatchHeaderArgs and RouteSpecHttpRouteMatchHeaderOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderInput` via: +// +// RouteSpecHttpRouteMatchHeaderArgs{...} +type RouteSpecHttpRouteMatchHeaderInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchHeaderOutput() RouteSpecHttpRouteMatchHeaderOutput + ToRouteSpecHttpRouteMatchHeaderOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderOutput +} + +type RouteSpecHttpRouteMatchHeaderArgs struct { + // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + Invert pulumi.BoolPtrInput `pulumi:"invert"` + // The method and value to match the header value sent with a request. Specify one match method. + Match RouteSpecHttpRouteMatchHeaderMatchPtrInput `pulumi:"match"` + // A name for the HTTP header in the client request that will be matched on. + Name pulumi.StringInput `pulumi:"name"` +} + +func (RouteSpecHttpRouteMatchHeaderArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatchHeader)(nil)).Elem() +} + +func (i RouteSpecHttpRouteMatchHeaderArgs) ToRouteSpecHttpRouteMatchHeaderOutput() RouteSpecHttpRouteMatchHeaderOutput { + return i.ToRouteSpecHttpRouteMatchHeaderOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchHeaderArgs) ToRouteSpecHttpRouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderOutput) +} + +// RouteSpecHttpRouteMatchHeaderArrayInput is an input type that accepts RouteSpecHttpRouteMatchHeaderArray and RouteSpecHttpRouteMatchHeaderArrayOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderArrayInput` via: +// +// RouteSpecHttpRouteMatchHeaderArray{ RouteSpecHttpRouteMatchHeaderArgs{...} } +type RouteSpecHttpRouteMatchHeaderArrayInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchHeaderArrayOutput() RouteSpecHttpRouteMatchHeaderArrayOutput + ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderArrayOutput +} + +type RouteSpecHttpRouteMatchHeaderArray []RouteSpecHttpRouteMatchHeaderInput + +func (RouteSpecHttpRouteMatchHeaderArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttpRouteMatchHeader)(nil)).Elem() +} + +func (i RouteSpecHttpRouteMatchHeaderArray) ToRouteSpecHttpRouteMatchHeaderArrayOutput() RouteSpecHttpRouteMatchHeaderArrayOutput { + return i.ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchHeaderArray) ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderArrayOutput) +} + +type RouteSpecHttpRouteMatchHeaderOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchHeaderOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatchHeader)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchHeaderOutput) ToRouteSpecHttpRouteMatchHeaderOutput() RouteSpecHttpRouteMatchHeaderOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderOutput) ToRouteSpecHttpRouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderOutput { + return o +} + +// If `true`, the match is on the opposite of the `match` method and value. Default is `false`. +func (o RouteSpecHttpRouteMatchHeaderOutput) Invert() pulumi.BoolPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeader) *bool { return v.Invert }).(pulumi.BoolPtrOutput) +} + +// The method and value to match the header value sent with a request. Specify one match method. +func (o RouteSpecHttpRouteMatchHeaderOutput) Match() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeader) *RouteSpecHttpRouteMatchHeaderMatch { return v.Match }).(RouteSpecHttpRouteMatchHeaderMatchPtrOutput) +} + +// A name for the HTTP header in the client request that will be matched on. +func (o RouteSpecHttpRouteMatchHeaderOutput) Name() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeader) string { return v.Name }).(pulumi.StringOutput) +} + +type RouteSpecHttpRouteMatchHeaderArrayOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchHeaderArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecHttpRouteMatchHeader)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchHeaderArrayOutput) ToRouteSpecHttpRouteMatchHeaderArrayOutput() RouteSpecHttpRouteMatchHeaderArrayOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderArrayOutput) ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderArrayOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderArrayOutput) Index(i pulumi.IntInput) RouteSpecHttpRouteMatchHeaderOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttpRouteMatchHeader { + return vs[0].([]RouteSpecHttpRouteMatchHeader)[vs[1].(int)] + }).(RouteSpecHttpRouteMatchHeaderOutput) +} + +type RouteSpecHttpRouteMatchHeaderMatch struct { + // The value sent by the client must match the specified value exactly. + Exact *string `pulumi:"exact"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix *string `pulumi:"prefix"` + // The object that specifies the range of numbers that the value sent by the client must be included in. + Range *RouteSpecHttpRouteMatchHeaderMatchRange `pulumi:"range"` + // The value sent by the client must include the specified characters. + Regex *string `pulumi:"regex"` + // The value sent by the client must end with the specified characters. + Suffix *string `pulumi:"suffix"` +} + +// RouteSpecHttpRouteMatchHeaderMatchInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchArgs and RouteSpecHttpRouteMatchHeaderMatchOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchInput` via: +// +// RouteSpecHttpRouteMatchHeaderMatchArgs{...} +type RouteSpecHttpRouteMatchHeaderMatchInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchHeaderMatchOutput() RouteSpecHttpRouteMatchHeaderMatchOutput + ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchOutput +} + +type RouteSpecHttpRouteMatchHeaderMatchArgs struct { + // The value sent by the client must match the specified value exactly. + Exact pulumi.StringPtrInput `pulumi:"exact"` + // The value sent by the client must begin with the specified characters. + // This parameter must always start with /, which by itself matches all requests to the virtual router service name. + Prefix pulumi.StringPtrInput `pulumi:"prefix"` + // The object that specifies the range of numbers that the value sent by the client must be included in. + Range RouteSpecHttpRouteMatchHeaderMatchRangePtrInput `pulumi:"range"` + // The value sent by the client must include the specified characters. + Regex pulumi.StringPtrInput `pulumi:"regex"` + // The value sent by the client must end with the specified characters. + Suffix pulumi.StringPtrInput `pulumi:"suffix"` +} + +func (RouteSpecHttpRouteMatchHeaderMatchArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +} + +func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchOutput() RouteSpecHttpRouteMatchHeaderMatchOutput { + return i.ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchOutput) +} + +func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return i.ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchOutput).ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteMatchHeaderMatchPtrInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchArgs, RouteSpecHttpRouteMatchHeaderMatchPtr and RouteSpecHttpRouteMatchHeaderMatchPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchPtrInput` via: +// +// RouteSpecHttpRouteMatchHeaderMatchArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteMatchHeaderMatchPtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput + ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput +} + +type routeSpecHttpRouteMatchHeaderMatchPtrType RouteSpecHttpRouteMatchHeaderMatchArgs + +func RouteSpecHttpRouteMatchHeaderMatchPtr(v *RouteSpecHttpRouteMatchHeaderMatchArgs) RouteSpecHttpRouteMatchHeaderMatchPtrInput { + return (*routeSpecHttpRouteMatchHeaderMatchPtrType)(v) +} + +func (*routeSpecHttpRouteMatchHeaderMatchPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +} + +func (i *routeSpecHttpRouteMatchHeaderMatchPtrType) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return i.ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteMatchHeaderMatchPtrType) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchPtrOutput) +} + +type RouteSpecHttpRouteMatchHeaderMatchOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchHeaderMatchOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchOutput() RouteSpecHttpRouteMatchHeaderMatchOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return o.ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatch { + return &v + }).(RouteSpecHttpRouteMatchHeaderMatchPtrOutput) +} + +// The value sent by the client must match the specified value exactly. +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) +} + +// The object that specifies the range of numbers that the value sent by the client must be included in. +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Range() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatchRange { return v.Range }).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) +} + +// The value sent by the client must include the specified characters. +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Regex() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must end with the specified characters. +func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Suffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttpRouteMatchHeaderMatchPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchHeaderMatchPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Elem() RouteSpecHttpRouteMatchHeaderMatchOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) RouteSpecHttpRouteMatchHeaderMatch { return *v }).(RouteSpecHttpRouteMatchHeaderMatchOutput) +} + +// The value sent by the client must match the specified value exactly. +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Exact + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must begin with the specified characters. +// This parameter must always start with /, which by itself matches all requests to the virtual router service name. +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Prefix + }).(pulumi.StringPtrOutput) +} + +// The object that specifies the range of numbers that the value sent by the client must be included in. +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Range() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatchRange { + if v == nil { + return nil + } + return v.Range + }).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) +} + +// The value sent by the client must include the specified characters. +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Regex() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Regex + }).(pulumi.StringPtrOutput) +} + +// The value sent by the client must end with the specified characters. +func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Suffix() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { + if v == nil { + return nil + } + return v.Suffix + }).(pulumi.StringPtrOutput) +} + +type RouteSpecHttpRouteMatchHeaderMatchRange struct { + // The end of the range. + End int `pulumi:"end"` + // The start of the range. + Start int `pulumi:"start"` +} + +// RouteSpecHttpRouteMatchHeaderMatchRangeInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchRangeArgs and RouteSpecHttpRouteMatchHeaderMatchRangeOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchRangeInput` via: +// +// RouteSpecHttpRouteMatchHeaderMatchRangeArgs{...} +type RouteSpecHttpRouteMatchHeaderMatchRangeInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchHeaderMatchRangeOutput() RouteSpecHttpRouteMatchHeaderMatchRangeOutput + ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchRangeOutput +} + +type RouteSpecHttpRouteMatchHeaderMatchRangeArgs struct { + // The end of the range. + End pulumi.IntInput `pulumi:"end"` + // The start of the range. + Start pulumi.IntInput `pulumi:"start"` +} + +func (RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutput() RouteSpecHttpRouteMatchHeaderMatchRangeOutput { + return i.ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangeOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchRangeOutput) +} + +func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return i.ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchRangeOutput).ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteMatchHeaderMatchRangePtrInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchRangeArgs, RouteSpecHttpRouteMatchHeaderMatchRangePtr and RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchRangePtrInput` via: +// +// RouteSpecHttpRouteMatchHeaderMatchRangeArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteMatchHeaderMatchRangePtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput + ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput +} + +type routeSpecHttpRouteMatchHeaderMatchRangePtrType RouteSpecHttpRouteMatchHeaderMatchRangeArgs + +func RouteSpecHttpRouteMatchHeaderMatchRangePtr(v *RouteSpecHttpRouteMatchHeaderMatchRangeArgs) RouteSpecHttpRouteMatchHeaderMatchRangePtrInput { + return (*routeSpecHttpRouteMatchHeaderMatchRangePtrType)(v) +} + +func (*routeSpecHttpRouteMatchHeaderMatchRangePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (i *routeSpecHttpRouteMatchHeaderMatchRangePtrType) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return i.ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteMatchHeaderMatchRangePtrType) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) +} + +type RouteSpecHttpRouteMatchHeaderMatchRangeOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutput() RouteSpecHttpRouteMatchHeaderMatchRangeOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangeOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return o.ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatchRange) *RouteSpecHttpRouteMatchHeaderMatchRange { + return &v + }).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) +} + +// The end of the range. +func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) End() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatchRange) int { return v.End }).(pulumi.IntOutput) +} + +// The start of the range. +func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) Start() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatchRange) int { return v.Start }).(pulumi.IntOutput) +} + +type RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +} + +func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { + return o +} + +func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) Elem() RouteSpecHttpRouteMatchHeaderMatchRangeOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatchRange) RouteSpecHttpRouteMatchHeaderMatchRange { return *v }).(RouteSpecHttpRouteMatchHeaderMatchRangeOutput) +} + +// The end of the range. +func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) End() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatchRange) *int { + if v == nil { + return nil + } + return &v.End + }).(pulumi.IntPtrOutput) +} + +// The start of the range. +func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) Start() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatchRange) *int { + if v == nil { + return nil + } + return &v.Start + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttpRouteRetryPolicy struct { // List of HTTP retry events. // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). @@ -3516,631 +7616,1453 @@ type RouteSpecHttp2RouteRetryPolicy struct { // The maximum number of retries. MaxRetries int `pulumi:"maxRetries"` // The per-retry timeout. - PerRetryTimeout RouteSpecHttp2RouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` + PerRetryTimeout RouteSpecHttpRouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` // List of TCP retry events. The only valid value is `connection-error`. TcpRetryEvents []string `pulumi:"tcpRetryEvents"` } -// RouteSpecHttp2RouteRetryPolicyInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyArgs and RouteSpecHttp2RouteRetryPolicyOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyInput` via: +// RouteSpecHttpRouteRetryPolicyInput is an input type that accepts RouteSpecHttpRouteRetryPolicyArgs and RouteSpecHttpRouteRetryPolicyOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyInput` via: +// +// RouteSpecHttpRouteRetryPolicyArgs{...} +type RouteSpecHttpRouteRetryPolicyInput interface { + pulumi.Input + + ToRouteSpecHttpRouteRetryPolicyOutput() RouteSpecHttpRouteRetryPolicyOutput + ToRouteSpecHttpRouteRetryPolicyOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyOutput +} + +type RouteSpecHttpRouteRetryPolicyArgs struct { + // List of HTTP retry events. + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` + // The maximum number of retries. + MaxRetries pulumi.IntInput `pulumi:"maxRetries"` + // The per-retry timeout. + PerRetryTimeout RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` + // List of TCP retry events. The only valid value is `connection-error`. + TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` +} + +func (RouteSpecHttpRouteRetryPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +} + +func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyOutput() RouteSpecHttpRouteRetryPolicyOutput { + return i.ToRouteSpecHttpRouteRetryPolicyOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyOutput) +} + +func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { + return i.ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyOutput).ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteRetryPolicyPtrInput is an input type that accepts RouteSpecHttpRouteRetryPolicyArgs, RouteSpecHttpRouteRetryPolicyPtr and RouteSpecHttpRouteRetryPolicyPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyPtrInput` via: +// +// RouteSpecHttpRouteRetryPolicyArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteRetryPolicyPtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput + ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput +} + +type routeSpecHttpRouteRetryPolicyPtrType RouteSpecHttpRouteRetryPolicyArgs + +func RouteSpecHttpRouteRetryPolicyPtr(v *RouteSpecHttpRouteRetryPolicyArgs) RouteSpecHttpRouteRetryPolicyPtrInput { + return (*routeSpecHttpRouteRetryPolicyPtrType)(v) +} + +func (*routeSpecHttpRouteRetryPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +} + +func (i *routeSpecHttpRouteRetryPolicyPtrType) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { + return i.ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteRetryPolicyPtrType) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPtrOutput) +} + +type RouteSpecHttpRouteRetryPolicyOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteRetryPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +} + +func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyOutput() RouteSpecHttpRouteRetryPolicyOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { + return o.ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) *RouteSpecHttpRouteRetryPolicy { + return &v + }).(RouteSpecHttpRouteRetryPolicyPtrOutput) +} + +// List of HTTP retry events. +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +func (o RouteSpecHttpRouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) +} + +// The maximum number of retries. +func (o RouteSpecHttpRouteRetryPolicyOutput) MaxRetries() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) int { return v.MaxRetries }).(pulumi.IntOutput) +} + +// The per-retry timeout. +func (o RouteSpecHttpRouteRetryPolicyOutput) PerRetryTimeout() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) RouteSpecHttpRouteRetryPolicyPerRetryTimeout { + return v.PerRetryTimeout + }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) +} + +// List of TCP retry events. The only valid value is `connection-error`. +func (o RouteSpecHttpRouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) +} + +type RouteSpecHttpRouteRetryPolicyPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteRetryPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +} + +func (o RouteSpecHttpRouteRetryPolicyPtrOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyPtrOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyPtrOutput) Elem() RouteSpecHttpRouteRetryPolicyOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) RouteSpecHttpRouteRetryPolicy { return *v }).(RouteSpecHttpRouteRetryPolicyOutput) +} + +// List of HTTP retry events. +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). +func (o RouteSpecHttpRouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) []string { + if v == nil { + return nil + } + return v.HttpRetryEvents + }).(pulumi.StringArrayOutput) +} + +// The maximum number of retries. +func (o RouteSpecHttpRouteRetryPolicyPtrOutput) MaxRetries() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) *int { + if v == nil { + return nil + } + return &v.MaxRetries + }).(pulumi.IntPtrOutput) +} + +// The per-retry timeout. +func (o RouteSpecHttpRouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) *RouteSpecHttpRouteRetryPolicyPerRetryTimeout { + if v == nil { + return nil + } + return &v.PerRetryTimeout + }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +// List of TCP retry events. The only valid value is `connection-error`. +func (o RouteSpecHttpRouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) []string { + if v == nil { + return nil + } + return v.TcpRetryEvents + }).(pulumi.StringArrayOutput) +} + +type RouteSpecHttpRouteRetryPolicyPerRetryTimeout struct { + // Retry unit. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // Retry value. + Value int `pulumi:"value"` +} + +// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput is an input type that accepts RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs and RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput` via: +// +// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs{...} +type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput interface { + pulumi.Input + + ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput + ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput +} + +type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs struct { + // Retry unit. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // Retry value. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { + return i.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) +} + +func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return i.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput).ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput is an input type that accepts RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs, RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtr and RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput` via: +// +// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput + ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput +} + +type routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs + +func RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtr(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput { + return (*routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType)(v) +} + +func (*routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (i *routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return i.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicyPerRetryTimeout) *RouteSpecHttpRouteRetryPolicyPerRetryTimeout { + return &v + }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) +} + +// Retry unit. Valid values: `ms`, `s`. +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicyPerRetryTimeout) string { return v.Unit }).(pulumi.StringOutput) +} + +// Retry value. +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicyPerRetryTimeout) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +} + +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) Elem() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeout) RouteSpecHttpRouteRetryPolicyPerRetryTimeout { + return *v + }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) +} + +// Retry unit. Valid values: `ms`, `s`. +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeout) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// Retry value. +func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeout) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttpRouteTimeout struct { + // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + Idle *RouteSpecHttpRouteTimeoutIdle `pulumi:"idle"` + // The per request timeout. + PerRequest *RouteSpecHttpRouteTimeoutPerRequest `pulumi:"perRequest"` +} + +// RouteSpecHttpRouteTimeoutInput is an input type that accepts RouteSpecHttpRouteTimeoutArgs and RouteSpecHttpRouteTimeoutOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutInput` via: +// +// RouteSpecHttpRouteTimeoutArgs{...} +type RouteSpecHttpRouteTimeoutInput interface { + pulumi.Input + + ToRouteSpecHttpRouteTimeoutOutput() RouteSpecHttpRouteTimeoutOutput + ToRouteSpecHttpRouteTimeoutOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutOutput +} + +type RouteSpecHttpRouteTimeoutArgs struct { + // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + Idle RouteSpecHttpRouteTimeoutIdlePtrInput `pulumi:"idle"` + // The per request timeout. + PerRequest RouteSpecHttpRouteTimeoutPerRequestPtrInput `pulumi:"perRequest"` +} + +func (RouteSpecHttpRouteTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteTimeout)(nil)).Elem() +} + +func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutOutput() RouteSpecHttpRouteTimeoutOutput { + return i.ToRouteSpecHttpRouteTimeoutOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutOutput) +} + +func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { + return i.ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutOutput).ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteTimeoutPtrInput is an input type that accepts RouteSpecHttpRouteTimeoutArgs, RouteSpecHttpRouteTimeoutPtr and RouteSpecHttpRouteTimeoutPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutPtrInput` via: +// +// RouteSpecHttpRouteTimeoutArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteTimeoutPtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput + ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutPtrOutput +} + +type routeSpecHttpRouteTimeoutPtrType RouteSpecHttpRouteTimeoutArgs + +func RouteSpecHttpRouteTimeoutPtr(v *RouteSpecHttpRouteTimeoutArgs) RouteSpecHttpRouteTimeoutPtrInput { + return (*routeSpecHttpRouteTimeoutPtrType)(v) +} + +func (*routeSpecHttpRouteTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteTimeout)(nil)).Elem() +} + +func (i *routeSpecHttpRouteTimeoutPtrType) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { + return i.ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteTimeoutPtrType) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPtrOutput) +} + +type RouteSpecHttpRouteTimeoutOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteTimeout)(nil)).Elem() +} + +func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutOutput() RouteSpecHttpRouteTimeoutOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { + return o.ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeout { + return &v + }).(RouteSpecHttpRouteTimeoutPtrOutput) +} + +// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. +func (o RouteSpecHttpRouteTimeoutOutput) Idle() RouteSpecHttpRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutIdle { return v.Idle }).(RouteSpecHttpRouteTimeoutIdlePtrOutput) +} + +// The per request timeout. +func (o RouteSpecHttpRouteTimeoutOutput) PerRequest() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutPerRequest { return v.PerRequest }).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecHttpRouteTimeoutPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteTimeout)(nil)).Elem() +} + +func (o RouteSpecHttpRouteTimeoutPtrOutput) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutPtrOutput) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutPtrOutput) Elem() RouteSpecHttpRouteTimeoutOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeout) RouteSpecHttpRouteTimeout { return *v }).(RouteSpecHttpRouteTimeoutOutput) +} + +// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. +func (o RouteSpecHttpRouteTimeoutPtrOutput) Idle() RouteSpecHttpRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutIdle { + if v == nil { + return nil + } + return v.Idle + }).(RouteSpecHttpRouteTimeoutIdlePtrOutput) +} + +// The per request timeout. +func (o RouteSpecHttpRouteTimeoutPtrOutput) PerRequest() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutPerRequest { + if v == nil { + return nil + } + return v.PerRequest + }).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecHttpRouteTimeoutIdle struct { + // The unit of time. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value int `pulumi:"value"` +} + +// RouteSpecHttpRouteTimeoutIdleInput is an input type that accepts RouteSpecHttpRouteTimeoutIdleArgs and RouteSpecHttpRouteTimeoutIdleOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutIdleInput` via: +// +// RouteSpecHttpRouteTimeoutIdleArgs{...} +type RouteSpecHttpRouteTimeoutIdleInput interface { + pulumi.Input + + ToRouteSpecHttpRouteTimeoutIdleOutput() RouteSpecHttpRouteTimeoutIdleOutput + ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutIdleOutput +} + +type RouteSpecHttpRouteTimeoutIdleArgs struct { + // The unit of time. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecHttpRouteTimeoutIdleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +} + +func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdleOutput() RouteSpecHttpRouteTimeoutIdleOutput { + return i.ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutIdleOutput) +} + +func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { + return i.ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutIdleOutput).ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteTimeoutIdlePtrInput is an input type that accepts RouteSpecHttpRouteTimeoutIdleArgs, RouteSpecHttpRouteTimeoutIdlePtr and RouteSpecHttpRouteTimeoutIdlePtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutIdlePtrInput` via: +// +// RouteSpecHttpRouteTimeoutIdleArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteTimeoutIdlePtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput + ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput +} + +type routeSpecHttpRouteTimeoutIdlePtrType RouteSpecHttpRouteTimeoutIdleArgs + +func RouteSpecHttpRouteTimeoutIdlePtr(v *RouteSpecHttpRouteTimeoutIdleArgs) RouteSpecHttpRouteTimeoutIdlePtrInput { + return (*routeSpecHttpRouteTimeoutIdlePtrType)(v) +} + +func (*routeSpecHttpRouteTimeoutIdlePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +} + +func (i *routeSpecHttpRouteTimeoutIdlePtrType) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { + return i.ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteTimeoutIdlePtrType) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutIdlePtrOutput) +} + +type RouteSpecHttpRouteTimeoutIdleOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteTimeoutIdleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +} + +func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdleOutput() RouteSpecHttpRouteTimeoutIdleOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdleOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { + return o.ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeoutIdle) *RouteSpecHttpRouteTimeoutIdle { + return &v + }).(RouteSpecHttpRouteTimeoutIdlePtrOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttpRouteTimeoutIdleOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttpRouteTimeoutIdleOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecHttpRouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteTimeoutIdlePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +} + +func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) Elem() RouteSpecHttpRouteTimeoutIdleOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutIdle) RouteSpecHttpRouteTimeoutIdle { return *v }).(RouteSpecHttpRouteTimeoutIdleOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutIdle) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutIdle) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecHttpRouteTimeoutPerRequest struct { + // The unit of time. Valid values: `ms`, `s`. + Unit string `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value int `pulumi:"value"` +} + +// RouteSpecHttpRouteTimeoutPerRequestInput is an input type that accepts RouteSpecHttpRouteTimeoutPerRequestArgs and RouteSpecHttpRouteTimeoutPerRequestOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutPerRequestInput` via: +// +// RouteSpecHttpRouteTimeoutPerRequestArgs{...} +type RouteSpecHttpRouteTimeoutPerRequestInput interface { + pulumi.Input + + ToRouteSpecHttpRouteTimeoutPerRequestOutput() RouteSpecHttpRouteTimeoutPerRequestOutput + ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutPerRequestOutput +} + +type RouteSpecHttpRouteTimeoutPerRequestArgs struct { + // The unit of time. Valid values: `ms`, `s`. + Unit pulumi.StringInput `pulumi:"unit"` + // The number of time units. Minimum value of `0`. + Value pulumi.IntInput `pulumi:"value"` +} + +func (RouteSpecHttpRouteTimeoutPerRequestArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +} + +func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestOutput() RouteSpecHttpRouteTimeoutPerRequestOutput { + return i.ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPerRequestOutput) +} + +func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return i.ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPerRequestOutput).ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx) +} + +// RouteSpecHttpRouteTimeoutPerRequestPtrInput is an input type that accepts RouteSpecHttpRouteTimeoutPerRequestArgs, RouteSpecHttpRouteTimeoutPerRequestPtr and RouteSpecHttpRouteTimeoutPerRequestPtrOutput values. +// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutPerRequestPtrInput` via: +// +// RouteSpecHttpRouteTimeoutPerRequestArgs{...} +// +// or: +// +// nil +type RouteSpecHttpRouteTimeoutPerRequestPtrInput interface { + pulumi.Input + + ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput + ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput +} + +type routeSpecHttpRouteTimeoutPerRequestPtrType RouteSpecHttpRouteTimeoutPerRequestArgs + +func RouteSpecHttpRouteTimeoutPerRequestPtr(v *RouteSpecHttpRouteTimeoutPerRequestArgs) RouteSpecHttpRouteTimeoutPerRequestPtrInput { + return (*routeSpecHttpRouteTimeoutPerRequestPtrType)(v) +} + +func (*routeSpecHttpRouteTimeoutPerRequestPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +} + +func (i *routeSpecHttpRouteTimeoutPerRequestPtrType) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return i.ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (i *routeSpecHttpRouteTimeoutPerRequestPtrType) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) +} + +type RouteSpecHttpRouteTimeoutPerRequestOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteTimeoutPerRequestOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +} + +func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestOutput() RouteSpecHttpRouteTimeoutPerRequestOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return o.ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +} + +func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeoutPerRequest) *RouteSpecHttpRouteTimeoutPerRequest { + return &v + }).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttpRouteTimeoutPerRequestOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeoutPerRequest) string { return v.Unit }).(pulumi.StringOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttpRouteTimeoutPerRequestOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecHttpRouteTimeoutPerRequest) int { return v.Value }).(pulumi.IntOutput) +} + +type RouteSpecHttpRouteTimeoutPerRequestPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecHttpRouteTimeoutPerRequestPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +} + +func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { + return o +} + +func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) Elem() RouteSpecHttpRouteTimeoutPerRequestOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutPerRequest) RouteSpecHttpRouteTimeoutPerRequest { return *v }).(RouteSpecHttpRouteTimeoutPerRequestOutput) +} + +// The unit of time. Valid values: `ms`, `s`. +func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutPerRequest) *string { + if v == nil { + return nil + } + return &v.Unit + }).(pulumi.StringPtrOutput) +} + +// The number of time units. Minimum value of `0`. +func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutPerRequest) *int { + if v == nil { + return nil + } + return &v.Value + }).(pulumi.IntPtrOutput) +} + +type RouteSpecTcpRoute struct { + // The action to take if a match is determined. + Action RouteSpecTcpRouteAction `pulumi:"action"` + // The types of timeouts. + Timeout *RouteSpecTcpRouteTimeout `pulumi:"timeout"` +} + +// RouteSpecTcpRouteInput is an input type that accepts RouteSpecTcpRouteArgs and RouteSpecTcpRouteOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteInput` via: // -// RouteSpecHttp2RouteRetryPolicyArgs{...} -type RouteSpecHttp2RouteRetryPolicyInput interface { +// RouteSpecTcpRouteArgs{...} +type RouteSpecTcpRouteInput interface { pulumi.Input - ToRouteSpecHttp2RouteRetryPolicyOutput() RouteSpecHttp2RouteRetryPolicyOutput - ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyOutput + ToRouteSpecTcpRouteOutput() RouteSpecTcpRouteOutput + ToRouteSpecTcpRouteOutputWithContext(context.Context) RouteSpecTcpRouteOutput } -type RouteSpecHttp2RouteRetryPolicyArgs struct { - // List of HTTP retry events. - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` - // The maximum number of retries. - MaxRetries pulumi.IntInput `pulumi:"maxRetries"` - // The per-retry timeout. - PerRetryTimeout RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` - // List of TCP retry events. The only valid value is `connection-error`. - TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` +type RouteSpecTcpRouteArgs struct { + // The action to take if a match is determined. + Action RouteSpecTcpRouteActionInput `pulumi:"action"` + // The types of timeouts. + Timeout RouteSpecTcpRouteTimeoutPtrInput `pulumi:"timeout"` } -func (RouteSpecHttp2RouteRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +func (RouteSpecTcpRouteArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRoute)(nil)).Elem() } -func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyOutput() RouteSpecHttp2RouteRetryPolicyOutput { - return i.ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRouteOutput() RouteSpecTcpRouteOutput { + return i.ToRouteSpecTcpRouteOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyOutput) +func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRouteOutputWithContext(ctx context.Context) RouteSpecTcpRouteOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteOutput) } -func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { - return i.ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { + return i.ToRouteSpecTcpRoutePtrOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteRetryPolicyArgs) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyOutput).ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx) +func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteOutput).ToRouteSpecTcpRoutePtrOutputWithContext(ctx) } -// RouteSpecHttp2RouteRetryPolicyPtrInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyArgs, RouteSpecHttp2RouteRetryPolicyPtr and RouteSpecHttp2RouteRetryPolicyPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyPtrInput` via: +// RouteSpecTcpRoutePtrInput is an input type that accepts RouteSpecTcpRouteArgs, RouteSpecTcpRoutePtr and RouteSpecTcpRoutePtrOutput values. +// You can construct a concrete instance of `RouteSpecTcpRoutePtrInput` via: // -// RouteSpecHttp2RouteRetryPolicyArgs{...} +// RouteSpecTcpRouteArgs{...} // // or: // // nil -type RouteSpecHttp2RouteRetryPolicyPtrInput interface { +type RouteSpecTcpRoutePtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput - ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput + ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput + ToRouteSpecTcpRoutePtrOutputWithContext(context.Context) RouteSpecTcpRoutePtrOutput } -type routeSpecHttp2RouteRetryPolicyPtrType RouteSpecHttp2RouteRetryPolicyArgs +type routeSpecTcpRoutePtrType RouteSpecTcpRouteArgs -func RouteSpecHttp2RouteRetryPolicyPtr(v *RouteSpecHttp2RouteRetryPolicyArgs) RouteSpecHttp2RouteRetryPolicyPtrInput { - return (*routeSpecHttp2RouteRetryPolicyPtrType)(v) +func RouteSpecTcpRoutePtr(v *RouteSpecTcpRouteArgs) RouteSpecTcpRoutePtrInput { + return (*routeSpecTcpRoutePtrType)(v) } -func (*routeSpecHttp2RouteRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +func (*routeSpecTcpRoutePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRoute)(nil)).Elem() } -func (i *routeSpecHttp2RouteRetryPolicyPtrType) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { - return i.ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Background()) +func (i *routeSpecTcpRoutePtrType) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { + return i.ToRouteSpecTcpRoutePtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteRetryPolicyPtrType) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPtrOutput) +func (i *routeSpecTcpRoutePtrType) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRoutePtrOutput) } -type RouteSpecHttp2RouteRetryPolicyOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +func (RouteSpecTcpRouteOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRoute)(nil)).Elem() } -func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyOutput() RouteSpecHttp2RouteRetryPolicyOutput { +func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRouteOutput() RouteSpecTcpRouteOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyOutput { +func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRouteOutputWithContext(ctx context.Context) RouteSpecTcpRouteOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { - return o.ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(context.Background()) +func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { + return o.ToRouteSpecTcpRoutePtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteRetryPolicyOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) *RouteSpecHttp2RouteRetryPolicy { +func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { + return o.ApplyT(func(v RouteSpecTcpRoute) *RouteSpecTcpRoute { return &v - }).(RouteSpecHttp2RouteRetryPolicyPtrOutput) + }).(RouteSpecTcpRoutePtrOutput) } -// List of HTTP retry events. -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -func (o RouteSpecHttp2RouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) +// The action to take if a match is determined. +func (o RouteSpecTcpRouteOutput) Action() RouteSpecTcpRouteActionOutput { + return o.ApplyT(func(v RouteSpecTcpRoute) RouteSpecTcpRouteAction { return v.Action }).(RouteSpecTcpRouteActionOutput) } -// The maximum number of retries. -func (o RouteSpecHttp2RouteRetryPolicyOutput) MaxRetries() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) int { return v.MaxRetries }).(pulumi.IntOutput) +// The types of timeouts. +func (o RouteSpecTcpRouteOutput) Timeout() RouteSpecTcpRouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecTcpRoute) *RouteSpecTcpRouteTimeout { return v.Timeout }).(RouteSpecTcpRouteTimeoutPtrOutput) } -// The per-retry timeout. -func (o RouteSpecHttp2RouteRetryPolicyOutput) PerRetryTimeout() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { - return v.PerRetryTimeout - }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) +type RouteSpecTcpRoutePtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecTcpRoutePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRoute)(nil)).Elem() +} + +func (o RouteSpecTcpRoutePtrOutput) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { + return o +} + +func (o RouteSpecTcpRoutePtrOutput) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { + return o +} + +func (o RouteSpecTcpRoutePtrOutput) Elem() RouteSpecTcpRouteOutput { + return o.ApplyT(func(v *RouteSpecTcpRoute) RouteSpecTcpRoute { return *v }).(RouteSpecTcpRouteOutput) +} + +// The action to take if a match is determined. +func (o RouteSpecTcpRoutePtrOutput) Action() RouteSpecTcpRouteActionPtrOutput { + return o.ApplyT(func(v *RouteSpecTcpRoute) *RouteSpecTcpRouteAction { + if v == nil { + return nil + } + return &v.Action + }).(RouteSpecTcpRouteActionPtrOutput) +} + +// The types of timeouts. +func (o RouteSpecTcpRoutePtrOutput) Timeout() RouteSpecTcpRouteTimeoutPtrOutput { + return o.ApplyT(func(v *RouteSpecTcpRoute) *RouteSpecTcpRouteTimeout { + if v == nil { + return nil + } + return v.Timeout + }).(RouteSpecTcpRouteTimeoutPtrOutput) +} + +type RouteSpecTcpRouteAction struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets []RouteSpecTcpRouteActionWeightedTarget `pulumi:"weightedTargets"` +} + +// RouteSpecTcpRouteActionInput is an input type that accepts RouteSpecTcpRouteActionArgs and RouteSpecTcpRouteActionOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteActionInput` via: +// +// RouteSpecTcpRouteActionArgs{...} +type RouteSpecTcpRouteActionInput interface { + pulumi.Input + + ToRouteSpecTcpRouteActionOutput() RouteSpecTcpRouteActionOutput + ToRouteSpecTcpRouteActionOutputWithContext(context.Context) RouteSpecTcpRouteActionOutput +} + +type RouteSpecTcpRouteActionArgs struct { + // The targets that traffic is routed to when a request matches the route. + // You can specify one or more targets and their relative weights with which to distribute traffic. + WeightedTargets RouteSpecTcpRouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` +} + +func (RouteSpecTcpRouteActionArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteAction)(nil)).Elem() +} + +func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionOutput() RouteSpecTcpRouteActionOutput { + return i.ToRouteSpecTcpRouteActionOutputWithContext(context.Background()) +} + +func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionOutput) +} + +func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { + return i.ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Background()) +} + +func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionOutput).ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx) +} + +// RouteSpecTcpRouteActionPtrInput is an input type that accepts RouteSpecTcpRouteActionArgs, RouteSpecTcpRouteActionPtr and RouteSpecTcpRouteActionPtrOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteActionPtrInput` via: +// +// RouteSpecTcpRouteActionArgs{...} +// +// or: +// +// nil +type RouteSpecTcpRouteActionPtrInput interface { + pulumi.Input + + ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput + ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Context) RouteSpecTcpRouteActionPtrOutput +} + +type routeSpecTcpRouteActionPtrType RouteSpecTcpRouteActionArgs + +func RouteSpecTcpRouteActionPtr(v *RouteSpecTcpRouteActionArgs) RouteSpecTcpRouteActionPtrInput { + return (*routeSpecTcpRouteActionPtrType)(v) +} + +func (*routeSpecTcpRouteActionPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRouteAction)(nil)).Elem() +} + +func (i *routeSpecTcpRouteActionPtrType) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { + return i.ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Background()) } -// List of TCP retry events. The only valid value is `connection-error`. -func (o RouteSpecHttp2RouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) +func (i *routeSpecTcpRouteActionPtrType) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionPtrOutput) } -type RouteSpecHttp2RouteRetryPolicyPtrOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteActionOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicy)(nil)).Elem() +func (RouteSpecTcpRouteActionOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteAction)(nil)).Elem() } -func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutput() RouteSpecHttp2RouteRetryPolicyPtrOutput { +func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionOutput() RouteSpecTcpRouteActionOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPtrOutput { +func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) Elem() RouteSpecHttp2RouteRetryPolicyOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) RouteSpecHttp2RouteRetryPolicy { return *v }).(RouteSpecHttp2RouteRetryPolicyOutput) +func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { + return o.ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Background()) } -// List of HTTP retry events. -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) []string { - if v == nil { - return nil - } - return v.HttpRetryEvents - }).(pulumi.StringArrayOutput) +func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { + return o.ApplyT(func(v RouteSpecTcpRouteAction) *RouteSpecTcpRouteAction { + return &v + }).(RouteSpecTcpRouteActionPtrOutput) } -// The maximum number of retries. -func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) MaxRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) *int { - if v == nil { - return nil - } - return &v.MaxRetries - }).(pulumi.IntPtrOutput) +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecTcpRouteActionOutput) WeightedTargets() RouteSpecTcpRouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v RouteSpecTcpRouteAction) []RouteSpecTcpRouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecTcpRouteActionWeightedTargetArrayOutput) } -// The per-retry timeout. -func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { - if v == nil { - return nil - } - return &v.PerRetryTimeout - }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) +type RouteSpecTcpRouteActionPtrOutput struct{ *pulumi.OutputState } + +func (RouteSpecTcpRouteActionPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRouteAction)(nil)).Elem() } -// List of TCP retry events. The only valid value is `connection-error`. -func (o RouteSpecHttp2RouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicy) []string { +func (o RouteSpecTcpRouteActionPtrOutput) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { + return o +} + +func (o RouteSpecTcpRouteActionPtrOutput) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { + return o +} + +func (o RouteSpecTcpRouteActionPtrOutput) Elem() RouteSpecTcpRouteActionOutput { + return o.ApplyT(func(v *RouteSpecTcpRouteAction) RouteSpecTcpRouteAction { return *v }).(RouteSpecTcpRouteActionOutput) +} + +// The targets that traffic is routed to when a request matches the route. +// You can specify one or more targets and their relative weights with which to distribute traffic. +func (o RouteSpecTcpRouteActionPtrOutput) WeightedTargets() RouteSpecTcpRouteActionWeightedTargetArrayOutput { + return o.ApplyT(func(v *RouteSpecTcpRouteAction) []RouteSpecTcpRouteActionWeightedTarget { if v == nil { return nil } - return v.TcpRetryEvents - }).(pulumi.StringArrayOutput) + return v.WeightedTargets + }).(RouteSpecTcpRouteActionWeightedTargetArrayOutput) } -type RouteSpecHttp2RouteRetryPolicyPerRetryTimeout struct { - // Retry unit. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // Retry value. - Value int `pulumi:"value"` +type RouteSpecTcpRouteActionWeightedTarget struct { + // The virtual node to associate with the weighted target. + VirtualNode string `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight int `pulumi:"weight"` } -// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs and RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput` via: +// RouteSpecTcpRouteActionWeightedTargetInput is an input type that accepts RouteSpecTcpRouteActionWeightedTargetArgs and RouteSpecTcpRouteActionWeightedTargetOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteActionWeightedTargetInput` via: // -// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs{...} -type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutInput interface { +// RouteSpecTcpRouteActionWeightedTargetArgs{...} +type RouteSpecTcpRouteActionWeightedTargetInput interface { pulumi.Input - ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput - ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput -} - -type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs struct { - // Retry unit. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // Retry value. - Value pulumi.IntInput `pulumi:"value"` -} - -func (RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() + ToRouteSpecTcpRouteActionWeightedTargetOutput() RouteSpecTcpRouteActionWeightedTargetOutput + ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecTcpRouteActionWeightedTargetOutput } -func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { - return i.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Background()) +type RouteSpecTcpRouteActionWeightedTargetArgs struct { + // The virtual node to associate with the weighted target. + VirtualNode pulumi.StringInput `pulumi:"virtualNode"` + // The relative weight of the weighted target. An integer between 0 and 100. + Weight pulumi.IntInput `pulumi:"weight"` } -func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) +func (RouteSpecTcpRouteActionWeightedTargetArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() } -func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { - return i.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteActionWeightedTargetArgs) ToRouteSpecTcpRouteActionWeightedTargetOutput() RouteSpecTcpRouteActionWeightedTargetOutput { + return i.ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput).ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx) +func (i RouteSpecTcpRouteActionWeightedTargetArgs) ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionWeightedTargetOutput) } -// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput is an input type that accepts RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs, RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtr and RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput` via: -// -// RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs{...} -// -// or: +// RouteSpecTcpRouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecTcpRouteActionWeightedTargetArray and RouteSpecTcpRouteActionWeightedTargetArrayOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteActionWeightedTargetArrayInput` via: // -// nil -type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput interface { +// RouteSpecTcpRouteActionWeightedTargetArray{ RouteSpecTcpRouteActionWeightedTargetArgs{...} } +type RouteSpecTcpRouteActionWeightedTargetArrayInput interface { pulumi.Input - ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput - ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput + ToRouteSpecTcpRouteActionWeightedTargetArrayOutput() RouteSpecTcpRouteActionWeightedTargetArrayOutput + ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecTcpRouteActionWeightedTargetArrayOutput } -type routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs - -func RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtr(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrInput { - return (*routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType)(v) -} +type RouteSpecTcpRouteActionWeightedTargetArray []RouteSpecTcpRouteActionWeightedTargetInput -func (*routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (RouteSpecTcpRouteActionWeightedTargetArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() } -func (i *routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { - return i.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteActionWeightedTargetArray) ToRouteSpecTcpRouteActionWeightedTargetArrayOutput() RouteSpecTcpRouteActionWeightedTargetArrayOutput { + return i.ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) +func (i RouteSpecTcpRouteActionWeightedTargetArray) ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionWeightedTargetArrayOutput) } -type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteActionWeightedTargetOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (RouteSpecTcpRouteActionWeightedTargetOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() } -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { +func (o RouteSpecTcpRouteActionWeightedTargetOutput) ToRouteSpecTcpRouteActionWeightedTargetOutput() RouteSpecTcpRouteActionWeightedTargetOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { +func (o RouteSpecTcpRouteActionWeightedTargetOutput) ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) -} - -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { - return &v - }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) -} - -// Retry unit. Valid values: `ms`, `s`. -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) string { return v.Unit }).(pulumi.StringOutput) +// The virtual node to associate with the weighted target. +func (o RouteSpecTcpRouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecTcpRouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) } -// Retry value. -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) int { return v.Value }).(pulumi.IntOutput) +// The relative weight of the weighted target. An integer between 0 and 100. +func (o RouteSpecTcpRouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecTcpRouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) } -type RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (RouteSpecTcpRouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() } -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { +func (o RouteSpecTcpRouteActionWeightedTargetArrayOutput) ToRouteSpecTcpRouteActionWeightedTargetArrayOutput() RouteSpecTcpRouteActionWeightedTargetArrayOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput { +func (o RouteSpecTcpRouteActionWeightedTargetArrayOutput) ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetArrayOutput { return o } -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) Elem() RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) RouteSpecHttp2RouteRetryPolicyPerRetryTimeout { - return *v - }).(RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutOutput) -} - -// Retry unit. Valid values: `ms`, `s`. -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) *string { - if v == nil { - return nil - } - return &v.Unit - }).(pulumi.StringPtrOutput) -} - -// Retry value. -func (o RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutPtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteRetryPolicyPerRetryTimeout) *int { - if v == nil { - return nil - } - return &v.Value - }).(pulumi.IntPtrOutput) +func (o RouteSpecTcpRouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecTcpRouteActionWeightedTargetOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecTcpRouteActionWeightedTarget { + return vs[0].([]RouteSpecTcpRouteActionWeightedTarget)[vs[1].(int)] + }).(RouteSpecTcpRouteActionWeightedTargetOutput) } -type RouteSpecHttp2RouteTimeout struct { +type RouteSpecTcpRouteTimeout struct { // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle *RouteSpecHttp2RouteTimeoutIdle `pulumi:"idle"` - // The per request timeout. - PerRequest *RouteSpecHttp2RouteTimeoutPerRequest `pulumi:"perRequest"` + Idle *RouteSpecTcpRouteTimeoutIdle `pulumi:"idle"` } -// RouteSpecHttp2RouteTimeoutInput is an input type that accepts RouteSpecHttp2RouteTimeoutArgs and RouteSpecHttp2RouteTimeoutOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutInput` via: +// RouteSpecTcpRouteTimeoutInput is an input type that accepts RouteSpecTcpRouteTimeoutArgs and RouteSpecTcpRouteTimeoutOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutInput` via: // -// RouteSpecHttp2RouteTimeoutArgs{...} -type RouteSpecHttp2RouteTimeoutInput interface { +// RouteSpecTcpRouteTimeoutArgs{...} +type RouteSpecTcpRouteTimeoutInput interface { pulumi.Input - ToRouteSpecHttp2RouteTimeoutOutput() RouteSpecHttp2RouteTimeoutOutput - ToRouteSpecHttp2RouteTimeoutOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutOutput + ToRouteSpecTcpRouteTimeoutOutput() RouteSpecTcpRouteTimeoutOutput + ToRouteSpecTcpRouteTimeoutOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutOutput } -type RouteSpecHttp2RouteTimeoutArgs struct { +type RouteSpecTcpRouteTimeoutArgs struct { // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle RouteSpecHttp2RouteTimeoutIdlePtrInput `pulumi:"idle"` - // The per request timeout. - PerRequest RouteSpecHttp2RouteTimeoutPerRequestPtrInput `pulumi:"perRequest"` + Idle RouteSpecTcpRouteTimeoutIdlePtrInput `pulumi:"idle"` } -func (RouteSpecHttp2RouteTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteTimeout)(nil)).Elem() +func (RouteSpecTcpRouteTimeoutArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteTimeout)(nil)).Elem() } -func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutOutput() RouteSpecHttp2RouteTimeoutOutput { - return i.ToRouteSpecHttp2RouteTimeoutOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutOutput() RouteSpecTcpRouteTimeoutOutput { + return i.ToRouteSpecTcpRouteTimeoutOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutOutput) +func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutOutput) } -func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { - return i.ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { + return i.ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteTimeoutArgs) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutOutput).ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx) +func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutOutput).ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx) } -// RouteSpecHttp2RouteTimeoutPtrInput is an input type that accepts RouteSpecHttp2RouteTimeoutArgs, RouteSpecHttp2RouteTimeoutPtr and RouteSpecHttp2RouteTimeoutPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutPtrInput` via: +// RouteSpecTcpRouteTimeoutPtrInput is an input type that accepts RouteSpecTcpRouteTimeoutArgs, RouteSpecTcpRouteTimeoutPtr and RouteSpecTcpRouteTimeoutPtrOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutPtrInput` via: // -// RouteSpecHttp2RouteTimeoutArgs{...} +// RouteSpecTcpRouteTimeoutArgs{...} // // or: // // nil -type RouteSpecHttp2RouteTimeoutPtrInput interface { +type RouteSpecTcpRouteTimeoutPtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput - ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutPtrOutput + ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput + ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutPtrOutput } -type routeSpecHttp2RouteTimeoutPtrType RouteSpecHttp2RouteTimeoutArgs +type routeSpecTcpRouteTimeoutPtrType RouteSpecTcpRouteTimeoutArgs -func RouteSpecHttp2RouteTimeoutPtr(v *RouteSpecHttp2RouteTimeoutArgs) RouteSpecHttp2RouteTimeoutPtrInput { - return (*routeSpecHttp2RouteTimeoutPtrType)(v) +func RouteSpecTcpRouteTimeoutPtr(v *RouteSpecTcpRouteTimeoutArgs) RouteSpecTcpRouteTimeoutPtrInput { + return (*routeSpecTcpRouteTimeoutPtrType)(v) } -func (*routeSpecHttp2RouteTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteTimeout)(nil)).Elem() +func (*routeSpecTcpRouteTimeoutPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRouteTimeout)(nil)).Elem() } -func (i *routeSpecHttp2RouteTimeoutPtrType) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { - return i.ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Background()) +func (i *routeSpecTcpRouteTimeoutPtrType) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { + return i.ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteTimeoutPtrType) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPtrOutput) +func (i *routeSpecTcpRouteTimeoutPtrType) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutPtrOutput) } -type RouteSpecHttp2RouteTimeoutOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteTimeoutOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteTimeout)(nil)).Elem() +func (RouteSpecTcpRouteTimeoutOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteTimeout)(nil)).Elem() } -func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutOutput() RouteSpecHttp2RouteTimeoutOutput { +func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutOutput() RouteSpecTcpRouteTimeoutOutput { return o } -func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutOutput { +func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutOutput { return o } -func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { - return o.ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(context.Background()) +func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { + return o.ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteTimeoutOutput) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeout { +func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { + return o.ApplyT(func(v RouteSpecTcpRouteTimeout) *RouteSpecTcpRouteTimeout { return &v - }).(RouteSpecHttp2RouteTimeoutPtrOutput) + }).(RouteSpecTcpRouteTimeoutPtrOutput) } // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecHttp2RouteTimeoutOutput) Idle() RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutIdle { return v.Idle }).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) -} - -// The per request timeout. -func (o RouteSpecHttp2RouteTimeoutOutput) PerRequest() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutPerRequest { return v.PerRequest }).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) +func (o RouteSpecTcpRouteTimeoutOutput) Idle() RouteSpecTcpRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecTcpRouteTimeout) *RouteSpecTcpRouteTimeoutIdle { return v.Idle }).(RouteSpecTcpRouteTimeoutIdlePtrOutput) } -type RouteSpecHttp2RouteTimeoutPtrOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteTimeoutPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteTimeout)(nil)).Elem() +func (RouteSpecTcpRouteTimeoutPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRouteTimeout)(nil)).Elem() } -func (o RouteSpecHttp2RouteTimeoutPtrOutput) ToRouteSpecHttp2RouteTimeoutPtrOutput() RouteSpecHttp2RouteTimeoutPtrOutput { +func (o RouteSpecTcpRouteTimeoutPtrOutput) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { return o } -func (o RouteSpecHttp2RouteTimeoutPtrOutput) ToRouteSpecHttp2RouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPtrOutput { +func (o RouteSpecTcpRouteTimeoutPtrOutput) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { return o } -func (o RouteSpecHttp2RouteTimeoutPtrOutput) Elem() RouteSpecHttp2RouteTimeoutOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeout) RouteSpecHttp2RouteTimeout { return *v }).(RouteSpecHttp2RouteTimeoutOutput) +func (o RouteSpecTcpRouteTimeoutPtrOutput) Elem() RouteSpecTcpRouteTimeoutOutput { + return o.ApplyT(func(v *RouteSpecTcpRouteTimeout) RouteSpecTcpRouteTimeout { return *v }).(RouteSpecTcpRouteTimeoutOutput) } // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecHttp2RouteTimeoutPtrOutput) Idle() RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutIdle { +func (o RouteSpecTcpRouteTimeoutPtrOutput) Idle() RouteSpecTcpRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v *RouteSpecTcpRouteTimeout) *RouteSpecTcpRouteTimeoutIdle { if v == nil { return nil } return v.Idle - }).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) -} - -// The per request timeout. -func (o RouteSpecHttp2RouteTimeoutPtrOutput) PerRequest() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeout) *RouteSpecHttp2RouteTimeoutPerRequest { - if v == nil { - return nil - } - return v.PerRequest - }).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) + }).(RouteSpecTcpRouteTimeoutIdlePtrOutput) } -type RouteSpecHttp2RouteTimeoutIdle struct { +type RouteSpecTcpRouteTimeoutIdle struct { // The unit of time. Valid values: `ms`, `s`. Unit string `pulumi:"unit"` // The number of time units. Minimum value of `0`. Value int `pulumi:"value"` } -// RouteSpecHttp2RouteTimeoutIdleInput is an input type that accepts RouteSpecHttp2RouteTimeoutIdleArgs and RouteSpecHttp2RouteTimeoutIdleOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutIdleInput` via: +// RouteSpecTcpRouteTimeoutIdleInput is an input type that accepts RouteSpecTcpRouteTimeoutIdleArgs and RouteSpecTcpRouteTimeoutIdleOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutIdleInput` via: // -// RouteSpecHttp2RouteTimeoutIdleArgs{...} -type RouteSpecHttp2RouteTimeoutIdleInput interface { +// RouteSpecTcpRouteTimeoutIdleArgs{...} +type RouteSpecTcpRouteTimeoutIdleInput interface { pulumi.Input - ToRouteSpecHttp2RouteTimeoutIdleOutput() RouteSpecHttp2RouteTimeoutIdleOutput - ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutIdleOutput + ToRouteSpecTcpRouteTimeoutIdleOutput() RouteSpecTcpRouteTimeoutIdleOutput + ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutIdleOutput } -type RouteSpecHttp2RouteTimeoutIdleArgs struct { +type RouteSpecTcpRouteTimeoutIdleArgs struct { // The unit of time. Valid values: `ms`, `s`. Unit pulumi.StringInput `pulumi:"unit"` // The number of time units. Minimum value of `0`. Value pulumi.IntInput `pulumi:"value"` } -func (RouteSpecHttp2RouteTimeoutIdleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +func (RouteSpecTcpRouteTimeoutIdleArgs) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() } -func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdleOutput() RouteSpecHttp2RouteTimeoutIdleOutput { - return i.ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdleOutput() RouteSpecTcpRouteTimeoutIdleOutput { + return i.ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutIdleOutput) +func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdleOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutIdleOutput) } -func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return i.ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { + return i.ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteTimeoutIdleArgs) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutIdleOutput).ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx) +func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutIdleOutput).ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx) } -// RouteSpecHttp2RouteTimeoutIdlePtrInput is an input type that accepts RouteSpecHttp2RouteTimeoutIdleArgs, RouteSpecHttp2RouteTimeoutIdlePtr and RouteSpecHttp2RouteTimeoutIdlePtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutIdlePtrInput` via: +// RouteSpecTcpRouteTimeoutIdlePtrInput is an input type that accepts RouteSpecTcpRouteTimeoutIdleArgs, RouteSpecTcpRouteTimeoutIdlePtr and RouteSpecTcpRouteTimeoutIdlePtrOutput values. +// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutIdlePtrInput` via: // -// RouteSpecHttp2RouteTimeoutIdleArgs{...} +// RouteSpecTcpRouteTimeoutIdleArgs{...} // // or: // // nil -type RouteSpecHttp2RouteTimeoutIdlePtrInput interface { +type RouteSpecTcpRouteTimeoutIdlePtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput - ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput + ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput + ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput } -type routeSpecHttp2RouteTimeoutIdlePtrType RouteSpecHttp2RouteTimeoutIdleArgs +type routeSpecTcpRouteTimeoutIdlePtrType RouteSpecTcpRouteTimeoutIdleArgs -func RouteSpecHttp2RouteTimeoutIdlePtr(v *RouteSpecHttp2RouteTimeoutIdleArgs) RouteSpecHttp2RouteTimeoutIdlePtrInput { - return (*routeSpecHttp2RouteTimeoutIdlePtrType)(v) +func RouteSpecTcpRouteTimeoutIdlePtr(v *RouteSpecTcpRouteTimeoutIdleArgs) RouteSpecTcpRouteTimeoutIdlePtrInput { + return (*routeSpecTcpRouteTimeoutIdlePtrType)(v) } -func (*routeSpecHttp2RouteTimeoutIdlePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +func (*routeSpecTcpRouteTimeoutIdlePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() } -func (i *routeSpecHttp2RouteTimeoutIdlePtrType) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return i.ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i *routeSpecTcpRouteTimeoutIdlePtrType) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { + return i.ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteTimeoutIdlePtrType) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) +func (i *routeSpecTcpRouteTimeoutIdlePtrType) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutIdlePtrOutput) } -type RouteSpecHttp2RouteTimeoutIdleOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteTimeoutIdleOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteTimeoutIdleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +func (RouteSpecTcpRouteTimeoutIdleOutput) ElementType() reflect.Type { + return reflect.TypeOf((*RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() } -func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdleOutput() RouteSpecHttp2RouteTimeoutIdleOutput { +func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdleOutput() RouteSpecTcpRouteTimeoutIdleOutput { return o } -func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdleOutput { +func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdleOutput { return o } -func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return o.ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { + return o.ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteTimeoutIdleOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutIdle) *RouteSpecHttp2RouteTimeoutIdle { +func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { + return o.ApplyT(func(v RouteSpecTcpRouteTimeoutIdle) *RouteSpecTcpRouteTimeoutIdle { return &v - }).(RouteSpecHttp2RouteTimeoutIdlePtrOutput) + }).(RouteSpecTcpRouteTimeoutIdlePtrOutput) } // The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttp2RouteTimeoutIdleOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) +func (o RouteSpecTcpRouteTimeoutIdleOutput) Unit() pulumi.StringOutput { + return o.ApplyT(func(v RouteSpecTcpRouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) } // The number of time units. Minimum value of `0`. -func (o RouteSpecHttp2RouteTimeoutIdleOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) +func (o RouteSpecTcpRouteTimeoutIdleOutput) Value() pulumi.IntOutput { + return o.ApplyT(func(v RouteSpecTcpRouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) } -type RouteSpecHttp2RouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } +type RouteSpecTcpRouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteTimeoutIdlePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutIdle)(nil)).Elem() +func (RouteSpecTcpRouteTimeoutIdlePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() } -func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutput() RouteSpecHttp2RouteTimeoutIdlePtrOutput { +func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { return o } -func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) ToRouteSpecHttp2RouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutIdlePtrOutput { +func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { return o } -func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Elem() RouteSpecHttp2RouteTimeoutIdleOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutIdle) RouteSpecHttp2RouteTimeoutIdle { return *v }).(RouteSpecHttp2RouteTimeoutIdleOutput) +func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) Elem() RouteSpecTcpRouteTimeoutIdleOutput { + return o.ApplyT(func(v *RouteSpecTcpRouteTimeoutIdle) RouteSpecTcpRouteTimeoutIdle { return *v }).(RouteSpecTcpRouteTimeoutIdleOutput) } // The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutIdle) *string { +func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { + return o.ApplyT(func(v *RouteSpecTcpRouteTimeoutIdle) *string { if v == nil { return nil } @@ -4149,8 +9071,8 @@ func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { } // The number of time units. Minimum value of `0`. -func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutIdle) *int { +func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { + return o.ApplyT(func(v *RouteSpecTcpRouteTimeoutIdle) *int { if v == nil { return nil } @@ -4158,2725 +9080,2718 @@ func (o RouteSpecHttp2RouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { }).(pulumi.IntPtrOutput) } -type RouteSpecHttp2RouteTimeoutPerRequest struct { - // The unit of time. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value int `pulumi:"value"` +type VirtualGatewaySpec struct { + // The defaults for backends. + BackendDefaults *VirtualGatewaySpecBackendDefaults `pulumi:"backendDefaults"` + // The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + Listener VirtualGatewaySpecListener `pulumi:"listener"` + // The inbound and outbound access logging information for the virtual gateway. + Logging *VirtualGatewaySpecLogging `pulumi:"logging"` } -// RouteSpecHttp2RouteTimeoutPerRequestInput is an input type that accepts RouteSpecHttp2RouteTimeoutPerRequestArgs and RouteSpecHttp2RouteTimeoutPerRequestOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutPerRequestInput` via: +// VirtualGatewaySpecInput is an input type that accepts VirtualGatewaySpecArgs and VirtualGatewaySpecOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecInput` via: // -// RouteSpecHttp2RouteTimeoutPerRequestArgs{...} -type RouteSpecHttp2RouteTimeoutPerRequestInput interface { +// VirtualGatewaySpecArgs{...} +type VirtualGatewaySpecInput interface { pulumi.Input - ToRouteSpecHttp2RouteTimeoutPerRequestOutput() RouteSpecHttp2RouteTimeoutPerRequestOutput - ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutPerRequestOutput + ToVirtualGatewaySpecOutput() VirtualGatewaySpecOutput + ToVirtualGatewaySpecOutputWithContext(context.Context) VirtualGatewaySpecOutput } -type RouteSpecHttp2RouteTimeoutPerRequestArgs struct { - // The unit of time. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value pulumi.IntInput `pulumi:"value"` +type VirtualGatewaySpecArgs struct { + // The defaults for backends. + BackendDefaults VirtualGatewaySpecBackendDefaultsPtrInput `pulumi:"backendDefaults"` + // The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + Listener VirtualGatewaySpecListenerInput `pulumi:"listener"` + // The inbound and outbound access logging information for the virtual gateway. + Logging VirtualGatewaySpecLoggingPtrInput `pulumi:"logging"` } -func (RouteSpecHttp2RouteTimeoutPerRequestArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +func (VirtualGatewaySpecArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpec)(nil)).Elem() } -func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestOutput() RouteSpecHttp2RouteTimeoutPerRequestOutput { - return i.ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(context.Background()) +func (i VirtualGatewaySpecArgs) ToVirtualGatewaySpecOutput() VirtualGatewaySpecOutput { + return i.ToVirtualGatewaySpecOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPerRequestOutput) +func (i VirtualGatewaySpecArgs) ToVirtualGatewaySpecOutputWithContext(ctx context.Context) VirtualGatewaySpecOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecOutput) } -func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return i.ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecArgs) ToVirtualGatewaySpecPtrOutput() VirtualGatewaySpecPtrOutput { + return i.ToVirtualGatewaySpecPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttp2RouteTimeoutPerRequestArgs) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPerRequestOutput).ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecArgs) ToVirtualGatewaySpecPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecOutput).ToVirtualGatewaySpecPtrOutputWithContext(ctx) } -// RouteSpecHttp2RouteTimeoutPerRequestPtrInput is an input type that accepts RouteSpecHttp2RouteTimeoutPerRequestArgs, RouteSpecHttp2RouteTimeoutPerRequestPtr and RouteSpecHttp2RouteTimeoutPerRequestPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttp2RouteTimeoutPerRequestPtrInput` via: +// VirtualGatewaySpecPtrInput is an input type that accepts VirtualGatewaySpecArgs, VirtualGatewaySpecPtr and VirtualGatewaySpecPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecPtrInput` via: // -// RouteSpecHttp2RouteTimeoutPerRequestArgs{...} +// VirtualGatewaySpecArgs{...} // // or: // // nil -type RouteSpecHttp2RouteTimeoutPerRequestPtrInput interface { +type VirtualGatewaySpecPtrInput interface { pulumi.Input - ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput - ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput + ToVirtualGatewaySpecPtrOutput() VirtualGatewaySpecPtrOutput + ToVirtualGatewaySpecPtrOutputWithContext(context.Context) VirtualGatewaySpecPtrOutput } -type routeSpecHttp2RouteTimeoutPerRequestPtrType RouteSpecHttp2RouteTimeoutPerRequestArgs +type virtualGatewaySpecPtrType VirtualGatewaySpecArgs -func RouteSpecHttp2RouteTimeoutPerRequestPtr(v *RouteSpecHttp2RouteTimeoutPerRequestArgs) RouteSpecHttp2RouteTimeoutPerRequestPtrInput { - return (*routeSpecHttp2RouteTimeoutPerRequestPtrType)(v) +func VirtualGatewaySpecPtr(v *VirtualGatewaySpecArgs) VirtualGatewaySpecPtrInput { + return (*virtualGatewaySpecPtrType)(v) } -func (*routeSpecHttp2RouteTimeoutPerRequestPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +func (*virtualGatewaySpecPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpec)(nil)).Elem() } -func (i *routeSpecHttp2RouteTimeoutPerRequestPtrType) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return i.ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecPtrType) ToVirtualGatewaySpecPtrOutput() VirtualGatewaySpecPtrOutput { + return i.ToVirtualGatewaySpecPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttp2RouteTimeoutPerRequestPtrType) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) +func (i *virtualGatewaySpecPtrType) ToVirtualGatewaySpecPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecPtrOutput) } -type RouteSpecHttp2RouteTimeoutPerRequestOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecOutput struct{ *pulumi.OutputState } -func (RouteSpecHttp2RouteTimeoutPerRequestOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +func (VirtualGatewaySpecOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpec)(nil)).Elem() } -func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestOutput() RouteSpecHttp2RouteTimeoutPerRequestOutput { +func (o VirtualGatewaySpecOutput) ToVirtualGatewaySpecOutput() VirtualGatewaySpecOutput { return o } -func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestOutput { +func (o VirtualGatewaySpecOutput) ToVirtualGatewaySpecOutputWithContext(ctx context.Context) VirtualGatewaySpecOutput { return o } -func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return o.ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecOutput) ToVirtualGatewaySpecPtrOutput() VirtualGatewaySpecPtrOutput { + return o.ToVirtualGatewaySpecPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutPerRequest) *RouteSpecHttp2RouteTimeoutPerRequest { +func (o VirtualGatewaySpecOutput) ToVirtualGatewaySpecPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpec) *VirtualGatewaySpec { return &v - }).(RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) + }).(VirtualGatewaySpecPtrOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutPerRequest) string { return v.Unit }).(pulumi.StringOutput) +// The defaults for backends. +func (o VirtualGatewaySpecOutput) BackendDefaults() VirtualGatewaySpecBackendDefaultsPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpec) *VirtualGatewaySpecBackendDefaults { return v.BackendDefaults }).(VirtualGatewaySpecBackendDefaultsPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecHttp2RouteTimeoutPerRequestOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttp2RouteTimeoutPerRequest) int { return v.Value }).(pulumi.IntOutput) +// The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. +func (o VirtualGatewaySpecOutput) Listener() VirtualGatewaySpecListenerOutput { + return o.ApplyT(func(v VirtualGatewaySpec) VirtualGatewaySpecListener { return v.Listener }).(VirtualGatewaySpecListenerOutput) } -type RouteSpecHttp2RouteTimeoutPerRequestPtrOutput struct{ *pulumi.OutputState } +// The inbound and outbound access logging information for the virtual gateway. +func (o VirtualGatewaySpecOutput) Logging() VirtualGatewaySpecLoggingPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpec) *VirtualGatewaySpecLogging { return v.Logging }).(VirtualGatewaySpecLoggingPtrOutput) +} -func (RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttp2RouteTimeoutPerRequest)(nil)).Elem() +type VirtualGatewaySpecPtrOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpec)(nil)).Elem() } -func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutput() RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { +func (o VirtualGatewaySpecPtrOutput) ToVirtualGatewaySpecPtrOutput() VirtualGatewaySpecPtrOutput { return o } -func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) ToRouteSpecHttp2RouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttp2RouteTimeoutPerRequestPtrOutput { +func (o VirtualGatewaySpecPtrOutput) ToVirtualGatewaySpecPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecPtrOutput { return o } -func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) Elem() RouteSpecHttp2RouteTimeoutPerRequestOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutPerRequest) RouteSpecHttp2RouteTimeoutPerRequest { return *v }).(RouteSpecHttp2RouteTimeoutPerRequestOutput) +func (o VirtualGatewaySpecPtrOutput) Elem() VirtualGatewaySpecOutput { + return o.ApplyT(func(v *VirtualGatewaySpec) VirtualGatewaySpec { return *v }).(VirtualGatewaySpecOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutPerRequest) *string { +// The defaults for backends. +func (o VirtualGatewaySpecPtrOutput) BackendDefaults() VirtualGatewaySpecBackendDefaultsPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpec) *VirtualGatewaySpecBackendDefaults { if v == nil { return nil } - return &v.Unit - }).(pulumi.StringPtrOutput) + return v.BackendDefaults + }).(VirtualGatewaySpecBackendDefaultsPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecHttp2RouteTimeoutPerRequestPtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttp2RouteTimeoutPerRequest) *int { +// The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. +func (o VirtualGatewaySpecPtrOutput) Listener() VirtualGatewaySpecListenerPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpec) *VirtualGatewaySpecListener { if v == nil { return nil } - return &v.Value - }).(pulumi.IntPtrOutput) + return &v.Listener + }).(VirtualGatewaySpecListenerPtrOutput) } -type RouteSpecHttpRoute struct { - // The action to take if a match is determined. - Action RouteSpecHttpRouteAction `pulumi:"action"` - // The criteria for determining an HTTP request match. - Match RouteSpecHttpRouteMatch `pulumi:"match"` - // The retry policy. - RetryPolicy *RouteSpecHttpRouteRetryPolicy `pulumi:"retryPolicy"` - // The types of timeouts. - Timeout *RouteSpecHttpRouteTimeout `pulumi:"timeout"` +// The inbound and outbound access logging information for the virtual gateway. +func (o VirtualGatewaySpecPtrOutput) Logging() VirtualGatewaySpecLoggingPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpec) *VirtualGatewaySpecLogging { + if v == nil { + return nil + } + return v.Logging + }).(VirtualGatewaySpecLoggingPtrOutput) } -// RouteSpecHttpRouteInput is an input type that accepts RouteSpecHttpRouteArgs and RouteSpecHttpRouteOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteInput` via: +type VirtualGatewaySpecBackendDefaults struct { + // The default client policy for virtual gateway backends. + ClientPolicy *VirtualGatewaySpecBackendDefaultsClientPolicy `pulumi:"clientPolicy"` +} + +// VirtualGatewaySpecBackendDefaultsInput is an input type that accepts VirtualGatewaySpecBackendDefaultsArgs and VirtualGatewaySpecBackendDefaultsOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsInput` via: // -// RouteSpecHttpRouteArgs{...} -type RouteSpecHttpRouteInput interface { +// VirtualGatewaySpecBackendDefaultsArgs{...} +type VirtualGatewaySpecBackendDefaultsInput interface { pulumi.Input - ToRouteSpecHttpRouteOutput() RouteSpecHttpRouteOutput - ToRouteSpecHttpRouteOutputWithContext(context.Context) RouteSpecHttpRouteOutput + ToVirtualGatewaySpecBackendDefaultsOutput() VirtualGatewaySpecBackendDefaultsOutput + ToVirtualGatewaySpecBackendDefaultsOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsOutput } -type RouteSpecHttpRouteArgs struct { - // The action to take if a match is determined. - Action RouteSpecHttpRouteActionInput `pulumi:"action"` - // The criteria for determining an HTTP request match. - Match RouteSpecHttpRouteMatchInput `pulumi:"match"` - // The retry policy. - RetryPolicy RouteSpecHttpRouteRetryPolicyPtrInput `pulumi:"retryPolicy"` - // The types of timeouts. - Timeout RouteSpecHttpRouteTimeoutPtrInput `pulumi:"timeout"` +type VirtualGatewaySpecBackendDefaultsArgs struct { + // The default client policy for virtual gateway backends. + ClientPolicy VirtualGatewaySpecBackendDefaultsClientPolicyPtrInput `pulumi:"clientPolicy"` } -func (RouteSpecHttpRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRoute)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaults)(nil)).Elem() } -func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRouteOutput() RouteSpecHttpRouteOutput { - return i.ToRouteSpecHttpRouteOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsArgs) ToVirtualGatewaySpecBackendDefaultsOutput() VirtualGatewaySpecBackendDefaultsOutput { + return i.ToVirtualGatewaySpecBackendDefaultsOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRouteOutputWithContext(ctx context.Context) RouteSpecHttpRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteOutput) +func (i VirtualGatewaySpecBackendDefaultsArgs) ToVirtualGatewaySpecBackendDefaultsOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsOutput) } -func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { - return i.ToRouteSpecHttpRoutePtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsArgs) ToVirtualGatewaySpecBackendDefaultsPtrOutput() VirtualGatewaySpecBackendDefaultsPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteArgs) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteOutput).ToRouteSpecHttpRoutePtrOutputWithContext(ctx) +func (i VirtualGatewaySpecBackendDefaultsArgs) ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsOutput).ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(ctx) } -// RouteSpecHttpRoutePtrInput is an input type that accepts RouteSpecHttpRouteArgs, RouteSpecHttpRoutePtr and RouteSpecHttpRoutePtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRoutePtrInput` via: +// VirtualGatewaySpecBackendDefaultsPtrInput is an input type that accepts VirtualGatewaySpecBackendDefaultsArgs, VirtualGatewaySpecBackendDefaultsPtr and VirtualGatewaySpecBackendDefaultsPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsPtrInput` via: // -// RouteSpecHttpRouteArgs{...} +// VirtualGatewaySpecBackendDefaultsArgs{...} // // or: // // nil -type RouteSpecHttpRoutePtrInput interface { +type VirtualGatewaySpecBackendDefaultsPtrInput interface { pulumi.Input - ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput - ToRouteSpecHttpRoutePtrOutputWithContext(context.Context) RouteSpecHttpRoutePtrOutput + ToVirtualGatewaySpecBackendDefaultsPtrOutput() VirtualGatewaySpecBackendDefaultsPtrOutput + ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsPtrOutput } -type routeSpecHttpRoutePtrType RouteSpecHttpRouteArgs +type virtualGatewaySpecBackendDefaultsPtrType VirtualGatewaySpecBackendDefaultsArgs -func RouteSpecHttpRoutePtr(v *RouteSpecHttpRouteArgs) RouteSpecHttpRoutePtrInput { - return (*routeSpecHttpRoutePtrType)(v) +func VirtualGatewaySpecBackendDefaultsPtr(v *VirtualGatewaySpecBackendDefaultsArgs) VirtualGatewaySpecBackendDefaultsPtrInput { + return (*virtualGatewaySpecBackendDefaultsPtrType)(v) } -func (*routeSpecHttpRoutePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRoute)(nil)).Elem() +func (*virtualGatewaySpecBackendDefaultsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaults)(nil)).Elem() } -func (i *routeSpecHttpRoutePtrType) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { - return i.ToRouteSpecHttpRoutePtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecBackendDefaultsPtrType) ToVirtualGatewaySpecBackendDefaultsPtrOutput() VirtualGatewaySpecBackendDefaultsPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRoutePtrType) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRoutePtrOutput) +func (i *virtualGatewaySpecBackendDefaultsPtrType) ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsPtrOutput) } -type RouteSpecHttpRouteOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRoute)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaults)(nil)).Elem() } -func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRouteOutput() RouteSpecHttpRouteOutput { +func (o VirtualGatewaySpecBackendDefaultsOutput) ToVirtualGatewaySpecBackendDefaultsOutput() VirtualGatewaySpecBackendDefaultsOutput { return o } -func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRouteOutputWithContext(ctx context.Context) RouteSpecHttpRouteOutput { +func (o VirtualGatewaySpecBackendDefaultsOutput) ToVirtualGatewaySpecBackendDefaultsOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsOutput { return o } -func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { - return o.ToRouteSpecHttpRoutePtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecBackendDefaultsOutput) ToVirtualGatewaySpecBackendDefaultsPtrOutput() VirtualGatewaySpecBackendDefaultsPtrOutput { + return o.ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteOutput) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { - return o.ApplyT(func(v RouteSpecHttpRoute) *RouteSpecHttpRoute { +func (o VirtualGatewaySpecBackendDefaultsOutput) ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaults) *VirtualGatewaySpecBackendDefaults { return &v - }).(RouteSpecHttpRoutePtrOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecHttpRouteOutput) Action() RouteSpecHttpRouteActionOutput { - return o.ApplyT(func(v RouteSpecHttpRoute) RouteSpecHttpRouteAction { return v.Action }).(RouteSpecHttpRouteActionOutput) + }).(VirtualGatewaySpecBackendDefaultsPtrOutput) } -// The criteria for determining an HTTP request match. -func (o RouteSpecHttpRouteOutput) Match() RouteSpecHttpRouteMatchOutput { - return o.ApplyT(func(v RouteSpecHttpRoute) RouteSpecHttpRouteMatch { return v.Match }).(RouteSpecHttpRouteMatchOutput) -} - -// The retry policy. -func (o RouteSpecHttpRouteOutput) RetryPolicy() RouteSpecHttpRouteRetryPolicyPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRoute) *RouteSpecHttpRouteRetryPolicy { return v.RetryPolicy }).(RouteSpecHttpRouteRetryPolicyPtrOutput) -} - -// The types of timeouts. -func (o RouteSpecHttpRouteOutput) Timeout() RouteSpecHttpRouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRoute) *RouteSpecHttpRouteTimeout { return v.Timeout }).(RouteSpecHttpRouteTimeoutPtrOutput) +// The default client policy for virtual gateway backends. +func (o VirtualGatewaySpecBackendDefaultsOutput) ClientPolicy() VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaults) *VirtualGatewaySpecBackendDefaultsClientPolicy { + return v.ClientPolicy + }).(VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) } -type RouteSpecHttpRoutePtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRoutePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRoute)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaults)(nil)).Elem() } -func (o RouteSpecHttpRoutePtrOutput) ToRouteSpecHttpRoutePtrOutput() RouteSpecHttpRoutePtrOutput { +func (o VirtualGatewaySpecBackendDefaultsPtrOutput) ToVirtualGatewaySpecBackendDefaultsPtrOutput() VirtualGatewaySpecBackendDefaultsPtrOutput { return o } -func (o RouteSpecHttpRoutePtrOutput) ToRouteSpecHttpRoutePtrOutputWithContext(ctx context.Context) RouteSpecHttpRoutePtrOutput { +func (o VirtualGatewaySpecBackendDefaultsPtrOutput) ToVirtualGatewaySpecBackendDefaultsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsPtrOutput { return o } -func (o RouteSpecHttpRoutePtrOutput) Elem() RouteSpecHttpRouteOutput { - return o.ApplyT(func(v *RouteSpecHttpRoute) RouteSpecHttpRoute { return *v }).(RouteSpecHttpRouteOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecHttpRoutePtrOutput) Action() RouteSpecHttpRouteActionPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteAction { - if v == nil { - return nil - } - return &v.Action - }).(RouteSpecHttpRouteActionPtrOutput) -} - -// The criteria for determining an HTTP request match. -func (o RouteSpecHttpRoutePtrOutput) Match() RouteSpecHttpRouteMatchPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteMatch { - if v == nil { - return nil - } - return &v.Match - }).(RouteSpecHttpRouteMatchPtrOutput) -} - -// The retry policy. -func (o RouteSpecHttpRoutePtrOutput) RetryPolicy() RouteSpecHttpRouteRetryPolicyPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteRetryPolicy { - if v == nil { - return nil - } - return v.RetryPolicy - }).(RouteSpecHttpRouteRetryPolicyPtrOutput) +func (o VirtualGatewaySpecBackendDefaultsPtrOutput) Elem() VirtualGatewaySpecBackendDefaultsOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaults) VirtualGatewaySpecBackendDefaults { return *v }).(VirtualGatewaySpecBackendDefaultsOutput) } -// The types of timeouts. -func (o RouteSpecHttpRoutePtrOutput) Timeout() RouteSpecHttpRouteTimeoutPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRoute) *RouteSpecHttpRouteTimeout { +// The default client policy for virtual gateway backends. +func (o VirtualGatewaySpecBackendDefaultsPtrOutput) ClientPolicy() VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaults) *VirtualGatewaySpecBackendDefaultsClientPolicy { if v == nil { return nil } - return v.Timeout - }).(RouteSpecHttpRouteTimeoutPtrOutput) + return v.ClientPolicy + }).(VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) } -type RouteSpecHttpRouteAction struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets []RouteSpecHttpRouteActionWeightedTarget `pulumi:"weightedTargets"` +type VirtualGatewaySpecBackendDefaultsClientPolicy struct { + // The Transport Layer Security (TLS) client policy. + Tls *VirtualGatewaySpecBackendDefaultsClientPolicyTls `pulumi:"tls"` } -// RouteSpecHttpRouteActionInput is an input type that accepts RouteSpecHttpRouteActionArgs and RouteSpecHttpRouteActionOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteActionInput` via: +// VirtualGatewaySpecBackendDefaultsClientPolicyInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyArgs and VirtualGatewaySpecBackendDefaultsClientPolicyOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyInput` via: // -// RouteSpecHttpRouteActionArgs{...} -type RouteSpecHttpRouteActionInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyArgs{...} +type VirtualGatewaySpecBackendDefaultsClientPolicyInput interface { pulumi.Input - ToRouteSpecHttpRouteActionOutput() RouteSpecHttpRouteActionOutput - ToRouteSpecHttpRouteActionOutputWithContext(context.Context) RouteSpecHttpRouteActionOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyOutput() VirtualGatewaySpecBackendDefaultsClientPolicyOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyOutput } -type RouteSpecHttpRouteActionArgs struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets RouteSpecHttpRouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` +type VirtualGatewaySpecBackendDefaultsClientPolicyArgs struct { + // The Transport Layer Security (TLS) client policy. + Tls VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrInput `pulumi:"tls"` } -func (RouteSpecHttpRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteAction)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicy)(nil)).Elem() } -func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionOutput() RouteSpecHttpRouteActionOutput { - return i.ToRouteSpecHttpRouteActionOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyOutput() VirtualGatewaySpecBackendDefaultsClientPolicyOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionOutput) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyOutput) } -func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { - return i.ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteActionArgs) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionOutput).ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyOutput).ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(ctx) } -// RouteSpecHttpRouteActionPtrInput is an input type that accepts RouteSpecHttpRouteActionArgs, RouteSpecHttpRouteActionPtr and RouteSpecHttpRouteActionPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteActionPtrInput` via: +// VirtualGatewaySpecBackendDefaultsClientPolicyPtrInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyArgs, VirtualGatewaySpecBackendDefaultsClientPolicyPtr and VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyPtrInput` via: // -// RouteSpecHttpRouteActionArgs{...} +// VirtualGatewaySpecBackendDefaultsClientPolicyArgs{...} // // or: // // nil -type RouteSpecHttpRouteActionPtrInput interface { +type VirtualGatewaySpecBackendDefaultsClientPolicyPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput - ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Context) RouteSpecHttpRouteActionPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput } -type routeSpecHttpRouteActionPtrType RouteSpecHttpRouteActionArgs +type virtualGatewaySpecBackendDefaultsClientPolicyPtrType VirtualGatewaySpecBackendDefaultsClientPolicyArgs -func RouteSpecHttpRouteActionPtr(v *RouteSpecHttpRouteActionArgs) RouteSpecHttpRouteActionPtrInput { - return (*routeSpecHttpRouteActionPtrType)(v) +func VirtualGatewaySpecBackendDefaultsClientPolicyPtr(v *VirtualGatewaySpecBackendDefaultsClientPolicyArgs) VirtualGatewaySpecBackendDefaultsClientPolicyPtrInput { + return (*virtualGatewaySpecBackendDefaultsClientPolicyPtrType)(v) } -func (*routeSpecHttpRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteAction)(nil)).Elem() +func (*virtualGatewaySpecBackendDefaultsClientPolicyPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicy)(nil)).Elem() } -func (i *routeSpecHttpRouteActionPtrType) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { - return i.ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteActionPtrType) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionPtrOutput) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) } -type RouteSpecHttpRouteActionOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteAction)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicy)(nil)).Elem() } -func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionOutput() RouteSpecHttpRouteActionOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyOutput() VirtualGatewaySpecBackendDefaultsClientPolicyOutput { return o } -func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyOutput { return o } -func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { - return o.ToRouteSpecHttpRouteActionPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return o.ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteActionOutput) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteAction) *RouteSpecHttpRouteAction { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicy) *VirtualGatewaySpecBackendDefaultsClientPolicy { return &v - }).(RouteSpecHttpRouteActionPtrOutput) + }).(VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) } -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecHttpRouteActionOutput) WeightedTargets() RouteSpecHttpRouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v RouteSpecHttpRouteAction) []RouteSpecHttpRouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecHttpRouteActionWeightedTargetArrayOutput) +// The Transport Layer Security (TLS) client policy. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyOutput) Tls() VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicy) *VirtualGatewaySpecBackendDefaultsClientPolicyTls { + return v.Tls + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) } -type RouteSpecHttpRouteActionPtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteAction)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicy)(nil)).Elem() } -func (o RouteSpecHttpRouteActionPtrOutput) ToRouteSpecHttpRouteActionPtrOutput() RouteSpecHttpRouteActionPtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { return o } -func (o RouteSpecHttpRouteActionPtrOutput) ToRouteSpecHttpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionPtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput { return o } -func (o RouteSpecHttpRouteActionPtrOutput) Elem() RouteSpecHttpRouteActionOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteAction) RouteSpecHttpRouteAction { return *v }).(RouteSpecHttpRouteActionOutput) -} - -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecHttpRouteActionPtrOutput) WeightedTargets() RouteSpecHttpRouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteAction) []RouteSpecHttpRouteActionWeightedTarget { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) Elem() VirtualGatewaySpecBackendDefaultsClientPolicyOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicy) VirtualGatewaySpecBackendDefaultsClientPolicy { + return *v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyOutput) +} + +// The Transport Layer Security (TLS) client policy. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput) Tls() VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicy) *VirtualGatewaySpecBackendDefaultsClientPolicyTls { if v == nil { return nil } - return v.WeightedTargets - }).(RouteSpecHttpRouteActionWeightedTargetArrayOutput) + return v.Tls + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) } -type RouteSpecHttpRouteActionWeightedTarget struct { - // The virtual node to associate with the weighted target. - VirtualNode string `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight int `pulumi:"weight"` +type VirtualGatewaySpecBackendDefaultsClientPolicyTls struct { + Enforce *bool `pulumi:"enforce"` + // One or more ports that the policy is enforced for. + Ports []int `pulumi:"ports"` + // The TLS validation context. + Validation VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation `pulumi:"validation"` } -// RouteSpecHttpRouteActionWeightedTargetInput is an input type that accepts RouteSpecHttpRouteActionWeightedTargetArgs and RouteSpecHttpRouteActionWeightedTargetOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteActionWeightedTargetInput` via: +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs and VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsInput` via: // -// RouteSpecHttpRouteActionWeightedTargetArgs{...} -type RouteSpecHttpRouteActionWeightedTargetInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs{...} +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsInput interface { pulumi.Input - ToRouteSpecHttpRouteActionWeightedTargetOutput() RouteSpecHttpRouteActionWeightedTargetOutput - ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecHttpRouteActionWeightedTargetOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput } -type RouteSpecHttpRouteActionWeightedTargetArgs struct { - // The virtual node to associate with the weighted target. - VirtualNode pulumi.StringInput `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight pulumi.IntInput `pulumi:"weight"` +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs struct { + Enforce pulumi.BoolPtrInput `pulumi:"enforce"` + // One or more ports that the policy is enforced for. + Ports pulumi.IntArrayInput `pulumi:"ports"` + // The TLS validation context. + Validation VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationInput `pulumi:"validation"` } -func (RouteSpecHttpRouteActionWeightedTargetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTls)(nil)).Elem() } -func (i RouteSpecHttpRouteActionWeightedTargetArgs) ToRouteSpecHttpRouteActionWeightedTargetOutput() RouteSpecHttpRouteActionWeightedTargetOutput { - return i.ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteActionWeightedTargetArgs) ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionWeightedTargetOutput) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) } -// RouteSpecHttpRouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecHttpRouteActionWeightedTargetArray and RouteSpecHttpRouteActionWeightedTargetArrayOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteActionWeightedTargetArrayInput` via: +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(context.Background()) +} + +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput).ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(ctx) +} + +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs, VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtr and VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrInput` via: // -// RouteSpecHttpRouteActionWeightedTargetArray{ RouteSpecHttpRouteActionWeightedTargetArgs{...} } -type RouteSpecHttpRouteActionWeightedTargetArrayInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs{...} +// +// or: +// +// nil +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteActionWeightedTargetArrayOutput() RouteSpecHttpRouteActionWeightedTargetArrayOutput - ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecHttpRouteActionWeightedTargetArrayOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput } -type RouteSpecHttpRouteActionWeightedTargetArray []RouteSpecHttpRouteActionWeightedTargetInput +type virtualGatewaySpecBackendDefaultsClientPolicyTlsPtrType VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs -func (RouteSpecHttpRouteActionWeightedTargetArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +func VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtr(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs) VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrInput { + return (*virtualGatewaySpecBackendDefaultsClientPolicyTlsPtrType)(v) } -func (i RouteSpecHttpRouteActionWeightedTargetArray) ToRouteSpecHttpRouteActionWeightedTargetArrayOutput() RouteSpecHttpRouteActionWeightedTargetArrayOutput { - return i.ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(context.Background()) +func (*virtualGatewaySpecBackendDefaultsClientPolicyTlsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTls)(nil)).Elem() } -func (i RouteSpecHttpRouteActionWeightedTargetArray) ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteActionWeightedTargetArrayOutput) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(context.Background()) } -type RouteSpecHttpRouteActionWeightedTargetOutput struct{ *pulumi.OutputState } +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) +} -func (RouteSpecHttpRouteActionWeightedTargetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTls)(nil)).Elem() } -func (o RouteSpecHttpRouteActionWeightedTargetOutput) ToRouteSpecHttpRouteActionWeightedTargetOutput() RouteSpecHttpRouteActionWeightedTargetOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput { return o } -func (o RouteSpecHttpRouteActionWeightedTargetOutput) ToRouteSpecHttpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput { return o } -// The virtual node to associate with the weighted target. -func (o RouteSpecHttpRouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttpRouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return o.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(context.Background()) } -// The relative weight of the weighted target. An integer between 0 and 100. -func (o RouteSpecHttpRouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttpRouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTls) *VirtualGatewaySpecBackendDefaultsClientPolicyTls { + return &v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) +} +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) Enforce() pulumi.BoolPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTls) *bool { return v.Enforce }).(pulumi.BoolPtrOutput) } -type RouteSpecHttpRouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } +// One or more ports that the policy is enforced for. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) Ports() pulumi.IntArrayOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTls) []int { return v.Ports }).(pulumi.IntArrayOutput) +} -func (RouteSpecHttpRouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttpRouteActionWeightedTarget)(nil)).Elem() +// The TLS validation context. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) Validation() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTls) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation { + return v.Validation + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) } -func (o RouteSpecHttpRouteActionWeightedTargetArrayOutput) ToRouteSpecHttpRouteActionWeightedTargetArrayOutput() RouteSpecHttpRouteActionWeightedTargetArrayOutput { +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTls)(nil)).Elem() +} + +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { return o } -func (o RouteSpecHttpRouteActionWeightedTargetArrayOutput) ToRouteSpecHttpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteActionWeightedTargetArrayOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput { return o } -func (o RouteSpecHttpRouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecHttpRouteActionWeightedTargetOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttpRouteActionWeightedTarget { - return vs[0].([]RouteSpecHttpRouteActionWeightedTarget)[vs[1].(int)] - }).(RouteSpecHttpRouteActionWeightedTargetOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) Elem() VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTls) VirtualGatewaySpecBackendDefaultsClientPolicyTls { + return *v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput) } -type RouteSpecHttpRouteMatch struct { - // The client request headers to match on. - Headers []RouteSpecHttpRouteMatchHeader `pulumi:"headers"` - // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. - Method *string `pulumi:"method"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix string `pulumi:"prefix"` - // The client request header scheme to match on. Valid values: `http`, `https`. - Scheme *string `pulumi:"scheme"` +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) Enforce() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTls) *bool { + if v == nil { + return nil + } + return v.Enforce + }).(pulumi.BoolPtrOutput) } -// RouteSpecHttpRouteMatchInput is an input type that accepts RouteSpecHttpRouteMatchArgs and RouteSpecHttpRouteMatchOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchInput` via: +// One or more ports that the policy is enforced for. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) Ports() pulumi.IntArrayOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTls) []int { + if v == nil { + return nil + } + return v.Ports + }).(pulumi.IntArrayOutput) +} + +// The TLS validation context. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput) Validation() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTls) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation { + if v == nil { + return nil + } + return &v.Validation + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) +} + +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation struct { + // The TLS validation context trust. + Trust VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust `pulumi:"trust"` +} + +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationInput` via: // -// RouteSpecHttpRouteMatchArgs{...} -type RouteSpecHttpRouteMatchInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs{...} +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchOutput() RouteSpecHttpRouteMatchOutput - ToRouteSpecHttpRouteMatchOutputWithContext(context.Context) RouteSpecHttpRouteMatchOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput } -type RouteSpecHttpRouteMatchArgs struct { - // The client request headers to match on. - Headers RouteSpecHttpRouteMatchHeaderArrayInput `pulumi:"headers"` - // The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. - Method pulumi.StringPtrInput `pulumi:"method"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix pulumi.StringInput `pulumi:"prefix"` - // The client request header scheme to match on. Valid values: `http`, `https`. - Scheme pulumi.StringPtrInput `pulumi:"scheme"` +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs struct { + // The TLS validation context trust. + Trust VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustInput `pulumi:"trust"` } -func (RouteSpecHttpRouteMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatch)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation)(nil)).Elem() } -func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchOutput() RouteSpecHttpRouteMatchOutput { - return i.ToRouteSpecHttpRouteMatchOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchOutput) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) } -func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { - return i.ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteMatchArgs) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchOutput).ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput).ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(ctx) } -// RouteSpecHttpRouteMatchPtrInput is an input type that accepts RouteSpecHttpRouteMatchArgs, RouteSpecHttpRouteMatchPtr and RouteSpecHttpRouteMatchPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchPtrInput` via: +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs, VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtr and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrInput` via: // -// RouteSpecHttpRouteMatchArgs{...} +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs{...} // // or: // // nil -type RouteSpecHttpRouteMatchPtrInput interface { +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput - ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Context) RouteSpecHttpRouteMatchPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput } -type routeSpecHttpRouteMatchPtrType RouteSpecHttpRouteMatchArgs +type virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrType VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs -func RouteSpecHttpRouteMatchPtr(v *RouteSpecHttpRouteMatchArgs) RouteSpecHttpRouteMatchPtrInput { - return (*routeSpecHttpRouteMatchPtrType)(v) +func VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtr(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrInput { + return (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrType)(v) } -func (*routeSpecHttpRouteMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteMatch)(nil)).Elem() +func (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation)(nil)).Elem() } -func (i *routeSpecHttpRouteMatchPtrType) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { - return i.ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteMatchPtrType) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchPtrOutput) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) } -type RouteSpecHttpRouteMatchOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatch)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchOutput() RouteSpecHttpRouteMatchOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput { return o } -func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput { return o } -func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { - return o.ToRouteSpecHttpRouteMatchPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { + return o.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteMatchOutput) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatch) *RouteSpecHttpRouteMatch { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation { return &v - }).(RouteSpecHttpRouteMatchPtrOutput) -} - -// The client request headers to match on. -func (o RouteSpecHttpRouteMatchOutput) Headers() RouteSpecHttpRouteMatchHeaderArrayOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatch) []RouteSpecHttpRouteMatchHeader { return v.Headers }).(RouteSpecHttpRouteMatchHeaderArrayOutput) -} - -// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. -func (o RouteSpecHttpRouteMatchOutput) Method() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatch) *string { return v.Method }).(pulumi.StringPtrOutput) + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) } -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttpRouteMatchOutput) Prefix() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatch) string { return v.Prefix }).(pulumi.StringOutput) -} - -// The client request header scheme to match on. Valid values: `http`, `https`. -func (o RouteSpecHttpRouteMatchOutput) Scheme() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatch) *string { return v.Scheme }).(pulumi.StringPtrOutput) +// The TLS validation context trust. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) Trust() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust { + return v.Trust + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) } -type RouteSpecHttpRouteMatchPtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteMatch)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchPtrOutput) ToRouteSpecHttpRouteMatchPtrOutput() RouteSpecHttpRouteMatchPtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { return o } -func (o RouteSpecHttpRouteMatchPtrOutput) ToRouteSpecHttpRouteMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchPtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput { return o } -func (o RouteSpecHttpRouteMatchPtrOutput) Elem() RouteSpecHttpRouteMatchOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatch) RouteSpecHttpRouteMatch { return *v }).(RouteSpecHttpRouteMatchOutput) -} - -// The client request headers to match on. -func (o RouteSpecHttpRouteMatchPtrOutput) Headers() RouteSpecHttpRouteMatchHeaderArrayOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatch) []RouteSpecHttpRouteMatchHeader { - if v == nil { - return nil - } - return v.Headers - }).(RouteSpecHttpRouteMatchHeaderArrayOutput) -} - -// The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. -func (o RouteSpecHttpRouteMatchPtrOutput) Method() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatch) *string { - if v == nil { - return nil - } - return v.Method - }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttpRouteMatchPtrOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatch) *string { - if v == nil { - return nil - } - return &v.Prefix - }).(pulumi.StringPtrOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) Elem() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation { + return *v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput) } -// The client request header scheme to match on. Valid values: `http`, `https`. -func (o RouteSpecHttpRouteMatchPtrOutput) Scheme() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatch) *string { +// The TLS validation context trust. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput) Trust() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust { if v == nil { return nil } - return v.Scheme - }).(pulumi.StringPtrOutput) + return &v.Trust + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) } -type RouteSpecHttpRouteMatchHeader struct { - // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - Invert *bool `pulumi:"invert"` - // The method and value to match the header value sent with a request. Specify one match method. - Match *RouteSpecHttpRouteMatchHeaderMatch `pulumi:"match"` - // A name for the HTTP header in the client request that will be matched on. - Name string `pulumi:"name"` +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust struct { + // The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + Acm *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm `pulumi:"acm"` + // The TLS validation context trust for a local file. + File *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile `pulumi:"file"` } -// RouteSpecHttpRouteMatchHeaderInput is an input type that accepts RouteSpecHttpRouteMatchHeaderArgs and RouteSpecHttpRouteMatchHeaderOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderInput` via: +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustInput` via: // -// RouteSpecHttpRouteMatchHeaderArgs{...} -type RouteSpecHttpRouteMatchHeaderInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs{...} +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchHeaderOutput() RouteSpecHttpRouteMatchHeaderOutput - ToRouteSpecHttpRouteMatchHeaderOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput +} + +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs struct { + // The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + Acm VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrInput `pulumi:"acm"` + // The TLS validation context trust for a local file. + File VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrInput `pulumi:"file"` } -type RouteSpecHttpRouteMatchHeaderArgs struct { - // If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - Invert pulumi.BoolPtrInput `pulumi:"invert"` - // The method and value to match the header value sent with a request. Specify one match method. - Match RouteSpecHttpRouteMatchHeaderMatchPtrInput `pulumi:"match"` - // A name for the HTTP header in the client request that will be matched on. - Name pulumi.StringInput `pulumi:"name"` +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust)(nil)).Elem() } -func (RouteSpecHttpRouteMatchHeaderArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatchHeader)(nil)).Elem() +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteMatchHeaderArgs) ToRouteSpecHttpRouteMatchHeaderOutput() RouteSpecHttpRouteMatchHeaderOutput { - return i.ToRouteSpecHttpRouteMatchHeaderOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) } -func (i RouteSpecHttpRouteMatchHeaderArgs) ToRouteSpecHttpRouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderOutput) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(context.Background()) } -// RouteSpecHttpRouteMatchHeaderArrayInput is an input type that accepts RouteSpecHttpRouteMatchHeaderArray and RouteSpecHttpRouteMatchHeaderArrayOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderArrayInput` via: +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput).ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(ctx) +} + +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs, VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtr and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrInput` via: // -// RouteSpecHttpRouteMatchHeaderArray{ RouteSpecHttpRouteMatchHeaderArgs{...} } -type RouteSpecHttpRouteMatchHeaderArrayInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs{...} +// +// or: +// +// nil +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchHeaderArrayOutput() RouteSpecHttpRouteMatchHeaderArrayOutput - ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderArrayOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput } -type RouteSpecHttpRouteMatchHeaderArray []RouteSpecHttpRouteMatchHeaderInput +type virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrType VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs -func (RouteSpecHttpRouteMatchHeaderArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttpRouteMatchHeader)(nil)).Elem() +func VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtr(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrInput { + return (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrType)(v) } -func (i RouteSpecHttpRouteMatchHeaderArray) ToRouteSpecHttpRouteMatchHeaderArrayOutput() RouteSpecHttpRouteMatchHeaderArrayOutput { - return i.ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(context.Background()) +func (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust)(nil)).Elem() } -func (i RouteSpecHttpRouteMatchHeaderArray) ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderArrayOutput) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(context.Background()) } -type RouteSpecHttpRouteMatchHeaderOutput struct{ *pulumi.OutputState } +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) +} -func (RouteSpecHttpRouteMatchHeaderOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatchHeader)(nil)).Elem() +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchHeaderOutput) ToRouteSpecHttpRouteMatchHeaderOutput() RouteSpecHttpRouteMatchHeaderOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderOutput) ToRouteSpecHttpRouteMatchHeaderOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput { return o } -// If `true`, the match is on the opposite of the `match` method and value. Default is `false`. -func (o RouteSpecHttpRouteMatchHeaderOutput) Invert() pulumi.BoolPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeader) *bool { return v.Invert }).(pulumi.BoolPtrOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { + return o.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(context.Background()) } -// The method and value to match the header value sent with a request. Specify one match method. -func (o RouteSpecHttpRouteMatchHeaderOutput) Match() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeader) *RouteSpecHttpRouteMatchHeaderMatch { return v.Match }).(RouteSpecHttpRouteMatchHeaderMatchPtrOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust { + return &v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) } -// A name for the HTTP header in the client request that will be matched on. -func (o RouteSpecHttpRouteMatchHeaderOutput) Name() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeader) string { return v.Name }).(pulumi.StringOutput) +// The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) Acm() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm { + return v.Acm + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) } -type RouteSpecHttpRouteMatchHeaderArrayOutput struct{ *pulumi.OutputState } +// The TLS validation context trust for a local file. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) File() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile { + return v.File + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) +} -func (RouteSpecHttpRouteMatchHeaderArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecHttpRouteMatchHeader)(nil)).Elem() +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchHeaderArrayOutput) ToRouteSpecHttpRouteMatchHeaderArrayOutput() RouteSpecHttpRouteMatchHeaderArrayOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderArrayOutput) ToRouteSpecHttpRouteMatchHeaderArrayOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderArrayOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderArrayOutput) Index(i pulumi.IntInput) RouteSpecHttpRouteMatchHeaderOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecHttpRouteMatchHeader { - return vs[0].([]RouteSpecHttpRouteMatchHeader)[vs[1].(int)] - }).(RouteSpecHttpRouteMatchHeaderOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) Elem() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust { + return *v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput) } -type RouteSpecHttpRouteMatchHeaderMatch struct { - // The value sent by the client must match the specified value exactly. - Exact *string `pulumi:"exact"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix *string `pulumi:"prefix"` - // The object that specifies the range of numbers that the value sent by the client must be included in. - Range *RouteSpecHttpRouteMatchHeaderMatchRange `pulumi:"range"` - // The value sent by the client must include the specified characters. - Regex *string `pulumi:"regex"` - // The value sent by the client must end with the specified characters. - Suffix *string `pulumi:"suffix"` +// The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) Acm() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm { + if v == nil { + return nil + } + return v.Acm + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) } -// RouteSpecHttpRouteMatchHeaderMatchInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchArgs and RouteSpecHttpRouteMatchHeaderMatchOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchInput` via: +// The TLS validation context trust for a local file. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput) File() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile { + if v == nil { + return nil + } + return v.File + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) +} + +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm struct { + // One or more ACM Amazon Resource Name (ARN)s. + CertificateAuthorityArns []string `pulumi:"certificateAuthorityArns"` +} + +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmInput` via: // -// RouteSpecHttpRouteMatchHeaderMatchArgs{...} -type RouteSpecHttpRouteMatchHeaderMatchInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs{...} +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchHeaderMatchOutput() RouteSpecHttpRouteMatchHeaderMatchOutput - ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput } -type RouteSpecHttpRouteMatchHeaderMatchArgs struct { - // The value sent by the client must match the specified value exactly. - Exact pulumi.StringPtrInput `pulumi:"exact"` - // The value sent by the client must begin with the specified characters. - // This parameter must always start with /, which by itself matches all requests to the virtual router service name. - Prefix pulumi.StringPtrInput `pulumi:"prefix"` - // The object that specifies the range of numbers that the value sent by the client must be included in. - Range RouteSpecHttpRouteMatchHeaderMatchRangePtrInput `pulumi:"range"` - // The value sent by the client must include the specified characters. - Regex pulumi.StringPtrInput `pulumi:"regex"` - // The value sent by the client must end with the specified characters. - Suffix pulumi.StringPtrInput `pulumi:"suffix"` +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs struct { + // One or more ACM Amazon Resource Name (ARN)s. + CertificateAuthorityArns pulumi.StringArrayInput `pulumi:"certificateAuthorityArns"` } -func (RouteSpecHttpRouteMatchHeaderMatchArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm)(nil)).Elem() } -func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchOutput() RouteSpecHttpRouteMatchHeaderMatchOutput { - return i.ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchOutput) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) } -func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { - return i.ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteMatchHeaderMatchArgs) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchOutput).ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput).ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(ctx) } -// RouteSpecHttpRouteMatchHeaderMatchPtrInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchArgs, RouteSpecHttpRouteMatchHeaderMatchPtr and RouteSpecHttpRouteMatchHeaderMatchPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchPtrInput` via: +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs, VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtr and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrInput` via: // -// RouteSpecHttpRouteMatchHeaderMatchArgs{...} +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs{...} // // or: // // nil -type RouteSpecHttpRouteMatchHeaderMatchPtrInput interface { +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput - ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput } -type routeSpecHttpRouteMatchHeaderMatchPtrType RouteSpecHttpRouteMatchHeaderMatchArgs +type virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrType VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs -func RouteSpecHttpRouteMatchHeaderMatchPtr(v *RouteSpecHttpRouteMatchHeaderMatchArgs) RouteSpecHttpRouteMatchHeaderMatchPtrInput { - return (*routeSpecHttpRouteMatchHeaderMatchPtrType)(v) +func VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtr(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrInput { + return (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrType)(v) } -func (*routeSpecHttpRouteMatchHeaderMatchPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +func (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm)(nil)).Elem() } -func (i *routeSpecHttpRouteMatchHeaderMatchPtrType) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { - return i.ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteMatchHeaderMatchPtrType) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchPtrOutput) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) } -type RouteSpecHttpRouteMatchHeaderMatchOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteMatchHeaderMatchOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchOutput() RouteSpecHttpRouteMatchHeaderMatchOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { - return o.ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return o.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatch { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm { return &v - }).(RouteSpecHttpRouteMatchHeaderMatchPtrOutput) -} - -// The value sent by the client must match the specified value exactly. -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Exact() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Exact }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Prefix }).(pulumi.StringPtrOutput) -} - -// The object that specifies the range of numbers that the value sent by the client must be included in. -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Range() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatchRange { return v.Range }).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) } -// The value sent by the client must include the specified characters. -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Regex() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Regex }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must end with the specified characters. -func (o RouteSpecHttpRouteMatchHeaderMatchOutput) Suffix() pulumi.StringPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatch) *string { return v.Suffix }).(pulumi.StringPtrOutput) +// One or more ACM Amazon Resource Name (ARN)s. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) CertificateAuthorityArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm) []string { + return v.CertificateAuthorityArns + }).(pulumi.StringArrayOutput) } -type RouteSpecHttpRouteMatchHeaderMatchPtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteMatchHeaderMatchPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatch)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutput() RouteSpecHttpRouteMatchHeaderMatchPtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchPtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Elem() RouteSpecHttpRouteMatchHeaderMatchOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) RouteSpecHttpRouteMatchHeaderMatch { return *v }).(RouteSpecHttpRouteMatchHeaderMatchOutput) -} - -// The value sent by the client must match the specified value exactly. -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Exact() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { - if v == nil { - return nil - } - return v.Exact - }).(pulumi.StringPtrOutput) -} - -// The value sent by the client must begin with the specified characters. -// This parameter must always start with /, which by itself matches all requests to the virtual router service name. -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Prefix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { - if v == nil { - return nil - } - return v.Prefix - }).(pulumi.StringPtrOutput) -} - -// The object that specifies the range of numbers that the value sent by the client must be included in. -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Range() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *RouteSpecHttpRouteMatchHeaderMatchRange { - if v == nil { - return nil - } - return v.Range - }).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) -} - -// The value sent by the client must include the specified characters. -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Regex() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { - if v == nil { - return nil - } - return v.Regex - }).(pulumi.StringPtrOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) Elem() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm { + return *v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput) } -// The value sent by the client must end with the specified characters. -func (o RouteSpecHttpRouteMatchHeaderMatchPtrOutput) Suffix() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatch) *string { +// One or more ACM Amazon Resource Name (ARN)s. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput) CertificateAuthorityArns() pulumi.StringArrayOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm) []string { if v == nil { return nil } - return v.Suffix - }).(pulumi.StringPtrOutput) + return v.CertificateAuthorityArns + }).(pulumi.StringArrayOutput) } -type RouteSpecHttpRouteMatchHeaderMatchRange struct { - // The end of the range. - End int `pulumi:"end"` - // The start of the range. - Start int `pulumi:"start"` +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile struct { + // The certificate chain for the certificate. + CertificateChain string `pulumi:"certificateChain"` } -// RouteSpecHttpRouteMatchHeaderMatchRangeInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchRangeArgs and RouteSpecHttpRouteMatchHeaderMatchRangeOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchRangeInput` via: +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileInput` via: // -// RouteSpecHttpRouteMatchHeaderMatchRangeArgs{...} -type RouteSpecHttpRouteMatchHeaderMatchRangeInput interface { +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs{...} +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchHeaderMatchRangeOutput() RouteSpecHttpRouteMatchHeaderMatchRangeOutput - ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchRangeOutput -} - -type RouteSpecHttpRouteMatchHeaderMatchRangeArgs struct { - // The end of the range. - End pulumi.IntInput `pulumi:"end"` - // The start of the range. - Start pulumi.IntInput `pulumi:"start"` + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput } -func (RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs struct { + // The certificate chain for the certificate. + CertificateChain pulumi.StringInput `pulumi:"certificateChain"` } -func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutput() RouteSpecHttpRouteMatchHeaderMatchRangeOutput { - return i.ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(context.Background()) +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile)(nil)).Elem() } -func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangeOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchRangeOutput) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return i.ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) } -func (i RouteSpecHttpRouteMatchHeaderMatchRangeArgs) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchRangeOutput).ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx) +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(context.Background()) } -// RouteSpecHttpRouteMatchHeaderMatchRangePtrInput is an input type that accepts RouteSpecHttpRouteMatchHeaderMatchRangeArgs, RouteSpecHttpRouteMatchHeaderMatchRangePtr and RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteMatchHeaderMatchRangePtrInput` via: +func (i VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput).ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(ctx) +} + +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrInput is an input type that accepts VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs, VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtr and VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrInput` via: // -// RouteSpecHttpRouteMatchHeaderMatchRangeArgs{...} +// VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs{...} // // or: // // nil -type RouteSpecHttpRouteMatchHeaderMatchRangePtrInput interface { +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrInput interface { pulumi.Input - ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput - ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput + ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput } -type routeSpecHttpRouteMatchHeaderMatchRangePtrType RouteSpecHttpRouteMatchHeaderMatchRangeArgs +type virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrType VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs -func RouteSpecHttpRouteMatchHeaderMatchRangePtr(v *RouteSpecHttpRouteMatchHeaderMatchRangeArgs) RouteSpecHttpRouteMatchHeaderMatchRangePtrInput { - return (*routeSpecHttpRouteMatchHeaderMatchRangePtrType)(v) +func VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtr(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrInput { + return (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrType)(v) } -func (*routeSpecHttpRouteMatchHeaderMatchRangePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +func (*virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile)(nil)).Elem() } -func (i *routeSpecHttpRouteMatchHeaderMatchRangePtrType) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return i.ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return i.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteMatchHeaderMatchRangePtrType) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) +func (i *virtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrType) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) } -type RouteSpecHttpRouteMatchHeaderMatchRangeOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutput() RouteSpecHttpRouteMatchHeaderMatchRangeOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangeOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangeOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return o.ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return o.ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatchRange) *RouteSpecHttpRouteMatchHeaderMatchRange { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile) *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile { return &v - }).(RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) -} - -// The end of the range. -func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) End() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatchRange) int { return v.End }).(pulumi.IntOutput) + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) } -// The start of the range. -func (o RouteSpecHttpRouteMatchHeaderMatchRangeOutput) Start() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttpRouteMatchHeaderMatchRange) int { return v.Start }).(pulumi.IntOutput) +// The certificate chain for the certificate. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) CertificateChain() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile) string { + return v.CertificateChain + }).(pulumi.StringOutput) } -type RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteMatchHeaderMatchRange)(nil)).Elem() +func (VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile)(nil)).Elem() } -func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutput() RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) ToRouteSpecHttpRouteMatchHeaderMatchRangePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput { +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) ToVirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput { return o } -func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) Elem() RouteSpecHttpRouteMatchHeaderMatchRangeOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatchRange) RouteSpecHttpRouteMatchHeaderMatchRange { return *v }).(RouteSpecHttpRouteMatchHeaderMatchRangeOutput) -} - -// The end of the range. -func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) End() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatchRange) *int { - if v == nil { - return nil - } - return &v.End - }).(pulumi.IntPtrOutput) +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) Elem() VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile) VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile { + return *v + }).(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput) } -// The start of the range. -func (o RouteSpecHttpRouteMatchHeaderMatchRangePtrOutput) Start() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteMatchHeaderMatchRange) *int { +// The certificate chain for the certificate. +func (o VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput) CertificateChain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile) *string { if v == nil { return nil } - return &v.Start - }).(pulumi.IntPtrOutput) + return &v.CertificateChain + }).(pulumi.StringPtrOutput) } -type RouteSpecHttpRouteRetryPolicy struct { - // List of HTTP retry events. - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - HttpRetryEvents []string `pulumi:"httpRetryEvents"` - // The maximum number of retries. - MaxRetries int `pulumi:"maxRetries"` - // The per-retry timeout. - PerRetryTimeout RouteSpecHttpRouteRetryPolicyPerRetryTimeout `pulumi:"perRetryTimeout"` - // List of TCP retry events. The only valid value is `connection-error`. - TcpRetryEvents []string `pulumi:"tcpRetryEvents"` +type VirtualGatewaySpecListener struct { + // The health check information for the listener. + HealthCheck *VirtualGatewaySpecListenerHealthCheck `pulumi:"healthCheck"` + // The port mapping information for the listener. + PortMapping VirtualGatewaySpecListenerPortMapping `pulumi:"portMapping"` + // The Transport Layer Security (TLS) properties for the listener + Tls *VirtualGatewaySpecListenerTls `pulumi:"tls"` } -// RouteSpecHttpRouteRetryPolicyInput is an input type that accepts RouteSpecHttpRouteRetryPolicyArgs and RouteSpecHttpRouteRetryPolicyOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyInput` via: +// VirtualGatewaySpecListenerInput is an input type that accepts VirtualGatewaySpecListenerArgs and VirtualGatewaySpecListenerOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerInput` via: // -// RouteSpecHttpRouteRetryPolicyArgs{...} -type RouteSpecHttpRouteRetryPolicyInput interface { +// VirtualGatewaySpecListenerArgs{...} +type VirtualGatewaySpecListenerInput interface { pulumi.Input - ToRouteSpecHttpRouteRetryPolicyOutput() RouteSpecHttpRouteRetryPolicyOutput - ToRouteSpecHttpRouteRetryPolicyOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyOutput + ToVirtualGatewaySpecListenerOutput() VirtualGatewaySpecListenerOutput + ToVirtualGatewaySpecListenerOutputWithContext(context.Context) VirtualGatewaySpecListenerOutput } -type RouteSpecHttpRouteRetryPolicyArgs struct { - // List of HTTP retry events. - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - // Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - HttpRetryEvents pulumi.StringArrayInput `pulumi:"httpRetryEvents"` - // The maximum number of retries. - MaxRetries pulumi.IntInput `pulumi:"maxRetries"` - // The per-retry timeout. - PerRetryTimeout RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput `pulumi:"perRetryTimeout"` - // List of TCP retry events. The only valid value is `connection-error`. - TcpRetryEvents pulumi.StringArrayInput `pulumi:"tcpRetryEvents"` +type VirtualGatewaySpecListenerArgs struct { + // The health check information for the listener. + HealthCheck VirtualGatewaySpecListenerHealthCheckPtrInput `pulumi:"healthCheck"` + // The port mapping information for the listener. + PortMapping VirtualGatewaySpecListenerPortMappingInput `pulumi:"portMapping"` + // The Transport Layer Security (TLS) properties for the listener + Tls VirtualGatewaySpecListenerTlsPtrInput `pulumi:"tls"` } -func (RouteSpecHttpRouteRetryPolicyArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +func (VirtualGatewaySpecListenerArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListener)(nil)).Elem() } -func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyOutput() RouteSpecHttpRouteRetryPolicyOutput { - return i.ToRouteSpecHttpRouteRetryPolicyOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerArgs) ToVirtualGatewaySpecListenerOutput() VirtualGatewaySpecListenerOutput { + return i.ToVirtualGatewaySpecListenerOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyOutput) +func (i VirtualGatewaySpecListenerArgs) ToVirtualGatewaySpecListenerOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerOutput) } -func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { - return i.ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerArgs) ToVirtualGatewaySpecListenerPtrOutput() VirtualGatewaySpecListenerPtrOutput { + return i.ToVirtualGatewaySpecListenerPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteRetryPolicyArgs) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyOutput).ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecListenerArgs) ToVirtualGatewaySpecListenerPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerOutput).ToVirtualGatewaySpecListenerPtrOutputWithContext(ctx) } -// RouteSpecHttpRouteRetryPolicyPtrInput is an input type that accepts RouteSpecHttpRouteRetryPolicyArgs, RouteSpecHttpRouteRetryPolicyPtr and RouteSpecHttpRouteRetryPolicyPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyPtrInput` via: +// VirtualGatewaySpecListenerPtrInput is an input type that accepts VirtualGatewaySpecListenerArgs, VirtualGatewaySpecListenerPtr and VirtualGatewaySpecListenerPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerPtrInput` via: // -// RouteSpecHttpRouteRetryPolicyArgs{...} +// VirtualGatewaySpecListenerArgs{...} // // or: // // nil -type RouteSpecHttpRouteRetryPolicyPtrInput interface { +type VirtualGatewaySpecListenerPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput - ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput + ToVirtualGatewaySpecListenerPtrOutput() VirtualGatewaySpecListenerPtrOutput + ToVirtualGatewaySpecListenerPtrOutputWithContext(context.Context) VirtualGatewaySpecListenerPtrOutput } -type routeSpecHttpRouteRetryPolicyPtrType RouteSpecHttpRouteRetryPolicyArgs +type virtualGatewaySpecListenerPtrType VirtualGatewaySpecListenerArgs -func RouteSpecHttpRouteRetryPolicyPtr(v *RouteSpecHttpRouteRetryPolicyArgs) RouteSpecHttpRouteRetryPolicyPtrInput { - return (*routeSpecHttpRouteRetryPolicyPtrType)(v) +func VirtualGatewaySpecListenerPtr(v *VirtualGatewaySpecListenerArgs) VirtualGatewaySpecListenerPtrInput { + return (*virtualGatewaySpecListenerPtrType)(v) } -func (*routeSpecHttpRouteRetryPolicyPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +func (*virtualGatewaySpecListenerPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListener)(nil)).Elem() } -func (i *routeSpecHttpRouteRetryPolicyPtrType) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { - return i.ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecListenerPtrType) ToVirtualGatewaySpecListenerPtrOutput() VirtualGatewaySpecListenerPtrOutput { + return i.ToVirtualGatewaySpecListenerPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteRetryPolicyPtrType) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPtrOutput) +func (i *virtualGatewaySpecListenerPtrType) ToVirtualGatewaySpecListenerPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerPtrOutput) } -type RouteSpecHttpRouteRetryPolicyOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteRetryPolicyOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +func (VirtualGatewaySpecListenerOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListener)(nil)).Elem() } -func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyOutput() RouteSpecHttpRouteRetryPolicyOutput { +func (o VirtualGatewaySpecListenerOutput) ToVirtualGatewaySpecListenerOutput() VirtualGatewaySpecListenerOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyOutput { +func (o VirtualGatewaySpecListenerOutput) ToVirtualGatewaySpecListenerOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { - return o.ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecListenerOutput) ToVirtualGatewaySpecListenerPtrOutput() VirtualGatewaySpecListenerPtrOutput { + return o.ToVirtualGatewaySpecListenerPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteRetryPolicyOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) *RouteSpecHttpRouteRetryPolicy { +func (o VirtualGatewaySpecListenerOutput) ToVirtualGatewaySpecListenerPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListener) *VirtualGatewaySpecListener { return &v - }).(RouteSpecHttpRouteRetryPolicyPtrOutput) -} - -// List of HTTP retry events. -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -func (o RouteSpecHttpRouteRetryPolicyOutput) HttpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) []string { return v.HttpRetryEvents }).(pulumi.StringArrayOutput) + }).(VirtualGatewaySpecListenerPtrOutput) } -// The maximum number of retries. -func (o RouteSpecHttpRouteRetryPolicyOutput) MaxRetries() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) int { return v.MaxRetries }).(pulumi.IntOutput) +// The health check information for the listener. +func (o VirtualGatewaySpecListenerOutput) HealthCheck() VirtualGatewaySpecListenerHealthCheckPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListener) *VirtualGatewaySpecListenerHealthCheck { return v.HealthCheck }).(VirtualGatewaySpecListenerHealthCheckPtrOutput) } -// The per-retry timeout. -func (o RouteSpecHttpRouteRetryPolicyOutput) PerRetryTimeout() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) RouteSpecHttpRouteRetryPolicyPerRetryTimeout { - return v.PerRetryTimeout - }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) +// The port mapping information for the listener. +func (o VirtualGatewaySpecListenerOutput) PortMapping() VirtualGatewaySpecListenerPortMappingOutput { + return o.ApplyT(func(v VirtualGatewaySpecListener) VirtualGatewaySpecListenerPortMapping { return v.PortMapping }).(VirtualGatewaySpecListenerPortMappingOutput) } -// List of TCP retry events. The only valid value is `connection-error`. -func (o RouteSpecHttpRouteRetryPolicyOutput) TcpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicy) []string { return v.TcpRetryEvents }).(pulumi.StringArrayOutput) +// The Transport Layer Security (TLS) properties for the listener +func (o VirtualGatewaySpecListenerOutput) Tls() VirtualGatewaySpecListenerTlsPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListener) *VirtualGatewaySpecListenerTls { return v.Tls }).(VirtualGatewaySpecListenerTlsPtrOutput) } -type RouteSpecHttpRouteRetryPolicyPtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteRetryPolicyPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicy)(nil)).Elem() +func (VirtualGatewaySpecListenerPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListener)(nil)).Elem() } -func (o RouteSpecHttpRouteRetryPolicyPtrOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutput() RouteSpecHttpRouteRetryPolicyPtrOutput { +func (o VirtualGatewaySpecListenerPtrOutput) ToVirtualGatewaySpecListenerPtrOutput() VirtualGatewaySpecListenerPtrOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyPtrOutput) ToRouteSpecHttpRouteRetryPolicyPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPtrOutput { +func (o VirtualGatewaySpecListenerPtrOutput) ToVirtualGatewaySpecListenerPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPtrOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyPtrOutput) Elem() RouteSpecHttpRouteRetryPolicyOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) RouteSpecHttpRouteRetryPolicy { return *v }).(RouteSpecHttpRouteRetryPolicyOutput) -} - -// List of HTTP retry events. -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -// Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). -func (o RouteSpecHttpRouteRetryPolicyPtrOutput) HttpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) []string { - if v == nil { - return nil - } - return v.HttpRetryEvents - }).(pulumi.StringArrayOutput) +func (o VirtualGatewaySpecListenerPtrOutput) Elem() VirtualGatewaySpecListenerOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListener) VirtualGatewaySpecListener { return *v }).(VirtualGatewaySpecListenerOutput) } -// The maximum number of retries. -func (o RouteSpecHttpRouteRetryPolicyPtrOutput) MaxRetries() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) *int { +// The health check information for the listener. +func (o VirtualGatewaySpecListenerPtrOutput) HealthCheck() VirtualGatewaySpecListenerHealthCheckPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListener) *VirtualGatewaySpecListenerHealthCheck { if v == nil { return nil } - return &v.MaxRetries - }).(pulumi.IntPtrOutput) + return v.HealthCheck + }).(VirtualGatewaySpecListenerHealthCheckPtrOutput) } -// The per-retry timeout. -func (o RouteSpecHttpRouteRetryPolicyPtrOutput) PerRetryTimeout() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) *RouteSpecHttpRouteRetryPolicyPerRetryTimeout { +// The port mapping information for the listener. +func (o VirtualGatewaySpecListenerPtrOutput) PortMapping() VirtualGatewaySpecListenerPortMappingPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListener) *VirtualGatewaySpecListenerPortMapping { if v == nil { return nil } - return &v.PerRetryTimeout - }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) + return &v.PortMapping + }).(VirtualGatewaySpecListenerPortMappingPtrOutput) } -// List of TCP retry events. The only valid value is `connection-error`. -func (o RouteSpecHttpRouteRetryPolicyPtrOutput) TcpRetryEvents() pulumi.StringArrayOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicy) []string { +// The Transport Layer Security (TLS) properties for the listener +func (o VirtualGatewaySpecListenerPtrOutput) Tls() VirtualGatewaySpecListenerTlsPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListener) *VirtualGatewaySpecListenerTls { if v == nil { return nil } - return v.TcpRetryEvents - }).(pulumi.StringArrayOutput) + return v.Tls + }).(VirtualGatewaySpecListenerTlsPtrOutput) } -type RouteSpecHttpRouteRetryPolicyPerRetryTimeout struct { - // Retry unit. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // Retry value. - Value int `pulumi:"value"` +type VirtualGatewaySpecListenerHealthCheck struct { + // The number of consecutive successful health checks that must occur before declaring listener healthy. + HealthyThreshold int `pulumi:"healthyThreshold"` + // The time period in milliseconds between each health check execution. + IntervalMillis int `pulumi:"intervalMillis"` + // The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + Path *string `pulumi:"path"` + // The destination port for the health check request. This port must match the port defined in the `portMapping` for the listener. + Port *int `pulumi:"port"` + // The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + Protocol string `pulumi:"protocol"` + // The amount of time to wait when receiving a response from the health check, in milliseconds. + TimeoutMillis int `pulumi:"timeoutMillis"` + // The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + UnhealthyThreshold int `pulumi:"unhealthyThreshold"` } -// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput is an input type that accepts RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs and RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput` via: +// VirtualGatewaySpecListenerHealthCheckInput is an input type that accepts VirtualGatewaySpecListenerHealthCheckArgs and VirtualGatewaySpecListenerHealthCheckOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerHealthCheckInput` via: // -// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs{...} -type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutInput interface { +// VirtualGatewaySpecListenerHealthCheckArgs{...} +type VirtualGatewaySpecListenerHealthCheckInput interface { pulumi.Input - ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput - ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput + ToVirtualGatewaySpecListenerHealthCheckOutput() VirtualGatewaySpecListenerHealthCheckOutput + ToVirtualGatewaySpecListenerHealthCheckOutputWithContext(context.Context) VirtualGatewaySpecListenerHealthCheckOutput } -type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs struct { - // Retry unit. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // Retry value. - Value pulumi.IntInput `pulumi:"value"` +type VirtualGatewaySpecListenerHealthCheckArgs struct { + // The number of consecutive successful health checks that must occur before declaring listener healthy. + HealthyThreshold pulumi.IntInput `pulumi:"healthyThreshold"` + // The time period in milliseconds between each health check execution. + IntervalMillis pulumi.IntInput `pulumi:"intervalMillis"` + // The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + Path pulumi.StringPtrInput `pulumi:"path"` + // The destination port for the health check request. This port must match the port defined in the `portMapping` for the listener. + Port pulumi.IntPtrInput `pulumi:"port"` + // The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + Protocol pulumi.StringInput `pulumi:"protocol"` + // The amount of time to wait when receiving a response from the health check, in milliseconds. + TimeoutMillis pulumi.IntInput `pulumi:"timeoutMillis"` + // The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + UnhealthyThreshold pulumi.IntInput `pulumi:"unhealthyThreshold"` } -func (RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (VirtualGatewaySpecListenerHealthCheckArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerHealthCheck)(nil)).Elem() } -func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { - return i.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerHealthCheckArgs) ToVirtualGatewaySpecListenerHealthCheckOutput() VirtualGatewaySpecListenerHealthCheckOutput { + return i.ToVirtualGatewaySpecListenerHealthCheckOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) +func (i VirtualGatewaySpecListenerHealthCheckArgs) ToVirtualGatewaySpecListenerHealthCheckOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerHealthCheckOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerHealthCheckOutput) } -func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { - return i.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerHealthCheckArgs) ToVirtualGatewaySpecListenerHealthCheckPtrOutput() VirtualGatewaySpecListenerHealthCheckPtrOutput { + return i.ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput).ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecListenerHealthCheckArgs) ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerHealthCheckOutput).ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(ctx) } -// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput is an input type that accepts RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs, RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtr and RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput` via: +// VirtualGatewaySpecListenerHealthCheckPtrInput is an input type that accepts VirtualGatewaySpecListenerHealthCheckArgs, VirtualGatewaySpecListenerHealthCheckPtr and VirtualGatewaySpecListenerHealthCheckPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerHealthCheckPtrInput` via: // -// RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs{...} +// VirtualGatewaySpecListenerHealthCheckArgs{...} // // or: // // nil -type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput interface { +type VirtualGatewaySpecListenerHealthCheckPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput - ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput + ToVirtualGatewaySpecListenerHealthCheckPtrOutput() VirtualGatewaySpecListenerHealthCheckPtrOutput + ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(context.Context) VirtualGatewaySpecListenerHealthCheckPtrOutput } -type routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs +type virtualGatewaySpecListenerHealthCheckPtrType VirtualGatewaySpecListenerHealthCheckArgs -func RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtr(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrInput { - return (*routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType)(v) +func VirtualGatewaySpecListenerHealthCheckPtr(v *VirtualGatewaySpecListenerHealthCheckArgs) VirtualGatewaySpecListenerHealthCheckPtrInput { + return (*virtualGatewaySpecListenerHealthCheckPtrType)(v) } -func (*routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (*virtualGatewaySpecListenerHealthCheckPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerHealthCheck)(nil)).Elem() } -func (i *routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { - return i.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecListenerHealthCheckPtrType) ToVirtualGatewaySpecListenerHealthCheckPtrOutput() VirtualGatewaySpecListenerHealthCheckPtrOutput { + return i.ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteRetryPolicyPerRetryTimeoutPtrType) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) +func (i *virtualGatewaySpecListenerHealthCheckPtrType) ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerHealthCheckPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerHealthCheckPtrOutput) } -type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerHealthCheckOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +func (VirtualGatewaySpecListenerHealthCheckOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerHealthCheck)(nil)).Elem() } -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { +func (o VirtualGatewaySpecListenerHealthCheckOutput) ToVirtualGatewaySpecListenerHealthCheckOutput() VirtualGatewaySpecListenerHealthCheckOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { +func (o VirtualGatewaySpecListenerHealthCheckOutput) ToVirtualGatewaySpecListenerHealthCheckOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerHealthCheckOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecListenerHealthCheckOutput) ToVirtualGatewaySpecListenerHealthCheckPtrOutput() VirtualGatewaySpecListenerHealthCheckPtrOutput { + return o.ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicyPerRetryTimeout) *RouteSpecHttpRouteRetryPolicyPerRetryTimeout { +func (o VirtualGatewaySpecListenerHealthCheckOutput) ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerHealthCheckPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) *VirtualGatewaySpecListenerHealthCheck { return &v - }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) + }).(VirtualGatewaySpecListenerHealthCheckPtrOutput) } -// Retry unit. Valid values: `ms`, `s`. -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicyPerRetryTimeout) string { return v.Unit }).(pulumi.StringOutput) +// The number of consecutive successful health checks that must occur before declaring listener healthy. +func (o VirtualGatewaySpecListenerHealthCheckOutput) HealthyThreshold() pulumi.IntOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) int { return v.HealthyThreshold }).(pulumi.IntOutput) } -// Retry value. -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttpRouteRetryPolicyPerRetryTimeout) int { return v.Value }).(pulumi.IntOutput) +// The time period in milliseconds between each health check execution. +func (o VirtualGatewaySpecListenerHealthCheckOutput) IntervalMillis() pulumi.IntOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) int { return v.IntervalMillis }).(pulumi.IntOutput) } -type RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput struct{ *pulumi.OutputState } +// The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. +func (o VirtualGatewaySpecListenerHealthCheckOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) *string { return v.Path }).(pulumi.StringPtrOutput) +} -func (RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteRetryPolicyPerRetryTimeout)(nil)).Elem() +// The destination port for the health check request. This port must match the port defined in the `portMapping` for the listener. +func (o VirtualGatewaySpecListenerHealthCheckOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) *int { return v.Port }).(pulumi.IntPtrOutput) } -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { +// The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. +func (o VirtualGatewaySpecListenerHealthCheckOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) string { return v.Protocol }).(pulumi.StringOutput) +} + +// The amount of time to wait when receiving a response from the health check, in milliseconds. +func (o VirtualGatewaySpecListenerHealthCheckOutput) TimeoutMillis() pulumi.IntOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) int { return v.TimeoutMillis }).(pulumi.IntOutput) +} + +// The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. +func (o VirtualGatewaySpecListenerHealthCheckOutput) UnhealthyThreshold() pulumi.IntOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerHealthCheck) int { return v.UnhealthyThreshold }).(pulumi.IntOutput) +} + +type VirtualGatewaySpecListenerHealthCheckPtrOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecListenerHealthCheckPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerHealthCheck)(nil)).Elem() +} + +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) ToVirtualGatewaySpecListenerHealthCheckPtrOutput() VirtualGatewaySpecListenerHealthCheckPtrOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) ToRouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput { +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) ToVirtualGatewaySpecListenerHealthCheckPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerHealthCheckPtrOutput { return o } -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) Elem() RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeout) RouteSpecHttpRouteRetryPolicyPerRetryTimeout { - return *v - }).(RouteSpecHttpRouteRetryPolicyPerRetryTimeoutOutput) +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) Elem() VirtualGatewaySpecListenerHealthCheckOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) VirtualGatewaySpecListenerHealthCheck { return *v }).(VirtualGatewaySpecListenerHealthCheckOutput) } -// Retry unit. Valid values: `ms`, `s`. -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeout) *string { +// The number of consecutive successful health checks that must occur before declaring listener healthy. +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) HealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) *int { if v == nil { return nil } - return &v.Unit + return &v.HealthyThreshold + }).(pulumi.IntPtrOutput) +} + +// The time period in milliseconds between each health check execution. +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) IntervalMillis() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) *int { + if v == nil { + return nil + } + return &v.IntervalMillis + }).(pulumi.IntPtrOutput) +} + +// The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) *string { + if v == nil { + return nil + } + return v.Path }).(pulumi.StringPtrOutput) } -// Retry value. -func (o RouteSpecHttpRouteRetryPolicyPerRetryTimeoutPtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteRetryPolicyPerRetryTimeout) *int { +// The destination port for the health check request. This port must match the port defined in the `portMapping` for the listener. +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) *int { if v == nil { return nil } - return &v.Value + return v.Port }).(pulumi.IntPtrOutput) } -type RouteSpecHttpRouteTimeout struct { - // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle *RouteSpecHttpRouteTimeoutIdle `pulumi:"idle"` - // The per request timeout. - PerRequest *RouteSpecHttpRouteTimeoutPerRequest `pulumi:"perRequest"` +// The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) *string { + if v == nil { + return nil + } + return &v.Protocol + }).(pulumi.StringPtrOutput) } -// RouteSpecHttpRouteTimeoutInput is an input type that accepts RouteSpecHttpRouteTimeoutArgs and RouteSpecHttpRouteTimeoutOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutInput` via: +// The amount of time to wait when receiving a response from the health check, in milliseconds. +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) TimeoutMillis() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) *int { + if v == nil { + return nil + } + return &v.TimeoutMillis + }).(pulumi.IntPtrOutput) +} + +// The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. +func (o VirtualGatewaySpecListenerHealthCheckPtrOutput) UnhealthyThreshold() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerHealthCheck) *int { + if v == nil { + return nil + } + return &v.UnhealthyThreshold + }).(pulumi.IntPtrOutput) +} + +type VirtualGatewaySpecListenerPortMapping struct { + // The port used for the port mapping. + Port int `pulumi:"port"` + // The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. + Protocol string `pulumi:"protocol"` +} + +// VirtualGatewaySpecListenerPortMappingInput is an input type that accepts VirtualGatewaySpecListenerPortMappingArgs and VirtualGatewaySpecListenerPortMappingOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerPortMappingInput` via: // -// RouteSpecHttpRouteTimeoutArgs{...} -type RouteSpecHttpRouteTimeoutInput interface { +// VirtualGatewaySpecListenerPortMappingArgs{...} +type VirtualGatewaySpecListenerPortMappingInput interface { pulumi.Input - ToRouteSpecHttpRouteTimeoutOutput() RouteSpecHttpRouteTimeoutOutput - ToRouteSpecHttpRouteTimeoutOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutOutput + ToVirtualGatewaySpecListenerPortMappingOutput() VirtualGatewaySpecListenerPortMappingOutput + ToVirtualGatewaySpecListenerPortMappingOutputWithContext(context.Context) VirtualGatewaySpecListenerPortMappingOutput } -type RouteSpecHttpRouteTimeoutArgs struct { - // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle RouteSpecHttpRouteTimeoutIdlePtrInput `pulumi:"idle"` - // The per request timeout. - PerRequest RouteSpecHttpRouteTimeoutPerRequestPtrInput `pulumi:"perRequest"` +type VirtualGatewaySpecListenerPortMappingArgs struct { + // The port used for the port mapping. + Port pulumi.IntInput `pulumi:"port"` + // The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. + Protocol pulumi.StringInput `pulumi:"protocol"` } -func (RouteSpecHttpRouteTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteTimeout)(nil)).Elem() +func (VirtualGatewaySpecListenerPortMappingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerPortMapping)(nil)).Elem() } -func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutOutput() RouteSpecHttpRouteTimeoutOutput { - return i.ToRouteSpecHttpRouteTimeoutOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerPortMappingArgs) ToVirtualGatewaySpecListenerPortMappingOutput() VirtualGatewaySpecListenerPortMappingOutput { + return i.ToVirtualGatewaySpecListenerPortMappingOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutOutput) +func (i VirtualGatewaySpecListenerPortMappingArgs) ToVirtualGatewaySpecListenerPortMappingOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPortMappingOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerPortMappingOutput) } -func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { - return i.ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerPortMappingArgs) ToVirtualGatewaySpecListenerPortMappingPtrOutput() VirtualGatewaySpecListenerPortMappingPtrOutput { + return i.ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteTimeoutArgs) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutOutput).ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecListenerPortMappingArgs) ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPortMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerPortMappingOutput).ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(ctx) } -// RouteSpecHttpRouteTimeoutPtrInput is an input type that accepts RouteSpecHttpRouteTimeoutArgs, RouteSpecHttpRouteTimeoutPtr and RouteSpecHttpRouteTimeoutPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutPtrInput` via: +// VirtualGatewaySpecListenerPortMappingPtrInput is an input type that accepts VirtualGatewaySpecListenerPortMappingArgs, VirtualGatewaySpecListenerPortMappingPtr and VirtualGatewaySpecListenerPortMappingPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerPortMappingPtrInput` via: // -// RouteSpecHttpRouteTimeoutArgs{...} +// VirtualGatewaySpecListenerPortMappingArgs{...} // // or: // // nil -type RouteSpecHttpRouteTimeoutPtrInput interface { +type VirtualGatewaySpecListenerPortMappingPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput - ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutPtrOutput + ToVirtualGatewaySpecListenerPortMappingPtrOutput() VirtualGatewaySpecListenerPortMappingPtrOutput + ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(context.Context) VirtualGatewaySpecListenerPortMappingPtrOutput } -type routeSpecHttpRouteTimeoutPtrType RouteSpecHttpRouteTimeoutArgs +type virtualGatewaySpecListenerPortMappingPtrType VirtualGatewaySpecListenerPortMappingArgs -func RouteSpecHttpRouteTimeoutPtr(v *RouteSpecHttpRouteTimeoutArgs) RouteSpecHttpRouteTimeoutPtrInput { - return (*routeSpecHttpRouteTimeoutPtrType)(v) +func VirtualGatewaySpecListenerPortMappingPtr(v *VirtualGatewaySpecListenerPortMappingArgs) VirtualGatewaySpecListenerPortMappingPtrInput { + return (*virtualGatewaySpecListenerPortMappingPtrType)(v) } -func (*routeSpecHttpRouteTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteTimeout)(nil)).Elem() +func (*virtualGatewaySpecListenerPortMappingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerPortMapping)(nil)).Elem() } -func (i *routeSpecHttpRouteTimeoutPtrType) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { - return i.ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecListenerPortMappingPtrType) ToVirtualGatewaySpecListenerPortMappingPtrOutput() VirtualGatewaySpecListenerPortMappingPtrOutput { + return i.ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteTimeoutPtrType) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPtrOutput) +func (i *virtualGatewaySpecListenerPortMappingPtrType) ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPortMappingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerPortMappingPtrOutput) } -type RouteSpecHttpRouteTimeoutOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerPortMappingOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteTimeout)(nil)).Elem() +func (VirtualGatewaySpecListenerPortMappingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerPortMapping)(nil)).Elem() } -func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutOutput() RouteSpecHttpRouteTimeoutOutput { +func (o VirtualGatewaySpecListenerPortMappingOutput) ToVirtualGatewaySpecListenerPortMappingOutput() VirtualGatewaySpecListenerPortMappingOutput { return o } -func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutOutput { +func (o VirtualGatewaySpecListenerPortMappingOutput) ToVirtualGatewaySpecListenerPortMappingOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPortMappingOutput { return o } -func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { - return o.ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecListenerPortMappingOutput) ToVirtualGatewaySpecListenerPortMappingPtrOutput() VirtualGatewaySpecListenerPortMappingPtrOutput { + return o.ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteTimeoutOutput) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeout { +func (o VirtualGatewaySpecListenerPortMappingOutput) ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPortMappingPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerPortMapping) *VirtualGatewaySpecListenerPortMapping { return &v - }).(RouteSpecHttpRouteTimeoutPtrOutput) + }).(VirtualGatewaySpecListenerPortMappingPtrOutput) } -// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecHttpRouteTimeoutOutput) Idle() RouteSpecHttpRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutIdle { return v.Idle }).(RouteSpecHttpRouteTimeoutIdlePtrOutput) +// The port used for the port mapping. +func (o VirtualGatewaySpecListenerPortMappingOutput) Port() pulumi.IntOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerPortMapping) int { return v.Port }).(pulumi.IntOutput) } -// The per request timeout. -func (o RouteSpecHttpRouteTimeoutOutput) PerRequest() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutPerRequest { return v.PerRequest }).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) +// The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. +func (o VirtualGatewaySpecListenerPortMappingOutput) Protocol() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerPortMapping) string { return v.Protocol }).(pulumi.StringOutput) } -type RouteSpecHttpRouteTimeoutPtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerPortMappingPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteTimeout)(nil)).Elem() +func (VirtualGatewaySpecListenerPortMappingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerPortMapping)(nil)).Elem() } -func (o RouteSpecHttpRouteTimeoutPtrOutput) ToRouteSpecHttpRouteTimeoutPtrOutput() RouteSpecHttpRouteTimeoutPtrOutput { +func (o VirtualGatewaySpecListenerPortMappingPtrOutput) ToVirtualGatewaySpecListenerPortMappingPtrOutput() VirtualGatewaySpecListenerPortMappingPtrOutput { return o } -func (o RouteSpecHttpRouteTimeoutPtrOutput) ToRouteSpecHttpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPtrOutput { +func (o VirtualGatewaySpecListenerPortMappingPtrOutput) ToVirtualGatewaySpecListenerPortMappingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerPortMappingPtrOutput { return o } -func (o RouteSpecHttpRouteTimeoutPtrOutput) Elem() RouteSpecHttpRouteTimeoutOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeout) RouteSpecHttpRouteTimeout { return *v }).(RouteSpecHttpRouteTimeoutOutput) +func (o VirtualGatewaySpecListenerPortMappingPtrOutput) Elem() VirtualGatewaySpecListenerPortMappingOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerPortMapping) VirtualGatewaySpecListenerPortMapping { return *v }).(VirtualGatewaySpecListenerPortMappingOutput) } -// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecHttpRouteTimeoutPtrOutput) Idle() RouteSpecHttpRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutIdle { +// The port used for the port mapping. +func (o VirtualGatewaySpecListenerPortMappingPtrOutput) Port() pulumi.IntPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerPortMapping) *int { if v == nil { return nil } - return v.Idle - }).(RouteSpecHttpRouteTimeoutIdlePtrOutput) + return &v.Port + }).(pulumi.IntPtrOutput) } -// The per request timeout. -func (o RouteSpecHttpRouteTimeoutPtrOutput) PerRequest() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeout) *RouteSpecHttpRouteTimeoutPerRequest { +// The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. +func (o VirtualGatewaySpecListenerPortMappingPtrOutput) Protocol() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerPortMapping) *string { if v == nil { return nil } - return v.PerRequest - }).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) + return &v.Protocol + }).(pulumi.StringPtrOutput) } -type RouteSpecHttpRouteTimeoutIdle struct { - // The unit of time. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value int `pulumi:"value"` +type VirtualGatewaySpecListenerTls struct { + // The listener's TLS certificate. + Certificate VirtualGatewaySpecListenerTlsCertificate `pulumi:"certificate"` + // The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. + Mode string `pulumi:"mode"` } -// RouteSpecHttpRouteTimeoutIdleInput is an input type that accepts RouteSpecHttpRouteTimeoutIdleArgs and RouteSpecHttpRouteTimeoutIdleOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutIdleInput` via: +// VirtualGatewaySpecListenerTlsInput is an input type that accepts VirtualGatewaySpecListenerTlsArgs and VirtualGatewaySpecListenerTlsOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsInput` via: // -// RouteSpecHttpRouteTimeoutIdleArgs{...} -type RouteSpecHttpRouteTimeoutIdleInput interface { +// VirtualGatewaySpecListenerTlsArgs{...} +type VirtualGatewaySpecListenerTlsInput interface { pulumi.Input - ToRouteSpecHttpRouteTimeoutIdleOutput() RouteSpecHttpRouteTimeoutIdleOutput - ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutIdleOutput + ToVirtualGatewaySpecListenerTlsOutput() VirtualGatewaySpecListenerTlsOutput + ToVirtualGatewaySpecListenerTlsOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsOutput } -type RouteSpecHttpRouteTimeoutIdleArgs struct { - // The unit of time. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value pulumi.IntInput `pulumi:"value"` +type VirtualGatewaySpecListenerTlsArgs struct { + // The listener's TLS certificate. + Certificate VirtualGatewaySpecListenerTlsCertificateInput `pulumi:"certificate"` + // The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. + Mode pulumi.StringInput `pulumi:"mode"` } -func (RouteSpecHttpRouteTimeoutIdleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTls)(nil)).Elem() } -func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdleOutput() RouteSpecHttpRouteTimeoutIdleOutput { - return i.ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsArgs) ToVirtualGatewaySpecListenerTlsOutput() VirtualGatewaySpecListenerTlsOutput { + return i.ToVirtualGatewaySpecListenerTlsOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutIdleOutput) +func (i VirtualGatewaySpecListenerTlsArgs) ToVirtualGatewaySpecListenerTlsOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsOutput) } -func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { - return i.ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsArgs) ToVirtualGatewaySpecListenerTlsPtrOutput() VirtualGatewaySpecListenerTlsPtrOutput { + return i.ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteTimeoutIdleArgs) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutIdleOutput).ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx) +func (i VirtualGatewaySpecListenerTlsArgs) ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsOutput).ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(ctx) } -// RouteSpecHttpRouteTimeoutIdlePtrInput is an input type that accepts RouteSpecHttpRouteTimeoutIdleArgs, RouteSpecHttpRouteTimeoutIdlePtr and RouteSpecHttpRouteTimeoutIdlePtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutIdlePtrInput` via: +// VirtualGatewaySpecListenerTlsPtrInput is an input type that accepts VirtualGatewaySpecListenerTlsArgs, VirtualGatewaySpecListenerTlsPtr and VirtualGatewaySpecListenerTlsPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsPtrInput` via: // -// RouteSpecHttpRouteTimeoutIdleArgs{...} +// VirtualGatewaySpecListenerTlsArgs{...} // // or: // // nil -type RouteSpecHttpRouteTimeoutIdlePtrInput interface { +type VirtualGatewaySpecListenerTlsPtrInput interface { pulumi.Input - ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput - ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput + ToVirtualGatewaySpecListenerTlsPtrOutput() VirtualGatewaySpecListenerTlsPtrOutput + ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsPtrOutput } -type routeSpecHttpRouteTimeoutIdlePtrType RouteSpecHttpRouteTimeoutIdleArgs +type virtualGatewaySpecListenerTlsPtrType VirtualGatewaySpecListenerTlsArgs -func RouteSpecHttpRouteTimeoutIdlePtr(v *RouteSpecHttpRouteTimeoutIdleArgs) RouteSpecHttpRouteTimeoutIdlePtrInput { - return (*routeSpecHttpRouteTimeoutIdlePtrType)(v) +func VirtualGatewaySpecListenerTlsPtr(v *VirtualGatewaySpecListenerTlsArgs) VirtualGatewaySpecListenerTlsPtrInput { + return (*virtualGatewaySpecListenerTlsPtrType)(v) } -func (*routeSpecHttpRouteTimeoutIdlePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +func (*virtualGatewaySpecListenerTlsPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTls)(nil)).Elem() } -func (i *routeSpecHttpRouteTimeoutIdlePtrType) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { - return i.ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecListenerTlsPtrType) ToVirtualGatewaySpecListenerTlsPtrOutput() VirtualGatewaySpecListenerTlsPtrOutput { + return i.ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteTimeoutIdlePtrType) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutIdlePtrOutput) +func (i *virtualGatewaySpecListenerTlsPtrType) ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsPtrOutput) } -type RouteSpecHttpRouteTimeoutIdleOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerTlsOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteTimeoutIdleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTls)(nil)).Elem() } -func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdleOutput() RouteSpecHttpRouteTimeoutIdleOutput { +func (o VirtualGatewaySpecListenerTlsOutput) ToVirtualGatewaySpecListenerTlsOutput() VirtualGatewaySpecListenerTlsOutput { return o } -func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdleOutput { +func (o VirtualGatewaySpecListenerTlsOutput) ToVirtualGatewaySpecListenerTlsOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsOutput { return o } -func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { - return o.ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecListenerTlsOutput) ToVirtualGatewaySpecListenerTlsPtrOutput() VirtualGatewaySpecListenerTlsPtrOutput { + return o.ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteTimeoutIdleOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeoutIdle) *RouteSpecHttpRouteTimeoutIdle { +func (o VirtualGatewaySpecListenerTlsOutput) ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTls) *VirtualGatewaySpecListenerTls { return &v - }).(RouteSpecHttpRouteTimeoutIdlePtrOutput) + }).(VirtualGatewaySpecListenerTlsPtrOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttpRouteTimeoutIdleOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) +// The listener's TLS certificate. +func (o VirtualGatewaySpecListenerTlsOutput) Certificate() VirtualGatewaySpecListenerTlsCertificateOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTls) VirtualGatewaySpecListenerTlsCertificate { return v.Certificate }).(VirtualGatewaySpecListenerTlsCertificateOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecHttpRouteTimeoutIdleOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) +// The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. +func (o VirtualGatewaySpecListenerTlsOutput) Mode() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTls) string { return v.Mode }).(pulumi.StringOutput) } -type RouteSpecHttpRouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerTlsPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteTimeoutIdlePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteTimeoutIdle)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTls)(nil)).Elem() } -func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutput() RouteSpecHttpRouteTimeoutIdlePtrOutput { +func (o VirtualGatewaySpecListenerTlsPtrOutput) ToVirtualGatewaySpecListenerTlsPtrOutput() VirtualGatewaySpecListenerTlsPtrOutput { return o } -func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) ToRouteSpecHttpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutIdlePtrOutput { +func (o VirtualGatewaySpecListenerTlsPtrOutput) ToVirtualGatewaySpecListenerTlsPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsPtrOutput { return o } -func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) Elem() RouteSpecHttpRouteTimeoutIdleOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutIdle) RouteSpecHttpRouteTimeoutIdle { return *v }).(RouteSpecHttpRouteTimeoutIdleOutput) +func (o VirtualGatewaySpecListenerTlsPtrOutput) Elem() VirtualGatewaySpecListenerTlsOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTls) VirtualGatewaySpecListenerTls { return *v }).(VirtualGatewaySpecListenerTlsOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutIdle) *string { +// The listener's TLS certificate. +func (o VirtualGatewaySpecListenerTlsPtrOutput) Certificate() VirtualGatewaySpecListenerTlsCertificatePtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTls) *VirtualGatewaySpecListenerTlsCertificate { if v == nil { return nil } - return &v.Unit - }).(pulumi.StringPtrOutput) + return &v.Certificate + }).(VirtualGatewaySpecListenerTlsCertificatePtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecHttpRouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutIdle) *int { +// The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. +func (o VirtualGatewaySpecListenerTlsPtrOutput) Mode() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTls) *string { if v == nil { return nil } - return &v.Value - }).(pulumi.IntPtrOutput) + return &v.Mode + }).(pulumi.StringPtrOutput) } -type RouteSpecHttpRouteTimeoutPerRequest struct { - // The unit of time. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value int `pulumi:"value"` +type VirtualGatewaySpecListenerTlsCertificate struct { + // An AWS Certificate Manager (ACM) certificate. + Acm *VirtualGatewaySpecListenerTlsCertificateAcm `pulumi:"acm"` + // A local file certificate. + File *VirtualGatewaySpecListenerTlsCertificateFile `pulumi:"file"` } -// RouteSpecHttpRouteTimeoutPerRequestInput is an input type that accepts RouteSpecHttpRouteTimeoutPerRequestArgs and RouteSpecHttpRouteTimeoutPerRequestOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutPerRequestInput` via: +// VirtualGatewaySpecListenerTlsCertificateInput is an input type that accepts VirtualGatewaySpecListenerTlsCertificateArgs and VirtualGatewaySpecListenerTlsCertificateOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsCertificateInput` via: // -// RouteSpecHttpRouteTimeoutPerRequestArgs{...} -type RouteSpecHttpRouteTimeoutPerRequestInput interface { +// VirtualGatewaySpecListenerTlsCertificateArgs{...} +type VirtualGatewaySpecListenerTlsCertificateInput interface { pulumi.Input - ToRouteSpecHttpRouteTimeoutPerRequestOutput() RouteSpecHttpRouteTimeoutPerRequestOutput - ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutPerRequestOutput + ToVirtualGatewaySpecListenerTlsCertificateOutput() VirtualGatewaySpecListenerTlsCertificateOutput + ToVirtualGatewaySpecListenerTlsCertificateOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsCertificateOutput } -type RouteSpecHttpRouteTimeoutPerRequestArgs struct { - // The unit of time. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value pulumi.IntInput `pulumi:"value"` +type VirtualGatewaySpecListenerTlsCertificateArgs struct { + // An AWS Certificate Manager (ACM) certificate. + Acm VirtualGatewaySpecListenerTlsCertificateAcmPtrInput `pulumi:"acm"` + // A local file certificate. + File VirtualGatewaySpecListenerTlsCertificateFilePtrInput `pulumi:"file"` } -func (RouteSpecHttpRouteTimeoutPerRequestArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificateArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTlsCertificate)(nil)).Elem() } -func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestOutput() RouteSpecHttpRouteTimeoutPerRequestOutput { - return i.ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsCertificateArgs) ToVirtualGatewaySpecListenerTlsCertificateOutput() VirtualGatewaySpecListenerTlsCertificateOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificateOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPerRequestOutput) +func (i VirtualGatewaySpecListenerTlsCertificateArgs) ToVirtualGatewaySpecListenerTlsCertificateOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateOutput) } -func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return i.ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsCertificateArgs) ToVirtualGatewaySpecListenerTlsCertificatePtrOutput() VirtualGatewaySpecListenerTlsCertificatePtrOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(context.Background()) } -func (i RouteSpecHttpRouteTimeoutPerRequestArgs) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPerRequestOutput).ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecListenerTlsCertificateArgs) ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateOutput).ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(ctx) } -// RouteSpecHttpRouteTimeoutPerRequestPtrInput is an input type that accepts RouteSpecHttpRouteTimeoutPerRequestArgs, RouteSpecHttpRouteTimeoutPerRequestPtr and RouteSpecHttpRouteTimeoutPerRequestPtrOutput values. -// You can construct a concrete instance of `RouteSpecHttpRouteTimeoutPerRequestPtrInput` via: +// VirtualGatewaySpecListenerTlsCertificatePtrInput is an input type that accepts VirtualGatewaySpecListenerTlsCertificateArgs, VirtualGatewaySpecListenerTlsCertificatePtr and VirtualGatewaySpecListenerTlsCertificatePtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsCertificatePtrInput` via: // -// RouteSpecHttpRouteTimeoutPerRequestArgs{...} +// VirtualGatewaySpecListenerTlsCertificateArgs{...} // // or: // // nil -type RouteSpecHttpRouteTimeoutPerRequestPtrInput interface { +type VirtualGatewaySpecListenerTlsCertificatePtrInput interface { pulumi.Input - ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput - ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput + ToVirtualGatewaySpecListenerTlsCertificatePtrOutput() VirtualGatewaySpecListenerTlsCertificatePtrOutput + ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsCertificatePtrOutput } -type routeSpecHttpRouteTimeoutPerRequestPtrType RouteSpecHttpRouteTimeoutPerRequestArgs +type virtualGatewaySpecListenerTlsCertificatePtrType VirtualGatewaySpecListenerTlsCertificateArgs -func RouteSpecHttpRouteTimeoutPerRequestPtr(v *RouteSpecHttpRouteTimeoutPerRequestArgs) RouteSpecHttpRouteTimeoutPerRequestPtrInput { - return (*routeSpecHttpRouteTimeoutPerRequestPtrType)(v) +func VirtualGatewaySpecListenerTlsCertificatePtr(v *VirtualGatewaySpecListenerTlsCertificateArgs) VirtualGatewaySpecListenerTlsCertificatePtrInput { + return (*virtualGatewaySpecListenerTlsCertificatePtrType)(v) } -func (*routeSpecHttpRouteTimeoutPerRequestPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +func (*virtualGatewaySpecListenerTlsCertificatePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTlsCertificate)(nil)).Elem() } -func (i *routeSpecHttpRouteTimeoutPerRequestPtrType) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return i.ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecListenerTlsCertificatePtrType) ToVirtualGatewaySpecListenerTlsCertificatePtrOutput() VirtualGatewaySpecListenerTlsCertificatePtrOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(context.Background()) } -func (i *routeSpecHttpRouteTimeoutPerRequestPtrType) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) +func (i *virtualGatewaySpecListenerTlsCertificatePtrType) ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificatePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificatePtrOutput) } -type RouteSpecHttpRouteTimeoutPerRequestOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerTlsCertificateOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteTimeoutPerRequestOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificateOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTlsCertificate)(nil)).Elem() } -func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestOutput() RouteSpecHttpRouteTimeoutPerRequestOutput { +func (o VirtualGatewaySpecListenerTlsCertificateOutput) ToVirtualGatewaySpecListenerTlsCertificateOutput() VirtualGatewaySpecListenerTlsCertificateOutput { return o } -func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestOutput { +func (o VirtualGatewaySpecListenerTlsCertificateOutput) ToVirtualGatewaySpecListenerTlsCertificateOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateOutput { return o } -func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return o.ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecListenerTlsCertificateOutput) ToVirtualGatewaySpecListenerTlsCertificatePtrOutput() VirtualGatewaySpecListenerTlsCertificatePtrOutput { + return o.ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(context.Background()) } -func (o RouteSpecHttpRouteTimeoutPerRequestOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeoutPerRequest) *RouteSpecHttpRouteTimeoutPerRequest { +func (o VirtualGatewaySpecListenerTlsCertificateOutput) ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificatePtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificate) *VirtualGatewaySpecListenerTlsCertificate { return &v - }).(RouteSpecHttpRouteTimeoutPerRequestPtrOutput) + }).(VirtualGatewaySpecListenerTlsCertificatePtrOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttpRouteTimeoutPerRequestOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeoutPerRequest) string { return v.Unit }).(pulumi.StringOutput) +// An AWS Certificate Manager (ACM) certificate. +func (o VirtualGatewaySpecListenerTlsCertificateOutput) Acm() VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificate) *VirtualGatewaySpecListenerTlsCertificateAcm { + return v.Acm + }).(VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecHttpRouteTimeoutPerRequestOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecHttpRouteTimeoutPerRequest) int { return v.Value }).(pulumi.IntOutput) +// A local file certificate. +func (o VirtualGatewaySpecListenerTlsCertificateOutput) File() VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificate) *VirtualGatewaySpecListenerTlsCertificateFile { + return v.File + }).(VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) } -type RouteSpecHttpRouteTimeoutPerRequestPtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerTlsCertificatePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecHttpRouteTimeoutPerRequestPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecHttpRouteTimeoutPerRequest)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificatePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTlsCertificate)(nil)).Elem() } -func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutput() RouteSpecHttpRouteTimeoutPerRequestPtrOutput { +func (o VirtualGatewaySpecListenerTlsCertificatePtrOutput) ToVirtualGatewaySpecListenerTlsCertificatePtrOutput() VirtualGatewaySpecListenerTlsCertificatePtrOutput { return o } -func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) ToRouteSpecHttpRouteTimeoutPerRequestPtrOutputWithContext(ctx context.Context) RouteSpecHttpRouteTimeoutPerRequestPtrOutput { +func (o VirtualGatewaySpecListenerTlsCertificatePtrOutput) ToVirtualGatewaySpecListenerTlsCertificatePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificatePtrOutput { return o } -func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) Elem() RouteSpecHttpRouteTimeoutPerRequestOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutPerRequest) RouteSpecHttpRouteTimeoutPerRequest { return *v }).(RouteSpecHttpRouteTimeoutPerRequestOutput) +func (o VirtualGatewaySpecListenerTlsCertificatePtrOutput) Elem() VirtualGatewaySpecListenerTlsCertificateOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificate) VirtualGatewaySpecListenerTlsCertificate { return *v }).(VirtualGatewaySpecListenerTlsCertificateOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutPerRequest) *string { +// An AWS Certificate Manager (ACM) certificate. +func (o VirtualGatewaySpecListenerTlsCertificatePtrOutput) Acm() VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificate) *VirtualGatewaySpecListenerTlsCertificateAcm { if v == nil { return nil } - return &v.Unit - }).(pulumi.StringPtrOutput) + return v.Acm + }).(VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecHttpRouteTimeoutPerRequestPtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecHttpRouteTimeoutPerRequest) *int { +// A local file certificate. +func (o VirtualGatewaySpecListenerTlsCertificatePtrOutput) File() VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificate) *VirtualGatewaySpecListenerTlsCertificateFile { if v == nil { return nil } - return &v.Value - }).(pulumi.IntPtrOutput) + return v.File + }).(VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) } -type RouteSpecTcpRoute struct { - // The action to take if a match is determined. - Action RouteSpecTcpRouteAction `pulumi:"action"` - // The types of timeouts. - Timeout *RouteSpecTcpRouteTimeout `pulumi:"timeout"` +type VirtualGatewaySpecListenerTlsCertificateAcm struct { + // The Amazon Resource Name (ARN) for the certificate. + CertificateArn string `pulumi:"certificateArn"` } -// RouteSpecTcpRouteInput is an input type that accepts RouteSpecTcpRouteArgs and RouteSpecTcpRouteOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteInput` via: +// VirtualGatewaySpecListenerTlsCertificateAcmInput is an input type that accepts VirtualGatewaySpecListenerTlsCertificateAcmArgs and VirtualGatewaySpecListenerTlsCertificateAcmOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsCertificateAcmInput` via: // -// RouteSpecTcpRouteArgs{...} -type RouteSpecTcpRouteInput interface { +// VirtualGatewaySpecListenerTlsCertificateAcmArgs{...} +type VirtualGatewaySpecListenerTlsCertificateAcmInput interface { pulumi.Input - ToRouteSpecTcpRouteOutput() RouteSpecTcpRouteOutput - ToRouteSpecTcpRouteOutputWithContext(context.Context) RouteSpecTcpRouteOutput + ToVirtualGatewaySpecListenerTlsCertificateAcmOutput() VirtualGatewaySpecListenerTlsCertificateAcmOutput + ToVirtualGatewaySpecListenerTlsCertificateAcmOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsCertificateAcmOutput } -type RouteSpecTcpRouteArgs struct { - // The action to take if a match is determined. - Action RouteSpecTcpRouteActionInput `pulumi:"action"` - // The types of timeouts. - Timeout RouteSpecTcpRouteTimeoutPtrInput `pulumi:"timeout"` +type VirtualGatewaySpecListenerTlsCertificateAcmArgs struct { + // The Amazon Resource Name (ARN) for the certificate. + CertificateArn pulumi.StringInput `pulumi:"certificateArn"` } -func (RouteSpecTcpRouteArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRoute)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificateAcmArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTlsCertificateAcm)(nil)).Elem() } -func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRouteOutput() RouteSpecTcpRouteOutput { - return i.ToRouteSpecTcpRouteOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsCertificateAcmArgs) ToVirtualGatewaySpecListenerTlsCertificateAcmOutput() VirtualGatewaySpecListenerTlsCertificateAcmOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificateAcmOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRouteOutputWithContext(ctx context.Context) RouteSpecTcpRouteOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteOutput) +func (i VirtualGatewaySpecListenerTlsCertificateAcmArgs) ToVirtualGatewaySpecListenerTlsCertificateAcmOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateAcmOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateAcmOutput) } -func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { - return i.ToRouteSpecTcpRoutePtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsCertificateAcmArgs) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutput() VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteArgs) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteOutput).ToRouteSpecTcpRoutePtrOutputWithContext(ctx) +func (i VirtualGatewaySpecListenerTlsCertificateAcmArgs) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateAcmOutput).ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(ctx) } -// RouteSpecTcpRoutePtrInput is an input type that accepts RouteSpecTcpRouteArgs, RouteSpecTcpRoutePtr and RouteSpecTcpRoutePtrOutput values. -// You can construct a concrete instance of `RouteSpecTcpRoutePtrInput` via: +// VirtualGatewaySpecListenerTlsCertificateAcmPtrInput is an input type that accepts VirtualGatewaySpecListenerTlsCertificateAcmArgs, VirtualGatewaySpecListenerTlsCertificateAcmPtr and VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsCertificateAcmPtrInput` via: // -// RouteSpecTcpRouteArgs{...} +// VirtualGatewaySpecListenerTlsCertificateAcmArgs{...} // // or: // // nil -type RouteSpecTcpRoutePtrInput interface { +type VirtualGatewaySpecListenerTlsCertificateAcmPtrInput interface { pulumi.Input - ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput - ToRouteSpecTcpRoutePtrOutputWithContext(context.Context) RouteSpecTcpRoutePtrOutput + ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutput() VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput + ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput } -type routeSpecTcpRoutePtrType RouteSpecTcpRouteArgs +type virtualGatewaySpecListenerTlsCertificateAcmPtrType VirtualGatewaySpecListenerTlsCertificateAcmArgs -func RouteSpecTcpRoutePtr(v *RouteSpecTcpRouteArgs) RouteSpecTcpRoutePtrInput { - return (*routeSpecTcpRoutePtrType)(v) +func VirtualGatewaySpecListenerTlsCertificateAcmPtr(v *VirtualGatewaySpecListenerTlsCertificateAcmArgs) VirtualGatewaySpecListenerTlsCertificateAcmPtrInput { + return (*virtualGatewaySpecListenerTlsCertificateAcmPtrType)(v) } -func (*routeSpecTcpRoutePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRoute)(nil)).Elem() +func (*virtualGatewaySpecListenerTlsCertificateAcmPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTlsCertificateAcm)(nil)).Elem() } -func (i *routeSpecTcpRoutePtrType) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { - return i.ToRouteSpecTcpRoutePtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecListenerTlsCertificateAcmPtrType) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutput() VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(context.Background()) } -func (i *routeSpecTcpRoutePtrType) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRoutePtrOutput) +func (i *virtualGatewaySpecListenerTlsCertificateAcmPtrType) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) } -type RouteSpecTcpRouteOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerTlsCertificateAcmOutput struct{ *pulumi.OutputState } -func (RouteSpecTcpRouteOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRoute)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificateAcmOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTlsCertificateAcm)(nil)).Elem() } -func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRouteOutput() RouteSpecTcpRouteOutput { +func (o VirtualGatewaySpecListenerTlsCertificateAcmOutput) ToVirtualGatewaySpecListenerTlsCertificateAcmOutput() VirtualGatewaySpecListenerTlsCertificateAcmOutput { return o } -func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRouteOutputWithContext(ctx context.Context) RouteSpecTcpRouteOutput { +func (o VirtualGatewaySpecListenerTlsCertificateAcmOutput) ToVirtualGatewaySpecListenerTlsCertificateAcmOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateAcmOutput { return o } -func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { - return o.ToRouteSpecTcpRoutePtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecListenerTlsCertificateAcmOutput) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutput() VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return o.ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(context.Background()) } -func (o RouteSpecTcpRouteOutput) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { - return o.ApplyT(func(v RouteSpecTcpRoute) *RouteSpecTcpRoute { +func (o VirtualGatewaySpecListenerTlsCertificateAcmOutput) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificateAcm) *VirtualGatewaySpecListenerTlsCertificateAcm { return &v - }).(RouteSpecTcpRoutePtrOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecTcpRouteOutput) Action() RouteSpecTcpRouteActionOutput { - return o.ApplyT(func(v RouteSpecTcpRoute) RouteSpecTcpRouteAction { return v.Action }).(RouteSpecTcpRouteActionOutput) + }).(VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) } -// The types of timeouts. -func (o RouteSpecTcpRouteOutput) Timeout() RouteSpecTcpRouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecTcpRoute) *RouteSpecTcpRouteTimeout { return v.Timeout }).(RouteSpecTcpRouteTimeoutPtrOutput) +// The Amazon Resource Name (ARN) for the certificate. +func (o VirtualGatewaySpecListenerTlsCertificateAcmOutput) CertificateArn() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificateAcm) string { return v.CertificateArn }).(pulumi.StringOutput) } -type RouteSpecTcpRoutePtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecTcpRoutePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRoute)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTlsCertificateAcm)(nil)).Elem() } -func (o RouteSpecTcpRoutePtrOutput) ToRouteSpecTcpRoutePtrOutput() RouteSpecTcpRoutePtrOutput { +func (o VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutput() VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { return o } -func (o RouteSpecTcpRoutePtrOutput) ToRouteSpecTcpRoutePtrOutputWithContext(ctx context.Context) RouteSpecTcpRoutePtrOutput { +func (o VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) ToVirtualGatewaySpecListenerTlsCertificateAcmPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput { return o } -func (o RouteSpecTcpRoutePtrOutput) Elem() RouteSpecTcpRouteOutput { - return o.ApplyT(func(v *RouteSpecTcpRoute) RouteSpecTcpRoute { return *v }).(RouteSpecTcpRouteOutput) -} - -// The action to take if a match is determined. -func (o RouteSpecTcpRoutePtrOutput) Action() RouteSpecTcpRouteActionPtrOutput { - return o.ApplyT(func(v *RouteSpecTcpRoute) *RouteSpecTcpRouteAction { - if v == nil { - return nil - } - return &v.Action - }).(RouteSpecTcpRouteActionPtrOutput) +func (o VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) Elem() VirtualGatewaySpecListenerTlsCertificateAcmOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificateAcm) VirtualGatewaySpecListenerTlsCertificateAcm { + return *v + }).(VirtualGatewaySpecListenerTlsCertificateAcmOutput) } -// The types of timeouts. -func (o RouteSpecTcpRoutePtrOutput) Timeout() RouteSpecTcpRouteTimeoutPtrOutput { - return o.ApplyT(func(v *RouteSpecTcpRoute) *RouteSpecTcpRouteTimeout { +// The Amazon Resource Name (ARN) for the certificate. +func (o VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput) CertificateArn() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificateAcm) *string { if v == nil { return nil } - return v.Timeout - }).(RouteSpecTcpRouteTimeoutPtrOutput) + return &v.CertificateArn + }).(pulumi.StringPtrOutput) } -type RouteSpecTcpRouteAction struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets []RouteSpecTcpRouteActionWeightedTarget `pulumi:"weightedTargets"` +type VirtualGatewaySpecListenerTlsCertificateFile struct { + // The certificate chain for the certificate. + CertificateChain string `pulumi:"certificateChain"` + // The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + PrivateKey string `pulumi:"privateKey"` } -// RouteSpecTcpRouteActionInput is an input type that accepts RouteSpecTcpRouteActionArgs and RouteSpecTcpRouteActionOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteActionInput` via: +// VirtualGatewaySpecListenerTlsCertificateFileInput is an input type that accepts VirtualGatewaySpecListenerTlsCertificateFileArgs and VirtualGatewaySpecListenerTlsCertificateFileOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsCertificateFileInput` via: // -// RouteSpecTcpRouteActionArgs{...} -type RouteSpecTcpRouteActionInput interface { +// VirtualGatewaySpecListenerTlsCertificateFileArgs{...} +type VirtualGatewaySpecListenerTlsCertificateFileInput interface { pulumi.Input - ToRouteSpecTcpRouteActionOutput() RouteSpecTcpRouteActionOutput - ToRouteSpecTcpRouteActionOutputWithContext(context.Context) RouteSpecTcpRouteActionOutput + ToVirtualGatewaySpecListenerTlsCertificateFileOutput() VirtualGatewaySpecListenerTlsCertificateFileOutput + ToVirtualGatewaySpecListenerTlsCertificateFileOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsCertificateFileOutput } -type RouteSpecTcpRouteActionArgs struct { - // The targets that traffic is routed to when a request matches the route. - // You can specify one or more targets and their relative weights with which to distribute traffic. - WeightedTargets RouteSpecTcpRouteActionWeightedTargetArrayInput `pulumi:"weightedTargets"` +type VirtualGatewaySpecListenerTlsCertificateFileArgs struct { + // The certificate chain for the certificate. + CertificateChain pulumi.StringInput `pulumi:"certificateChain"` + // The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + PrivateKey pulumi.StringInput `pulumi:"privateKey"` } -func (RouteSpecTcpRouteActionArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteAction)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificateFileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTlsCertificateFile)(nil)).Elem() } -func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionOutput() RouteSpecTcpRouteActionOutput { - return i.ToRouteSpecTcpRouteActionOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsCertificateFileArgs) ToVirtualGatewaySpecListenerTlsCertificateFileOutput() VirtualGatewaySpecListenerTlsCertificateFileOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificateFileOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionOutput) +func (i VirtualGatewaySpecListenerTlsCertificateFileArgs) ToVirtualGatewaySpecListenerTlsCertificateFileOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateFileOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateFileOutput) } -func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { - return i.ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecListenerTlsCertificateFileArgs) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutput() VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteActionArgs) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionOutput).ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecListenerTlsCertificateFileArgs) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateFileOutput).ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(ctx) } -// RouteSpecTcpRouteActionPtrInput is an input type that accepts RouteSpecTcpRouteActionArgs, RouteSpecTcpRouteActionPtr and RouteSpecTcpRouteActionPtrOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteActionPtrInput` via: +// VirtualGatewaySpecListenerTlsCertificateFilePtrInput is an input type that accepts VirtualGatewaySpecListenerTlsCertificateFileArgs, VirtualGatewaySpecListenerTlsCertificateFilePtr and VirtualGatewaySpecListenerTlsCertificateFilePtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecListenerTlsCertificateFilePtrInput` via: // -// RouteSpecTcpRouteActionArgs{...} +// VirtualGatewaySpecListenerTlsCertificateFileArgs{...} // // or: // // nil -type RouteSpecTcpRouteActionPtrInput interface { +type VirtualGatewaySpecListenerTlsCertificateFilePtrInput interface { pulumi.Input - ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput - ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Context) RouteSpecTcpRouteActionPtrOutput + ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutput() VirtualGatewaySpecListenerTlsCertificateFilePtrOutput + ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(context.Context) VirtualGatewaySpecListenerTlsCertificateFilePtrOutput } -type routeSpecTcpRouteActionPtrType RouteSpecTcpRouteActionArgs +type virtualGatewaySpecListenerTlsCertificateFilePtrType VirtualGatewaySpecListenerTlsCertificateFileArgs -func RouteSpecTcpRouteActionPtr(v *RouteSpecTcpRouteActionArgs) RouteSpecTcpRouteActionPtrInput { - return (*routeSpecTcpRouteActionPtrType)(v) +func VirtualGatewaySpecListenerTlsCertificateFilePtr(v *VirtualGatewaySpecListenerTlsCertificateFileArgs) VirtualGatewaySpecListenerTlsCertificateFilePtrInput { + return (*virtualGatewaySpecListenerTlsCertificateFilePtrType)(v) } -func (*routeSpecTcpRouteActionPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRouteAction)(nil)).Elem() +func (*virtualGatewaySpecListenerTlsCertificateFilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTlsCertificateFile)(nil)).Elem() } -func (i *routeSpecTcpRouteActionPtrType) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { - return i.ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecListenerTlsCertificateFilePtrType) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutput() VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return i.ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(context.Background()) } -func (i *routeSpecTcpRouteActionPtrType) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionPtrOutput) +func (i *virtualGatewaySpecListenerTlsCertificateFilePtrType) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) } -type RouteSpecTcpRouteActionOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecListenerTlsCertificateFileOutput struct{ *pulumi.OutputState } -func (RouteSpecTcpRouteActionOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteAction)(nil)).Elem() +func (VirtualGatewaySpecListenerTlsCertificateFileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecListenerTlsCertificateFile)(nil)).Elem() } -func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionOutput() RouteSpecTcpRouteActionOutput { +func (o VirtualGatewaySpecListenerTlsCertificateFileOutput) ToVirtualGatewaySpecListenerTlsCertificateFileOutput() VirtualGatewaySpecListenerTlsCertificateFileOutput { return o } -func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionOutput { +func (o VirtualGatewaySpecListenerTlsCertificateFileOutput) ToVirtualGatewaySpecListenerTlsCertificateFileOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateFileOutput { return o } -func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { - return o.ToRouteSpecTcpRouteActionPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecListenerTlsCertificateFileOutput) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutput() VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return o.ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(context.Background()) } -func (o RouteSpecTcpRouteActionOutput) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { - return o.ApplyT(func(v RouteSpecTcpRouteAction) *RouteSpecTcpRouteAction { +func (o VirtualGatewaySpecListenerTlsCertificateFileOutput) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificateFile) *VirtualGatewaySpecListenerTlsCertificateFile { return &v - }).(RouteSpecTcpRouteActionPtrOutput) + }).(VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) } -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecTcpRouteActionOutput) WeightedTargets() RouteSpecTcpRouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v RouteSpecTcpRouteAction) []RouteSpecTcpRouteActionWeightedTarget { return v.WeightedTargets }).(RouteSpecTcpRouteActionWeightedTargetArrayOutput) +// The certificate chain for the certificate. +func (o VirtualGatewaySpecListenerTlsCertificateFileOutput) CertificateChain() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificateFile) string { return v.CertificateChain }).(pulumi.StringOutput) } -type RouteSpecTcpRouteActionPtrOutput struct{ *pulumi.OutputState } +// The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. +func (o VirtualGatewaySpecListenerTlsCertificateFileOutput) PrivateKey() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecListenerTlsCertificateFile) string { return v.PrivateKey }).(pulumi.StringOutput) +} -func (RouteSpecTcpRouteActionPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRouteAction)(nil)).Elem() +type VirtualGatewaySpecListenerTlsCertificateFilePtrOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecListenerTlsCertificateFile)(nil)).Elem() } -func (o RouteSpecTcpRouteActionPtrOutput) ToRouteSpecTcpRouteActionPtrOutput() RouteSpecTcpRouteActionPtrOutput { +func (o VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutput() VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { return o } -func (o RouteSpecTcpRouteActionPtrOutput) ToRouteSpecTcpRouteActionPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionPtrOutput { +func (o VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) ToVirtualGatewaySpecListenerTlsCertificateFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecListenerTlsCertificateFilePtrOutput { return o } -func (o RouteSpecTcpRouteActionPtrOutput) Elem() RouteSpecTcpRouteActionOutput { - return o.ApplyT(func(v *RouteSpecTcpRouteAction) RouteSpecTcpRouteAction { return *v }).(RouteSpecTcpRouteActionOutput) +func (o VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) Elem() VirtualGatewaySpecListenerTlsCertificateFileOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificateFile) VirtualGatewaySpecListenerTlsCertificateFile { + return *v + }).(VirtualGatewaySpecListenerTlsCertificateFileOutput) } -// The targets that traffic is routed to when a request matches the route. -// You can specify one or more targets and their relative weights with which to distribute traffic. -func (o RouteSpecTcpRouteActionPtrOutput) WeightedTargets() RouteSpecTcpRouteActionWeightedTargetArrayOutput { - return o.ApplyT(func(v *RouteSpecTcpRouteAction) []RouteSpecTcpRouteActionWeightedTarget { +// The certificate chain for the certificate. +func (o VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) CertificateChain() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificateFile) *string { if v == nil { return nil } - return v.WeightedTargets - }).(RouteSpecTcpRouteActionWeightedTargetArrayOutput) + return &v.CertificateChain + }).(pulumi.StringPtrOutput) } -type RouteSpecTcpRouteActionWeightedTarget struct { - // The virtual node to associate with the weighted target. - VirtualNode string `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight int `pulumi:"weight"` +// The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. +func (o VirtualGatewaySpecListenerTlsCertificateFilePtrOutput) PrivateKey() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecListenerTlsCertificateFile) *string { + if v == nil { + return nil + } + return &v.PrivateKey + }).(pulumi.StringPtrOutput) } -// RouteSpecTcpRouteActionWeightedTargetInput is an input type that accepts RouteSpecTcpRouteActionWeightedTargetArgs and RouteSpecTcpRouteActionWeightedTargetOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteActionWeightedTargetInput` via: +type VirtualGatewaySpecLogging struct { + // The access log configuration for a virtual gateway. + AccessLog *VirtualGatewaySpecLoggingAccessLog `pulumi:"accessLog"` +} + +// VirtualGatewaySpecLoggingInput is an input type that accepts VirtualGatewaySpecLoggingArgs and VirtualGatewaySpecLoggingOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecLoggingInput` via: // -// RouteSpecTcpRouteActionWeightedTargetArgs{...} -type RouteSpecTcpRouteActionWeightedTargetInput interface { +// VirtualGatewaySpecLoggingArgs{...} +type VirtualGatewaySpecLoggingInput interface { pulumi.Input - ToRouteSpecTcpRouteActionWeightedTargetOutput() RouteSpecTcpRouteActionWeightedTargetOutput - ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(context.Context) RouteSpecTcpRouteActionWeightedTargetOutput + ToVirtualGatewaySpecLoggingOutput() VirtualGatewaySpecLoggingOutput + ToVirtualGatewaySpecLoggingOutputWithContext(context.Context) VirtualGatewaySpecLoggingOutput } -type RouteSpecTcpRouteActionWeightedTargetArgs struct { - // The virtual node to associate with the weighted target. - VirtualNode pulumi.StringInput `pulumi:"virtualNode"` - // The relative weight of the weighted target. An integer between 0 and 100. - Weight pulumi.IntInput `pulumi:"weight"` +type VirtualGatewaySpecLoggingArgs struct { + // The access log configuration for a virtual gateway. + AccessLog VirtualGatewaySpecLoggingAccessLogPtrInput `pulumi:"accessLog"` } -func (RouteSpecTcpRouteActionWeightedTargetArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() +func (VirtualGatewaySpecLoggingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecLogging)(nil)).Elem() } -func (i RouteSpecTcpRouteActionWeightedTargetArgs) ToRouteSpecTcpRouteActionWeightedTargetOutput() RouteSpecTcpRouteActionWeightedTargetOutput { - return i.ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(context.Background()) +func (i VirtualGatewaySpecLoggingArgs) ToVirtualGatewaySpecLoggingOutput() VirtualGatewaySpecLoggingOutput { + return i.ToVirtualGatewaySpecLoggingOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteActionWeightedTargetArgs) ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionWeightedTargetOutput) +func (i VirtualGatewaySpecLoggingArgs) ToVirtualGatewaySpecLoggingOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingOutput) } -// RouteSpecTcpRouteActionWeightedTargetArrayInput is an input type that accepts RouteSpecTcpRouteActionWeightedTargetArray and RouteSpecTcpRouteActionWeightedTargetArrayOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteActionWeightedTargetArrayInput` via: +func (i VirtualGatewaySpecLoggingArgs) ToVirtualGatewaySpecLoggingPtrOutput() VirtualGatewaySpecLoggingPtrOutput { + return i.ToVirtualGatewaySpecLoggingPtrOutputWithContext(context.Background()) +} + +func (i VirtualGatewaySpecLoggingArgs) ToVirtualGatewaySpecLoggingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingOutput).ToVirtualGatewaySpecLoggingPtrOutputWithContext(ctx) +} + +// VirtualGatewaySpecLoggingPtrInput is an input type that accepts VirtualGatewaySpecLoggingArgs, VirtualGatewaySpecLoggingPtr and VirtualGatewaySpecLoggingPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecLoggingPtrInput` via: // -// RouteSpecTcpRouteActionWeightedTargetArray{ RouteSpecTcpRouteActionWeightedTargetArgs{...} } -type RouteSpecTcpRouteActionWeightedTargetArrayInput interface { +// VirtualGatewaySpecLoggingArgs{...} +// +// or: +// +// nil +type VirtualGatewaySpecLoggingPtrInput interface { pulumi.Input - ToRouteSpecTcpRouteActionWeightedTargetArrayOutput() RouteSpecTcpRouteActionWeightedTargetArrayOutput - ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(context.Context) RouteSpecTcpRouteActionWeightedTargetArrayOutput + ToVirtualGatewaySpecLoggingPtrOutput() VirtualGatewaySpecLoggingPtrOutput + ToVirtualGatewaySpecLoggingPtrOutputWithContext(context.Context) VirtualGatewaySpecLoggingPtrOutput } -type RouteSpecTcpRouteActionWeightedTargetArray []RouteSpecTcpRouteActionWeightedTargetInput +type virtualGatewaySpecLoggingPtrType VirtualGatewaySpecLoggingArgs -func (RouteSpecTcpRouteActionWeightedTargetArray) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() +func VirtualGatewaySpecLoggingPtr(v *VirtualGatewaySpecLoggingArgs) VirtualGatewaySpecLoggingPtrInput { + return (*virtualGatewaySpecLoggingPtrType)(v) } -func (i RouteSpecTcpRouteActionWeightedTargetArray) ToRouteSpecTcpRouteActionWeightedTargetArrayOutput() RouteSpecTcpRouteActionWeightedTargetArrayOutput { - return i.ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(context.Background()) +func (*virtualGatewaySpecLoggingPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecLogging)(nil)).Elem() } -func (i RouteSpecTcpRouteActionWeightedTargetArray) ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetArrayOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteActionWeightedTargetArrayOutput) +func (i *virtualGatewaySpecLoggingPtrType) ToVirtualGatewaySpecLoggingPtrOutput() VirtualGatewaySpecLoggingPtrOutput { + return i.ToVirtualGatewaySpecLoggingPtrOutputWithContext(context.Background()) } -type RouteSpecTcpRouteActionWeightedTargetOutput struct{ *pulumi.OutputState } +func (i *virtualGatewaySpecLoggingPtrType) ToVirtualGatewaySpecLoggingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingPtrOutput) +} -func (RouteSpecTcpRouteActionWeightedTargetOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() +type VirtualGatewaySpecLoggingOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecLoggingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecLogging)(nil)).Elem() } -func (o RouteSpecTcpRouteActionWeightedTargetOutput) ToRouteSpecTcpRouteActionWeightedTargetOutput() RouteSpecTcpRouteActionWeightedTargetOutput { +func (o VirtualGatewaySpecLoggingOutput) ToVirtualGatewaySpecLoggingOutput() VirtualGatewaySpecLoggingOutput { return o } -func (o RouteSpecTcpRouteActionWeightedTargetOutput) ToRouteSpecTcpRouteActionWeightedTargetOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetOutput { +func (o VirtualGatewaySpecLoggingOutput) ToVirtualGatewaySpecLoggingOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingOutput { return o } -// The virtual node to associate with the weighted target. -func (o RouteSpecTcpRouteActionWeightedTargetOutput) VirtualNode() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecTcpRouteActionWeightedTarget) string { return v.VirtualNode }).(pulumi.StringOutput) +func (o VirtualGatewaySpecLoggingOutput) ToVirtualGatewaySpecLoggingPtrOutput() VirtualGatewaySpecLoggingPtrOutput { + return o.ToVirtualGatewaySpecLoggingPtrOutputWithContext(context.Background()) } -// The relative weight of the weighted target. An integer between 0 and 100. -func (o RouteSpecTcpRouteActionWeightedTargetOutput) Weight() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecTcpRouteActionWeightedTarget) int { return v.Weight }).(pulumi.IntOutput) +func (o VirtualGatewaySpecLoggingOutput) ToVirtualGatewaySpecLoggingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecLogging) *VirtualGatewaySpecLogging { + return &v + }).(VirtualGatewaySpecLoggingPtrOutput) } -type RouteSpecTcpRouteActionWeightedTargetArrayOutput struct{ *pulumi.OutputState } +// The access log configuration for a virtual gateway. +func (o VirtualGatewaySpecLoggingOutput) AccessLog() VirtualGatewaySpecLoggingAccessLogPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecLogging) *VirtualGatewaySpecLoggingAccessLog { return v.AccessLog }).(VirtualGatewaySpecLoggingAccessLogPtrOutput) +} -func (RouteSpecTcpRouteActionWeightedTargetArrayOutput) ElementType() reflect.Type { - return reflect.TypeOf((*[]RouteSpecTcpRouteActionWeightedTarget)(nil)).Elem() +type VirtualGatewaySpecLoggingPtrOutput struct{ *pulumi.OutputState } + +func (VirtualGatewaySpecLoggingPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecLogging)(nil)).Elem() } -func (o RouteSpecTcpRouteActionWeightedTargetArrayOutput) ToRouteSpecTcpRouteActionWeightedTargetArrayOutput() RouteSpecTcpRouteActionWeightedTargetArrayOutput { +func (o VirtualGatewaySpecLoggingPtrOutput) ToVirtualGatewaySpecLoggingPtrOutput() VirtualGatewaySpecLoggingPtrOutput { return o } -func (o RouteSpecTcpRouteActionWeightedTargetArrayOutput) ToRouteSpecTcpRouteActionWeightedTargetArrayOutputWithContext(ctx context.Context) RouteSpecTcpRouteActionWeightedTargetArrayOutput { +func (o VirtualGatewaySpecLoggingPtrOutput) ToVirtualGatewaySpecLoggingPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingPtrOutput { return o } -func (o RouteSpecTcpRouteActionWeightedTargetArrayOutput) Index(i pulumi.IntInput) RouteSpecTcpRouteActionWeightedTargetOutput { - return pulumi.All(o, i).ApplyT(func(vs []interface{}) RouteSpecTcpRouteActionWeightedTarget { - return vs[0].([]RouteSpecTcpRouteActionWeightedTarget)[vs[1].(int)] - }).(RouteSpecTcpRouteActionWeightedTargetOutput) +func (o VirtualGatewaySpecLoggingPtrOutput) Elem() VirtualGatewaySpecLoggingOutput { + return o.ApplyT(func(v *VirtualGatewaySpecLogging) VirtualGatewaySpecLogging { return *v }).(VirtualGatewaySpecLoggingOutput) } -type RouteSpecTcpRouteTimeout struct { - // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle *RouteSpecTcpRouteTimeoutIdle `pulumi:"idle"` +// The access log configuration for a virtual gateway. +func (o VirtualGatewaySpecLoggingPtrOutput) AccessLog() VirtualGatewaySpecLoggingAccessLogPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecLogging) *VirtualGatewaySpecLoggingAccessLog { + if v == nil { + return nil + } + return v.AccessLog + }).(VirtualGatewaySpecLoggingAccessLogPtrOutput) } -// RouteSpecTcpRouteTimeoutInput is an input type that accepts RouteSpecTcpRouteTimeoutArgs and RouteSpecTcpRouteTimeoutOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutInput` via: +type VirtualGatewaySpecLoggingAccessLog struct { + // The file object to send virtual gateway access logs to. + File *VirtualGatewaySpecLoggingAccessLogFile `pulumi:"file"` +} + +// VirtualGatewaySpecLoggingAccessLogInput is an input type that accepts VirtualGatewaySpecLoggingAccessLogArgs and VirtualGatewaySpecLoggingAccessLogOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecLoggingAccessLogInput` via: // -// RouteSpecTcpRouteTimeoutArgs{...} -type RouteSpecTcpRouteTimeoutInput interface { +// VirtualGatewaySpecLoggingAccessLogArgs{...} +type VirtualGatewaySpecLoggingAccessLogInput interface { pulumi.Input - ToRouteSpecTcpRouteTimeoutOutput() RouteSpecTcpRouteTimeoutOutput - ToRouteSpecTcpRouteTimeoutOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutOutput + ToVirtualGatewaySpecLoggingAccessLogOutput() VirtualGatewaySpecLoggingAccessLogOutput + ToVirtualGatewaySpecLoggingAccessLogOutputWithContext(context.Context) VirtualGatewaySpecLoggingAccessLogOutput } -type RouteSpecTcpRouteTimeoutArgs struct { - // The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - Idle RouteSpecTcpRouteTimeoutIdlePtrInput `pulumi:"idle"` +type VirtualGatewaySpecLoggingAccessLogArgs struct { + // The file object to send virtual gateway access logs to. + File VirtualGatewaySpecLoggingAccessLogFilePtrInput `pulumi:"file"` } -func (RouteSpecTcpRouteTimeoutArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteTimeout)(nil)).Elem() +func (VirtualGatewaySpecLoggingAccessLogArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecLoggingAccessLog)(nil)).Elem() } -func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutOutput() RouteSpecTcpRouteTimeoutOutput { - return i.ToRouteSpecTcpRouteTimeoutOutputWithContext(context.Background()) +func (i VirtualGatewaySpecLoggingAccessLogArgs) ToVirtualGatewaySpecLoggingAccessLogOutput() VirtualGatewaySpecLoggingAccessLogOutput { + return i.ToVirtualGatewaySpecLoggingAccessLogOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutOutput) +func (i VirtualGatewaySpecLoggingAccessLogArgs) ToVirtualGatewaySpecLoggingAccessLogOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingAccessLogOutput) } -func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { - return i.ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecLoggingAccessLogArgs) ToVirtualGatewaySpecLoggingAccessLogPtrOutput() VirtualGatewaySpecLoggingAccessLogPtrOutput { + return i.ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteTimeoutArgs) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutOutput).ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx) +func (i VirtualGatewaySpecLoggingAccessLogArgs) ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingAccessLogOutput).ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(ctx) } -// RouteSpecTcpRouteTimeoutPtrInput is an input type that accepts RouteSpecTcpRouteTimeoutArgs, RouteSpecTcpRouteTimeoutPtr and RouteSpecTcpRouteTimeoutPtrOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutPtrInput` via: +// VirtualGatewaySpecLoggingAccessLogPtrInput is an input type that accepts VirtualGatewaySpecLoggingAccessLogArgs, VirtualGatewaySpecLoggingAccessLogPtr and VirtualGatewaySpecLoggingAccessLogPtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecLoggingAccessLogPtrInput` via: // -// RouteSpecTcpRouteTimeoutArgs{...} +// VirtualGatewaySpecLoggingAccessLogArgs{...} // // or: // // nil -type RouteSpecTcpRouteTimeoutPtrInput interface { +type VirtualGatewaySpecLoggingAccessLogPtrInput interface { pulumi.Input - ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput - ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutPtrOutput + ToVirtualGatewaySpecLoggingAccessLogPtrOutput() VirtualGatewaySpecLoggingAccessLogPtrOutput + ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(context.Context) VirtualGatewaySpecLoggingAccessLogPtrOutput } -type routeSpecTcpRouteTimeoutPtrType RouteSpecTcpRouteTimeoutArgs +type virtualGatewaySpecLoggingAccessLogPtrType VirtualGatewaySpecLoggingAccessLogArgs -func RouteSpecTcpRouteTimeoutPtr(v *RouteSpecTcpRouteTimeoutArgs) RouteSpecTcpRouteTimeoutPtrInput { - return (*routeSpecTcpRouteTimeoutPtrType)(v) +func VirtualGatewaySpecLoggingAccessLogPtr(v *VirtualGatewaySpecLoggingAccessLogArgs) VirtualGatewaySpecLoggingAccessLogPtrInput { + return (*virtualGatewaySpecLoggingAccessLogPtrType)(v) } -func (*routeSpecTcpRouteTimeoutPtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRouteTimeout)(nil)).Elem() +func (*virtualGatewaySpecLoggingAccessLogPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecLoggingAccessLog)(nil)).Elem() } -func (i *routeSpecTcpRouteTimeoutPtrType) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { - return i.ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecLoggingAccessLogPtrType) ToVirtualGatewaySpecLoggingAccessLogPtrOutput() VirtualGatewaySpecLoggingAccessLogPtrOutput { + return i.ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(context.Background()) } -func (i *routeSpecTcpRouteTimeoutPtrType) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutPtrOutput) +func (i *virtualGatewaySpecLoggingAccessLogPtrType) ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingAccessLogPtrOutput) } -type RouteSpecTcpRouteTimeoutOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecLoggingAccessLogOutput struct{ *pulumi.OutputState } -func (RouteSpecTcpRouteTimeoutOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteTimeout)(nil)).Elem() +func (VirtualGatewaySpecLoggingAccessLogOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecLoggingAccessLog)(nil)).Elem() } -func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutOutput() RouteSpecTcpRouteTimeoutOutput { +func (o VirtualGatewaySpecLoggingAccessLogOutput) ToVirtualGatewaySpecLoggingAccessLogOutput() VirtualGatewaySpecLoggingAccessLogOutput { return o } -func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutOutput { +func (o VirtualGatewaySpecLoggingAccessLogOutput) ToVirtualGatewaySpecLoggingAccessLogOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogOutput { return o } -func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { - return o.ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecLoggingAccessLogOutput) ToVirtualGatewaySpecLoggingAccessLogPtrOutput() VirtualGatewaySpecLoggingAccessLogPtrOutput { + return o.ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(context.Background()) } -func (o RouteSpecTcpRouteTimeoutOutput) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { - return o.ApplyT(func(v RouteSpecTcpRouteTimeout) *RouteSpecTcpRouteTimeout { +func (o VirtualGatewaySpecLoggingAccessLogOutput) ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogPtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecLoggingAccessLog) *VirtualGatewaySpecLoggingAccessLog { return &v - }).(RouteSpecTcpRouteTimeoutPtrOutput) + }).(VirtualGatewaySpecLoggingAccessLogPtrOutput) } -// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecTcpRouteTimeoutOutput) Idle() RouteSpecTcpRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecTcpRouteTimeout) *RouteSpecTcpRouteTimeoutIdle { return v.Idle }).(RouteSpecTcpRouteTimeoutIdlePtrOutput) +// The file object to send virtual gateway access logs to. +func (o VirtualGatewaySpecLoggingAccessLogOutput) File() VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecLoggingAccessLog) *VirtualGatewaySpecLoggingAccessLogFile { return v.File }).(VirtualGatewaySpecLoggingAccessLogFilePtrOutput) } -type RouteSpecTcpRouteTimeoutPtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecLoggingAccessLogPtrOutput struct{ *pulumi.OutputState } -func (RouteSpecTcpRouteTimeoutPtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRouteTimeout)(nil)).Elem() +func (VirtualGatewaySpecLoggingAccessLogPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecLoggingAccessLog)(nil)).Elem() } -func (o RouteSpecTcpRouteTimeoutPtrOutput) ToRouteSpecTcpRouteTimeoutPtrOutput() RouteSpecTcpRouteTimeoutPtrOutput { +func (o VirtualGatewaySpecLoggingAccessLogPtrOutput) ToVirtualGatewaySpecLoggingAccessLogPtrOutput() VirtualGatewaySpecLoggingAccessLogPtrOutput { return o } -func (o RouteSpecTcpRouteTimeoutPtrOutput) ToRouteSpecTcpRouteTimeoutPtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutPtrOutput { +func (o VirtualGatewaySpecLoggingAccessLogPtrOutput) ToVirtualGatewaySpecLoggingAccessLogPtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogPtrOutput { return o } -func (o RouteSpecTcpRouteTimeoutPtrOutput) Elem() RouteSpecTcpRouteTimeoutOutput { - return o.ApplyT(func(v *RouteSpecTcpRouteTimeout) RouteSpecTcpRouteTimeout { return *v }).(RouteSpecTcpRouteTimeoutOutput) +func (o VirtualGatewaySpecLoggingAccessLogPtrOutput) Elem() VirtualGatewaySpecLoggingAccessLogOutput { + return o.ApplyT(func(v *VirtualGatewaySpecLoggingAccessLog) VirtualGatewaySpecLoggingAccessLog { return *v }).(VirtualGatewaySpecLoggingAccessLogOutput) } -// The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. -func (o RouteSpecTcpRouteTimeoutPtrOutput) Idle() RouteSpecTcpRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v *RouteSpecTcpRouteTimeout) *RouteSpecTcpRouteTimeoutIdle { +// The file object to send virtual gateway access logs to. +func (o VirtualGatewaySpecLoggingAccessLogPtrOutput) File() VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecLoggingAccessLog) *VirtualGatewaySpecLoggingAccessLogFile { if v == nil { return nil } - return v.Idle - }).(RouteSpecTcpRouteTimeoutIdlePtrOutput) + return v.File + }).(VirtualGatewaySpecLoggingAccessLogFilePtrOutput) } -type RouteSpecTcpRouteTimeoutIdle struct { - // The unit of time. Valid values: `ms`, `s`. - Unit string `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value int `pulumi:"value"` +type VirtualGatewaySpecLoggingAccessLogFile struct { + // The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + Path string `pulumi:"path"` } -// RouteSpecTcpRouteTimeoutIdleInput is an input type that accepts RouteSpecTcpRouteTimeoutIdleArgs and RouteSpecTcpRouteTimeoutIdleOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutIdleInput` via: +// VirtualGatewaySpecLoggingAccessLogFileInput is an input type that accepts VirtualGatewaySpecLoggingAccessLogFileArgs and VirtualGatewaySpecLoggingAccessLogFileOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecLoggingAccessLogFileInput` via: // -// RouteSpecTcpRouteTimeoutIdleArgs{...} -type RouteSpecTcpRouteTimeoutIdleInput interface { +// VirtualGatewaySpecLoggingAccessLogFileArgs{...} +type VirtualGatewaySpecLoggingAccessLogFileInput interface { pulumi.Input - ToRouteSpecTcpRouteTimeoutIdleOutput() RouteSpecTcpRouteTimeoutIdleOutput - ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutIdleOutput + ToVirtualGatewaySpecLoggingAccessLogFileOutput() VirtualGatewaySpecLoggingAccessLogFileOutput + ToVirtualGatewaySpecLoggingAccessLogFileOutputWithContext(context.Context) VirtualGatewaySpecLoggingAccessLogFileOutput } -type RouteSpecTcpRouteTimeoutIdleArgs struct { - // The unit of time. Valid values: `ms`, `s`. - Unit pulumi.StringInput `pulumi:"unit"` - // The number of time units. Minimum value of `0`. - Value pulumi.IntInput `pulumi:"value"` +type VirtualGatewaySpecLoggingAccessLogFileArgs struct { + // The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + Path pulumi.StringInput `pulumi:"path"` } -func (RouteSpecTcpRouteTimeoutIdleArgs) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() +func (VirtualGatewaySpecLoggingAccessLogFileArgs) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecLoggingAccessLogFile)(nil)).Elem() } -func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdleOutput() RouteSpecTcpRouteTimeoutIdleOutput { - return i.ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(context.Background()) +func (i VirtualGatewaySpecLoggingAccessLogFileArgs) ToVirtualGatewaySpecLoggingAccessLogFileOutput() VirtualGatewaySpecLoggingAccessLogFileOutput { + return i.ToVirtualGatewaySpecLoggingAccessLogFileOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdleOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutIdleOutput) +func (i VirtualGatewaySpecLoggingAccessLogFileArgs) ToVirtualGatewaySpecLoggingAccessLogFileOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogFileOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingAccessLogFileOutput) } -func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { - return i.ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i VirtualGatewaySpecLoggingAccessLogFileArgs) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutput() VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return i.ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(context.Background()) } -func (i RouteSpecTcpRouteTimeoutIdleArgs) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutIdleOutput).ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx) +func (i VirtualGatewaySpecLoggingAccessLogFileArgs) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingAccessLogFileOutput).ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(ctx) } -// RouteSpecTcpRouteTimeoutIdlePtrInput is an input type that accepts RouteSpecTcpRouteTimeoutIdleArgs, RouteSpecTcpRouteTimeoutIdlePtr and RouteSpecTcpRouteTimeoutIdlePtrOutput values. -// You can construct a concrete instance of `RouteSpecTcpRouteTimeoutIdlePtrInput` via: +// VirtualGatewaySpecLoggingAccessLogFilePtrInput is an input type that accepts VirtualGatewaySpecLoggingAccessLogFileArgs, VirtualGatewaySpecLoggingAccessLogFilePtr and VirtualGatewaySpecLoggingAccessLogFilePtrOutput values. +// You can construct a concrete instance of `VirtualGatewaySpecLoggingAccessLogFilePtrInput` via: // -// RouteSpecTcpRouteTimeoutIdleArgs{...} +// VirtualGatewaySpecLoggingAccessLogFileArgs{...} // // or: // // nil -type RouteSpecTcpRouteTimeoutIdlePtrInput interface { +type VirtualGatewaySpecLoggingAccessLogFilePtrInput interface { pulumi.Input - ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput - ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput + ToVirtualGatewaySpecLoggingAccessLogFilePtrOutput() VirtualGatewaySpecLoggingAccessLogFilePtrOutput + ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(context.Context) VirtualGatewaySpecLoggingAccessLogFilePtrOutput } -type routeSpecTcpRouteTimeoutIdlePtrType RouteSpecTcpRouteTimeoutIdleArgs +type virtualGatewaySpecLoggingAccessLogFilePtrType VirtualGatewaySpecLoggingAccessLogFileArgs -func RouteSpecTcpRouteTimeoutIdlePtr(v *RouteSpecTcpRouteTimeoutIdleArgs) RouteSpecTcpRouteTimeoutIdlePtrInput { - return (*routeSpecTcpRouteTimeoutIdlePtrType)(v) +func VirtualGatewaySpecLoggingAccessLogFilePtr(v *VirtualGatewaySpecLoggingAccessLogFileArgs) VirtualGatewaySpecLoggingAccessLogFilePtrInput { + return (*virtualGatewaySpecLoggingAccessLogFilePtrType)(v) } -func (*routeSpecTcpRouteTimeoutIdlePtrType) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() +func (*virtualGatewaySpecLoggingAccessLogFilePtrType) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecLoggingAccessLogFile)(nil)).Elem() } -func (i *routeSpecTcpRouteTimeoutIdlePtrType) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { - return i.ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (i *virtualGatewaySpecLoggingAccessLogFilePtrType) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutput() VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return i.ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(context.Background()) } -func (i *routeSpecTcpRouteTimeoutIdlePtrType) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { - return pulumi.ToOutputWithContext(ctx, i).(RouteSpecTcpRouteTimeoutIdlePtrOutput) +func (i *virtualGatewaySpecLoggingAccessLogFilePtrType) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(VirtualGatewaySpecLoggingAccessLogFilePtrOutput) } -type RouteSpecTcpRouteTimeoutIdleOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecLoggingAccessLogFileOutput struct{ *pulumi.OutputState } -func (RouteSpecTcpRouteTimeoutIdleOutput) ElementType() reflect.Type { - return reflect.TypeOf((*RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() +func (VirtualGatewaySpecLoggingAccessLogFileOutput) ElementType() reflect.Type { + return reflect.TypeOf((*VirtualGatewaySpecLoggingAccessLogFile)(nil)).Elem() } -func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdleOutput() RouteSpecTcpRouteTimeoutIdleOutput { +func (o VirtualGatewaySpecLoggingAccessLogFileOutput) ToVirtualGatewaySpecLoggingAccessLogFileOutput() VirtualGatewaySpecLoggingAccessLogFileOutput { return o } -func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdleOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdleOutput { +func (o VirtualGatewaySpecLoggingAccessLogFileOutput) ToVirtualGatewaySpecLoggingAccessLogFileOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogFileOutput { return o } -func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { - return o.ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(context.Background()) +func (o VirtualGatewaySpecLoggingAccessLogFileOutput) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutput() VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return o.ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(context.Background()) } -func (o RouteSpecTcpRouteTimeoutIdleOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { - return o.ApplyT(func(v RouteSpecTcpRouteTimeoutIdle) *RouteSpecTcpRouteTimeoutIdle { +func (o VirtualGatewaySpecLoggingAccessLogFileOutput) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogFilePtrOutput { + return o.ApplyT(func(v VirtualGatewaySpecLoggingAccessLogFile) *VirtualGatewaySpecLoggingAccessLogFile { return &v - }).(RouteSpecTcpRouteTimeoutIdlePtrOutput) + }).(VirtualGatewaySpecLoggingAccessLogFilePtrOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecTcpRouteTimeoutIdleOutput) Unit() pulumi.StringOutput { - return o.ApplyT(func(v RouteSpecTcpRouteTimeoutIdle) string { return v.Unit }).(pulumi.StringOutput) -} - -// The number of time units. Minimum value of `0`. -func (o RouteSpecTcpRouteTimeoutIdleOutput) Value() pulumi.IntOutput { - return o.ApplyT(func(v RouteSpecTcpRouteTimeoutIdle) int { return v.Value }).(pulumi.IntOutput) +// The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. +func (o VirtualGatewaySpecLoggingAccessLogFileOutput) Path() pulumi.StringOutput { + return o.ApplyT(func(v VirtualGatewaySpecLoggingAccessLogFile) string { return v.Path }).(pulumi.StringOutput) } -type RouteSpecTcpRouteTimeoutIdlePtrOutput struct{ *pulumi.OutputState } +type VirtualGatewaySpecLoggingAccessLogFilePtrOutput struct{ *pulumi.OutputState } -func (RouteSpecTcpRouteTimeoutIdlePtrOutput) ElementType() reflect.Type { - return reflect.TypeOf((**RouteSpecTcpRouteTimeoutIdle)(nil)).Elem() +func (VirtualGatewaySpecLoggingAccessLogFilePtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**VirtualGatewaySpecLoggingAccessLogFile)(nil)).Elem() } -func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutput() RouteSpecTcpRouteTimeoutIdlePtrOutput { +func (o VirtualGatewaySpecLoggingAccessLogFilePtrOutput) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutput() VirtualGatewaySpecLoggingAccessLogFilePtrOutput { return o } -func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) ToRouteSpecTcpRouteTimeoutIdlePtrOutputWithContext(ctx context.Context) RouteSpecTcpRouteTimeoutIdlePtrOutput { +func (o VirtualGatewaySpecLoggingAccessLogFilePtrOutput) ToVirtualGatewaySpecLoggingAccessLogFilePtrOutputWithContext(ctx context.Context) VirtualGatewaySpecLoggingAccessLogFilePtrOutput { return o } -func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) Elem() RouteSpecTcpRouteTimeoutIdleOutput { - return o.ApplyT(func(v *RouteSpecTcpRouteTimeoutIdle) RouteSpecTcpRouteTimeoutIdle { return *v }).(RouteSpecTcpRouteTimeoutIdleOutput) +func (o VirtualGatewaySpecLoggingAccessLogFilePtrOutput) Elem() VirtualGatewaySpecLoggingAccessLogFileOutput { + return o.ApplyT(func(v *VirtualGatewaySpecLoggingAccessLogFile) VirtualGatewaySpecLoggingAccessLogFile { return *v }).(VirtualGatewaySpecLoggingAccessLogFileOutput) } -// The unit of time. Valid values: `ms`, `s`. -func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) Unit() pulumi.StringPtrOutput { - return o.ApplyT(func(v *RouteSpecTcpRouteTimeoutIdle) *string { +// The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. +func (o VirtualGatewaySpecLoggingAccessLogFilePtrOutput) Path() pulumi.StringPtrOutput { + return o.ApplyT(func(v *VirtualGatewaySpecLoggingAccessLogFile) *string { if v == nil { return nil } - return &v.Unit + return &v.Path }).(pulumi.StringPtrOutput) } -// The number of time units. Minimum value of `0`. -func (o RouteSpecTcpRouteTimeoutIdlePtrOutput) Value() pulumi.IntPtrOutput { - return o.ApplyT(func(v *RouteSpecTcpRouteTimeoutIdle) *int { - if v == nil { - return nil - } - return &v.Value - }).(pulumi.IntPtrOutput) -} - type VirtualNodeSpec struct { // The defaults for backends. BackendDefaults *VirtualNodeSpecBackendDefaults `pulumi:"backendDefaults"` @@ -13915,6 +18830,38 @@ func (o VirtualServiceSpecProviderVirtualRouterPtrOutput) VirtualRouterName() pu } func init() { + pulumi.RegisterOutputType(GatewayRouteSpecOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRoutePtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteActionOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteActionPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteActionTargetOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteActionTargetPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteActionTargetVirtualServiceOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteActionTargetVirtualServicePtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteMatchOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecGrpcRouteMatchPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RoutePtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteActionOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteActionPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteActionTargetOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteActionTargetPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteActionTargetVirtualServiceOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteActionTargetVirtualServicePtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteMatchOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttp2RouteMatchPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRoutePtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteActionOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteActionPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteActionTargetOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteActionTargetPtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteActionTargetVirtualServiceOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteActionTargetVirtualServicePtrOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteMatchOutput{}) + pulumi.RegisterOutputType(GatewayRouteSpecHttpRouteMatchPtrOutput{}) pulumi.RegisterOutputType(MeshSpecOutput{}) pulumi.RegisterOutputType(MeshSpecPtrOutput{}) pulumi.RegisterOutputType(MeshSpecEgressFilterOutput{}) @@ -14003,6 +18950,42 @@ func init() { pulumi.RegisterOutputType(RouteSpecTcpRouteTimeoutPtrOutput{}) pulumi.RegisterOutputType(RouteSpecTcpRouteTimeoutIdleOutput{}) pulumi.RegisterOutputType(RouteSpecTcpRouteTimeoutIdlePtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFilePtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerHealthCheckOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerHealthCheckPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerPortMappingOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerPortMappingPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsCertificateOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsCertificatePtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsCertificateAcmOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsCertificateAcmPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsCertificateFileOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecListenerTlsCertificateFilePtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecLoggingOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecLoggingPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecLoggingAccessLogOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecLoggingAccessLogPtrOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecLoggingAccessLogFileOutput{}) + pulumi.RegisterOutputType(VirtualGatewaySpecLoggingAccessLogFilePtrOutput{}) pulumi.RegisterOutputType(VirtualNodeSpecOutput{}) pulumi.RegisterOutputType(VirtualNodeSpecPtrOutput{}) pulumi.RegisterOutputType(VirtualNodeSpecBackendOutput{}) diff --git a/sdk/go/aws/appmesh/virtualGateway.go b/sdk/go/aws/appmesh/virtualGateway.go new file mode 100644 index 00000000000..cc1f17a9650 --- /dev/null +++ b/sdk/go/aws/appmesh/virtualGateway.go @@ -0,0 +1,225 @@ +// *** 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! *** + +package appmesh + +import ( + "reflect" + + "github.com/pkg/errors" + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// Provides an AWS App Mesh virtual gateway resource. +// +// ## Example Usage +// ### Basic +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := appmesh.NewVirtualGateway(ctx, "example", &appmesh.VirtualGatewayArgs{ +// MeshName: pulumi.String("example-service-mesh"), +// Spec: &appmesh.VirtualGatewaySpecArgs{ +// Listener: &appmesh.VirtualGatewaySpecListenerArgs{ +// PortMapping: &appmesh.VirtualGatewaySpecListenerPortMappingArgs{ +// Port: pulumi.Int(8080), +// Protocol: pulumi.String("http"), +// }, +// }, +// }, +// Tags: pulumi.StringMap{ +// "Environment": pulumi.String("test"), +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +// ### Access Logs and TLS +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/appmesh" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := appmesh.NewVirtualGateway(ctx, "example", &appmesh.VirtualGatewayArgs{ +// MeshName: pulumi.String("example-service-mesh"), +// Spec: &appmesh.VirtualGatewaySpecArgs{ +// Listener: &appmesh.VirtualGatewaySpecListenerArgs{ +// PortMapping: &appmesh.VirtualGatewaySpecListenerPortMappingArgs{ +// Port: pulumi.Int(8080), +// Protocol: pulumi.String("http"), +// }, +// Tls: &appmesh.VirtualGatewaySpecListenerTlsArgs{ +// Certificate: &appmesh.VirtualGatewaySpecListenerTlsCertificateArgs{ +// Acm: &appmesh.VirtualGatewaySpecListenerTlsCertificateAcmArgs{ +// CertificateArn: pulumi.Any(aws_acm_certificate.Example.Arn), +// }, +// }, +// Mode: pulumi.String("STRICT"), +// }, +// }, +// Logging: &appmesh.VirtualGatewaySpecLoggingArgs{ +// AccessLog: &appmesh.VirtualGatewaySpecLoggingAccessLogArgs{ +// File: &appmesh.VirtualGatewaySpecLoggingAccessLogFileArgs{ +// Path: pulumi.String("/var/log/access.log"), +// }, +// }, +// }, +// }, +// }) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +type VirtualGateway struct { + pulumi.CustomResourceState + + // The ARN of the virtual gateway. + Arn pulumi.StringOutput `pulumi:"arn"` + // The creation date of the virtual gateway. + CreatedDate pulumi.StringOutput `pulumi:"createdDate"` + // The last update date of the virtual gateway. + LastUpdatedDate pulumi.StringOutput `pulumi:"lastUpdatedDate"` + // The name of the service mesh in which to create the virtual gateway. + MeshName pulumi.StringOutput `pulumi:"meshName"` + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner pulumi.StringOutput `pulumi:"meshOwner"` + // The name to use for the virtual gateway. + Name pulumi.StringOutput `pulumi:"name"` + // The resource owner's AWS account ID. + ResourceOwner pulumi.StringOutput `pulumi:"resourceOwner"` + // The virtual gateway specification to apply. + Spec VirtualGatewaySpecOutput `pulumi:"spec"` + // A map of tags to assign to the resource. + Tags pulumi.StringMapOutput `pulumi:"tags"` +} + +// NewVirtualGateway registers a new resource with the given unique name, arguments, and options. +func NewVirtualGateway(ctx *pulumi.Context, + name string, args *VirtualGatewayArgs, opts ...pulumi.ResourceOption) (*VirtualGateway, error) { + if args == nil || args.MeshName == nil { + return nil, errors.New("missing required argument 'MeshName'") + } + if args == nil || args.Spec == nil { + return nil, errors.New("missing required argument 'Spec'") + } + if args == nil { + args = &VirtualGatewayArgs{} + } + var resource VirtualGateway + err := ctx.RegisterResource("aws:appmesh/virtualGateway:VirtualGateway", name, args, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// GetVirtualGateway gets an existing VirtualGateway 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 GetVirtualGateway(ctx *pulumi.Context, + name string, id pulumi.IDInput, state *VirtualGatewayState, opts ...pulumi.ResourceOption) (*VirtualGateway, error) { + var resource VirtualGateway + err := ctx.ReadResource("aws:appmesh/virtualGateway:VirtualGateway", name, id, state, &resource, opts...) + if err != nil { + return nil, err + } + return &resource, nil +} + +// Input properties used for looking up and filtering VirtualGateway resources. +type virtualGatewayState struct { + // The ARN of the virtual gateway. + Arn *string `pulumi:"arn"` + // The creation date of the virtual gateway. + CreatedDate *string `pulumi:"createdDate"` + // The last update date of the virtual gateway. + LastUpdatedDate *string `pulumi:"lastUpdatedDate"` + // The name of the service mesh in which to create the virtual gateway. + MeshName *string `pulumi:"meshName"` + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner *string `pulumi:"meshOwner"` + // The name to use for the virtual gateway. + Name *string `pulumi:"name"` + // The resource owner's AWS account ID. + ResourceOwner *string `pulumi:"resourceOwner"` + // The virtual gateway specification to apply. + Spec *VirtualGatewaySpec `pulumi:"spec"` + // A map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` +} + +type VirtualGatewayState struct { + // The ARN of the virtual gateway. + Arn pulumi.StringPtrInput + // The creation date of the virtual gateway. + CreatedDate pulumi.StringPtrInput + // The last update date of the virtual gateway. + LastUpdatedDate pulumi.StringPtrInput + // The name of the service mesh in which to create the virtual gateway. + MeshName pulumi.StringPtrInput + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner pulumi.StringPtrInput + // The name to use for the virtual gateway. + Name pulumi.StringPtrInput + // The resource owner's AWS account ID. + ResourceOwner pulumi.StringPtrInput + // The virtual gateway specification to apply. + Spec VirtualGatewaySpecPtrInput + // A map of tags to assign to the resource. + Tags pulumi.StringMapInput +} + +func (VirtualGatewayState) ElementType() reflect.Type { + return reflect.TypeOf((*virtualGatewayState)(nil)).Elem() +} + +type virtualGatewayArgs struct { + // The name of the service mesh in which to create the virtual gateway. + MeshName string `pulumi:"meshName"` + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner *string `pulumi:"meshOwner"` + // The name to use for the virtual gateway. + Name *string `pulumi:"name"` + // The virtual gateway specification to apply. + Spec VirtualGatewaySpec `pulumi:"spec"` + // A map of tags to assign to the resource. + Tags map[string]string `pulumi:"tags"` +} + +// The set of arguments for constructing a VirtualGateway resource. +type VirtualGatewayArgs struct { + // The name of the service mesh in which to create the virtual gateway. + MeshName pulumi.StringInput + // The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + MeshOwner pulumi.StringPtrInput + // The name to use for the virtual gateway. + Name pulumi.StringPtrInput + // The virtual gateway specification to apply. + Spec VirtualGatewaySpecInput + // A map of tags to assign to the resource. + Tags pulumi.StringMapInput +} + +func (VirtualGatewayArgs) ElementType() reflect.Type { + return reflect.TypeOf((*virtualGatewayArgs)(nil)).Elem() +} diff --git a/sdk/go/aws/backup/plan.go b/sdk/go/aws/backup/plan.go index 804fef18530..75063f423ca 100644 --- a/sdk/go/aws/backup/plan.go +++ b/sdk/go/aws/backup/plan.go @@ -32,6 +32,14 @@ import ( // Schedule: pulumi.String("cron(0 12 * * ? *)"), // }, // }, +// AdvancedBackupSettings: backup.PlanAdvancedBackupSettingArray{ +// &backup.PlanAdvancedBackupSettingArgs{ +// BackupOptions: pulumi.StringMap{ +// "WindowsVSS": pulumi.String("enabled"), +// }, +// ResourceType: pulumi.String("EC2"), +// }, +// }, // }) // if err != nil { // return err @@ -43,6 +51,8 @@ import ( type Plan struct { pulumi.CustomResourceState + // An object that specifies backup options for each resource type. + AdvancedBackupSettings PlanAdvancedBackupSettingArrayOutput `pulumi:"advancedBackupSettings"` // The ARN of the backup plan. Arn pulumi.StringOutput `pulumi:"arn"` // The display name of a backup plan. @@ -86,6 +96,8 @@ func GetPlan(ctx *pulumi.Context, // Input properties used for looking up and filtering Plan resources. type planState struct { + // An object that specifies backup options for each resource type. + AdvancedBackupSettings []PlanAdvancedBackupSetting `pulumi:"advancedBackupSettings"` // The ARN of the backup plan. Arn *string `pulumi:"arn"` // The display name of a backup plan. @@ -99,6 +111,8 @@ type planState struct { } type PlanState struct { + // An object that specifies backup options for each resource type. + AdvancedBackupSettings PlanAdvancedBackupSettingArrayInput // The ARN of the backup plan. Arn pulumi.StringPtrInput // The display name of a backup plan. @@ -116,6 +130,8 @@ func (PlanState) ElementType() reflect.Type { } type planArgs struct { + // An object that specifies backup options for each resource type. + AdvancedBackupSettings []PlanAdvancedBackupSetting `pulumi:"advancedBackupSettings"` // The display name of a backup plan. Name *string `pulumi:"name"` // A rule object that specifies a scheduled task that is used to back up a selection of resources. @@ -126,6 +142,8 @@ type planArgs struct { // The set of arguments for constructing a Plan resource. type PlanArgs struct { + // An object that specifies backup options for each resource type. + AdvancedBackupSettings PlanAdvancedBackupSettingArrayInput // The display name of a backup plan. Name pulumi.StringPtrInput // A rule object that specifies a scheduled task that is used to back up a selection of resources. diff --git a/sdk/go/aws/backup/pulumiTypes.go b/sdk/go/aws/backup/pulumiTypes.go index 2c88a1ac74f..68f6df9869f 100644 --- a/sdk/go/aws/backup/pulumiTypes.go +++ b/sdk/go/aws/backup/pulumiTypes.go @@ -10,6 +10,112 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) +type PlanAdvancedBackupSetting struct { + // Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + BackupOptions map[string]string `pulumi:"backupOptions"` + // The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + ResourceType *string `pulumi:"resourceType"` +} + +// PlanAdvancedBackupSettingInput is an input type that accepts PlanAdvancedBackupSettingArgs and PlanAdvancedBackupSettingOutput values. +// You can construct a concrete instance of `PlanAdvancedBackupSettingInput` via: +// +// PlanAdvancedBackupSettingArgs{...} +type PlanAdvancedBackupSettingInput interface { + pulumi.Input + + ToPlanAdvancedBackupSettingOutput() PlanAdvancedBackupSettingOutput + ToPlanAdvancedBackupSettingOutputWithContext(context.Context) PlanAdvancedBackupSettingOutput +} + +type PlanAdvancedBackupSettingArgs struct { + // Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + BackupOptions pulumi.StringMapInput `pulumi:"backupOptions"` + // The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + ResourceType pulumi.StringPtrInput `pulumi:"resourceType"` +} + +func (PlanAdvancedBackupSettingArgs) ElementType() reflect.Type { + return reflect.TypeOf((*PlanAdvancedBackupSetting)(nil)).Elem() +} + +func (i PlanAdvancedBackupSettingArgs) ToPlanAdvancedBackupSettingOutput() PlanAdvancedBackupSettingOutput { + return i.ToPlanAdvancedBackupSettingOutputWithContext(context.Background()) +} + +func (i PlanAdvancedBackupSettingArgs) ToPlanAdvancedBackupSettingOutputWithContext(ctx context.Context) PlanAdvancedBackupSettingOutput { + return pulumi.ToOutputWithContext(ctx, i).(PlanAdvancedBackupSettingOutput) +} + +// PlanAdvancedBackupSettingArrayInput is an input type that accepts PlanAdvancedBackupSettingArray and PlanAdvancedBackupSettingArrayOutput values. +// You can construct a concrete instance of `PlanAdvancedBackupSettingArrayInput` via: +// +// PlanAdvancedBackupSettingArray{ PlanAdvancedBackupSettingArgs{...} } +type PlanAdvancedBackupSettingArrayInput interface { + pulumi.Input + + ToPlanAdvancedBackupSettingArrayOutput() PlanAdvancedBackupSettingArrayOutput + ToPlanAdvancedBackupSettingArrayOutputWithContext(context.Context) PlanAdvancedBackupSettingArrayOutput +} + +type PlanAdvancedBackupSettingArray []PlanAdvancedBackupSettingInput + +func (PlanAdvancedBackupSettingArray) ElementType() reflect.Type { + return reflect.TypeOf((*[]PlanAdvancedBackupSetting)(nil)).Elem() +} + +func (i PlanAdvancedBackupSettingArray) ToPlanAdvancedBackupSettingArrayOutput() PlanAdvancedBackupSettingArrayOutput { + return i.ToPlanAdvancedBackupSettingArrayOutputWithContext(context.Background()) +} + +func (i PlanAdvancedBackupSettingArray) ToPlanAdvancedBackupSettingArrayOutputWithContext(ctx context.Context) PlanAdvancedBackupSettingArrayOutput { + return pulumi.ToOutputWithContext(ctx, i).(PlanAdvancedBackupSettingArrayOutput) +} + +type PlanAdvancedBackupSettingOutput struct{ *pulumi.OutputState } + +func (PlanAdvancedBackupSettingOutput) ElementType() reflect.Type { + return reflect.TypeOf((*PlanAdvancedBackupSetting)(nil)).Elem() +} + +func (o PlanAdvancedBackupSettingOutput) ToPlanAdvancedBackupSettingOutput() PlanAdvancedBackupSettingOutput { + return o +} + +func (o PlanAdvancedBackupSettingOutput) ToPlanAdvancedBackupSettingOutputWithContext(ctx context.Context) PlanAdvancedBackupSettingOutput { + return o +} + +// Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. +func (o PlanAdvancedBackupSettingOutput) BackupOptions() pulumi.StringMapOutput { + return o.ApplyT(func(v PlanAdvancedBackupSetting) map[string]string { return v.BackupOptions }).(pulumi.StringMapOutput) +} + +// The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. +func (o PlanAdvancedBackupSettingOutput) ResourceType() pulumi.StringPtrOutput { + return o.ApplyT(func(v PlanAdvancedBackupSetting) *string { return v.ResourceType }).(pulumi.StringPtrOutput) +} + +type PlanAdvancedBackupSettingArrayOutput struct{ *pulumi.OutputState } + +func (PlanAdvancedBackupSettingArrayOutput) ElementType() reflect.Type { + return reflect.TypeOf((*[]PlanAdvancedBackupSetting)(nil)).Elem() +} + +func (o PlanAdvancedBackupSettingArrayOutput) ToPlanAdvancedBackupSettingArrayOutput() PlanAdvancedBackupSettingArrayOutput { + return o +} + +func (o PlanAdvancedBackupSettingArrayOutput) ToPlanAdvancedBackupSettingArrayOutputWithContext(ctx context.Context) PlanAdvancedBackupSettingArrayOutput { + return o +} + +func (o PlanAdvancedBackupSettingArrayOutput) Index(i pulumi.IntInput) PlanAdvancedBackupSettingOutput { + return pulumi.All(o, i).ApplyT(func(vs []interface{}) PlanAdvancedBackupSetting { + return vs[0].([]PlanAdvancedBackupSetting)[vs[1].(int)] + }).(PlanAdvancedBackupSettingOutput) +} + type PlanRule struct { // The amount of time AWS Backup attempts a backup before canceling the job and returning an error. CompletionWindow *int `pulumi:"completionWindow"` @@ -692,6 +798,8 @@ func (o SelectionSelectionTagArrayOutput) Index(i pulumi.IntInput) SelectionSele } func init() { + pulumi.RegisterOutputType(PlanAdvancedBackupSettingOutput{}) + pulumi.RegisterOutputType(PlanAdvancedBackupSettingArrayOutput{}) pulumi.RegisterOutputType(PlanRuleOutput{}) pulumi.RegisterOutputType(PlanRuleArrayOutput{}) pulumi.RegisterOutputType(PlanRuleCopyActionOutput{}) diff --git a/sdk/go/aws/backup/vaultNotifications.go b/sdk/go/aws/backup/vaultNotifications.go index ac485fc8baf..4c53b316227 100644 --- a/sdk/go/aws/backup/vaultNotifications.go +++ b/sdk/go/aws/backup/vaultNotifications.go @@ -41,7 +41,7 @@ import ( // } // _, err = backup.NewVaultNotifications(ctx, "testVaultNotifications", &backup.VaultNotificationsArgs{ // BackupVaultName: pulumi.String("example_backup_vault"), -// SnsTopicArn: pulumi.Any(sns_topic_arn.Test.Arn), +// SnsTopicArn: testTopic.Arn, // BackupVaultEvents: pulumi.StringArray{ // pulumi.String("BACKUP_JOB_STARTED"), // pulumi.String("RESTORE_JOB_COMPLETED"), diff --git a/sdk/go/aws/codeartifact/getRepositoryEndpoint.go b/sdk/go/aws/codeartifact/getRepositoryEndpoint.go new file mode 100644 index 00000000000..4ffb099c198 --- /dev/null +++ b/sdk/go/aws/codeartifact/getRepositoryEndpoint.go @@ -0,0 +1,67 @@ +// *** 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! *** + +package codeartifact + +import ( + "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +) + +// The CodeArtifact Repository Endpoint data source returns the endpoint of a repository for a specific package format. +// +// ## Example Usage +// +// ```go +// package main +// +// import ( +// "github.com/pulumi/pulumi-aws/sdk/v3/go/aws/codeartifact" +// "github.com/pulumi/pulumi/sdk/v2/go/pulumi" +// ) +// +// func main() { +// pulumi.Run(func(ctx *pulumi.Context) error { +// _, err := codeartifact.GetRepositoryEndpoint(ctx, &codeartifact.GetRepositoryEndpointArgs{ +// Domain: aws_codeartifact_domain.Test.Domain, +// Repository: aws_codeartifact_repository.Test.Repository, +// Format: "npm", +// }, nil) +// if err != nil { +// return err +// } +// return nil +// }) +// } +// ``` +func GetRepositoryEndpoint(ctx *pulumi.Context, args *GetRepositoryEndpointArgs, opts ...pulumi.InvokeOption) (*GetRepositoryEndpointResult, error) { + var rv GetRepositoryEndpointResult + err := ctx.Invoke("aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint", args, &rv, opts...) + if err != nil { + return nil, err + } + return &rv, nil +} + +// A collection of arguments for invoking getRepositoryEndpoint. +type GetRepositoryEndpointArgs struct { + // The name of the domain that contains the repository. + Domain string `pulumi:"domain"` + // The account number of the AWS account that owns the domain. + DomainOwner *string `pulumi:"domainOwner"` + // Which endpoint of a repository to return. A repository has one endpoint for each package format: `npm`, `pypi`, and `maven`. + Format string `pulumi:"format"` + // The name of the repository. + Repository string `pulumi:"repository"` +} + +// A collection of values returned by getRepositoryEndpoint. +type GetRepositoryEndpointResult struct { + Domain string `pulumi:"domain"` + DomainOwner string `pulumi:"domainOwner"` + Format string `pulumi:"format"` + // The provider-assigned unique ID for this managed resource. + Id string `pulumi:"id"` + Repository string `pulumi:"repository"` + // The URL of the returned endpoint. + RepositoryEndpoint string `pulumi:"repositoryEndpoint"` +} diff --git a/sdk/go/aws/config/pulumiTypes.go b/sdk/go/aws/config/pulumiTypes.go index 33ff545c658..025b2588b82 100644 --- a/sdk/go/aws/config/pulumiTypes.go +++ b/sdk/go/aws/config/pulumiTypes.go @@ -217,6 +217,7 @@ type Endpoints struct { Route53resolver *string `pulumi:"route53resolver"` S3 *string `pulumi:"s3"` S3control *string `pulumi:"s3control"` + S3outposts *string `pulumi:"s3outposts"` Sagemaker *string `pulumi:"sagemaker"` Sdb *string `pulumi:"sdb"` Secretsmanager *string `pulumi:"secretsmanager"` @@ -374,6 +375,7 @@ type EndpointsArgs struct { Route53resolver pulumi.StringPtrInput `pulumi:"route53resolver"` S3 pulumi.StringPtrInput `pulumi:"s3"` S3control pulumi.StringPtrInput `pulumi:"s3control"` + S3outposts pulumi.StringPtrInput `pulumi:"s3outposts"` Sagemaker pulumi.StringPtrInput `pulumi:"sagemaker"` Sdb pulumi.StringPtrInput `pulumi:"sdb"` Secretsmanager pulumi.StringPtrInput `pulumi:"secretsmanager"` @@ -915,6 +917,10 @@ func (o EndpointsOutput) S3control() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.S3control }).(pulumi.StringPtrOutput) } +func (o EndpointsOutput) S3outposts() pulumi.StringPtrOutput { + return o.ApplyT(func(v Endpoints) *string { return v.S3outposts }).(pulumi.StringPtrOutput) +} + func (o EndpointsOutput) Sagemaker() pulumi.StringPtrOutput { return o.ApplyT(func(v Endpoints) *string { return v.Sagemaker }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/ec2/securityGroupRule.go b/sdk/go/aws/ec2/securityGroupRule.go index 27d7e936752..1692de57ba1 100644 --- a/sdk/go/aws/ec2/securityGroupRule.go +++ b/sdk/go/aws/ec2/securityGroupRule.go @@ -26,7 +26,7 @@ import ( // // ## Usage with prefix list IDs // -// Prefix list IDs are manged by AWS internally. Prefix list IDs +// Prefix list IDs are managed by AWS internally. Prefix list IDs // are associated with a prefix list name, or service name, that is linked to a specific region. // Prefix list IDs are exported on VPC Endpoints, so you can use this format: // diff --git a/sdk/go/aws/ec2transitgateway/route.go b/sdk/go/aws/ec2transitgateway/route.go index 9ea6af93fa8..8519dfdea56 100644 --- a/sdk/go/aws/ec2transitgateway/route.go +++ b/sdk/go/aws/ec2transitgateway/route.go @@ -66,7 +66,7 @@ type Route struct { // Indicates whether to drop traffic that matches this route (default to `false`). Blackhole pulumi.BoolPtrOutput `pulumi:"blackhole"` - // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + // IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. DestinationCidrBlock pulumi.StringOutput `pulumi:"destinationCidrBlock"` // Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). TransitGatewayAttachmentId pulumi.StringPtrOutput `pulumi:"transitGatewayAttachmentId"` @@ -110,7 +110,7 @@ func GetRoute(ctx *pulumi.Context, type routeState struct { // Indicates whether to drop traffic that matches this route (default to `false`). Blackhole *bool `pulumi:"blackhole"` - // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + // IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. DestinationCidrBlock *string `pulumi:"destinationCidrBlock"` // Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). TransitGatewayAttachmentId *string `pulumi:"transitGatewayAttachmentId"` @@ -121,7 +121,7 @@ type routeState struct { type RouteState struct { // Indicates whether to drop traffic that matches this route (default to `false`). Blackhole pulumi.BoolPtrInput - // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + // IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. DestinationCidrBlock pulumi.StringPtrInput // Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). TransitGatewayAttachmentId pulumi.StringPtrInput @@ -136,7 +136,7 @@ func (RouteState) ElementType() reflect.Type { type routeArgs struct { // Indicates whether to drop traffic that matches this route (default to `false`). Blackhole *bool `pulumi:"blackhole"` - // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + // IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. DestinationCidrBlock string `pulumi:"destinationCidrBlock"` // Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). TransitGatewayAttachmentId *string `pulumi:"transitGatewayAttachmentId"` @@ -148,7 +148,7 @@ type routeArgs struct { type RouteArgs struct { // Indicates whether to drop traffic that matches this route (default to `false`). Blackhole pulumi.BoolPtrInput - // IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + // IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. DestinationCidrBlock pulumi.StringInput // Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). TransitGatewayAttachmentId pulumi.StringPtrInput diff --git a/sdk/go/aws/pulumiTypes.go b/sdk/go/aws/pulumiTypes.go index 63f26f23b57..4cd2b338f28 100644 --- a/sdk/go/aws/pulumiTypes.go +++ b/sdk/go/aws/pulumiTypes.go @@ -357,6 +357,7 @@ type ProviderEndpoint struct { Route53resolver *string `pulumi:"route53resolver"` S3 *string `pulumi:"s3"` S3control *string `pulumi:"s3control"` + S3outposts *string `pulumi:"s3outposts"` Sagemaker *string `pulumi:"sagemaker"` Sdb *string `pulumi:"sdb"` Secretsmanager *string `pulumi:"secretsmanager"` @@ -514,6 +515,7 @@ type ProviderEndpointArgs struct { Route53resolver pulumi.StringPtrInput `pulumi:"route53resolver"` S3 pulumi.StringPtrInput `pulumi:"s3"` S3control pulumi.StringPtrInput `pulumi:"s3control"` + S3outposts pulumi.StringPtrInput `pulumi:"s3outposts"` Sagemaker pulumi.StringPtrInput `pulumi:"sagemaker"` Sdb pulumi.StringPtrInput `pulumi:"sdb"` Secretsmanager pulumi.StringPtrInput `pulumi:"secretsmanager"` @@ -1055,6 +1057,10 @@ func (o ProviderEndpointOutput) S3control() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.S3control }).(pulumi.StringPtrOutput) } +func (o ProviderEndpointOutput) S3outposts() pulumi.StringPtrOutput { + return o.ApplyT(func(v ProviderEndpoint) *string { return v.S3outposts }).(pulumi.StringPtrOutput) +} + func (o ProviderEndpointOutput) Sagemaker() pulumi.StringPtrOutput { return o.ApplyT(func(v ProviderEndpoint) *string { return v.Sagemaker }).(pulumi.StringPtrOutput) } diff --git a/sdk/go/aws/rds/roleAssociation.go b/sdk/go/aws/rds/roleAssociation.go index dda3b9000ca..8850a71727d 100644 --- a/sdk/go/aws/rds/roleAssociation.go +++ b/sdk/go/aws/rds/roleAssociation.go @@ -32,7 +32,7 @@ import ( // _, err := rds.NewRoleAssociation(ctx, "example", &rds.RoleAssociationArgs{ // DbInstanceIdentifier: pulumi.Any(aws_db_instance.Example.Id), // FeatureName: pulumi.String("S3_INTEGRATION"), -// RoleArn: pulumi.Any(aws_iam_role.Example.Id), +// RoleArn: pulumi.Any(aws_iam_role.Example.Arn), // }) // if err != nil { // return err diff --git a/sdk/go/aws/sagemaker/notebookInstance.go b/sdk/go/aws/sagemaker/notebookInstance.go index ebac8dd805d..671f2ce82c2 100644 --- a/sdk/go/aws/sagemaker/notebookInstance.go +++ b/sdk/go/aws/sagemaker/notebookInstance.go @@ -45,6 +45,8 @@ type NotebookInstance struct { // The Amazon Resource Name (ARN) assigned by AWS to this notebook instance. Arn pulumi.StringOutput `pulumi:"arn"` + // The Git repository associated with the notebook instance as its default code repository + DefaultCodeRepository pulumi.StringPtrOutput `pulumi:"defaultCodeRepository"` // Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. DirectInternetAccess pulumi.StringPtrOutput `pulumi:"directInternetAccess"` // The name of ML compute instance type. @@ -65,6 +67,8 @@ type NotebookInstance struct { SubnetId pulumi.StringPtrOutput `pulumi:"subnetId"` // A map of tags to assign to the resource. Tags pulumi.StringMapOutput `pulumi:"tags"` + // The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + VolumeSize pulumi.IntPtrOutput `pulumi:"volumeSize"` } // NewNotebookInstance registers a new resource with the given unique name, arguments, and options. @@ -103,6 +107,8 @@ func GetNotebookInstance(ctx *pulumi.Context, type notebookInstanceState struct { // The Amazon Resource Name (ARN) assigned by AWS to this notebook instance. Arn *string `pulumi:"arn"` + // The Git repository associated with the notebook instance as its default code repository + DefaultCodeRepository *string `pulumi:"defaultCodeRepository"` // Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. DirectInternetAccess *string `pulumi:"directInternetAccess"` // The name of ML compute instance type. @@ -123,11 +129,15 @@ type notebookInstanceState struct { SubnetId *string `pulumi:"subnetId"` // A map of tags to assign to the resource. Tags map[string]string `pulumi:"tags"` + // The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + VolumeSize *int `pulumi:"volumeSize"` } type NotebookInstanceState struct { // The Amazon Resource Name (ARN) assigned by AWS to this notebook instance. Arn pulumi.StringPtrInput + // The Git repository associated with the notebook instance as its default code repository + DefaultCodeRepository pulumi.StringPtrInput // Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. DirectInternetAccess pulumi.StringPtrInput // The name of ML compute instance type. @@ -148,6 +158,8 @@ type NotebookInstanceState struct { SubnetId pulumi.StringPtrInput // A map of tags to assign to the resource. Tags pulumi.StringMapInput + // The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + VolumeSize pulumi.IntPtrInput } func (NotebookInstanceState) ElementType() reflect.Type { @@ -155,6 +167,8 @@ func (NotebookInstanceState) ElementType() reflect.Type { } type notebookInstanceArgs struct { + // The Git repository associated with the notebook instance as its default code repository + DefaultCodeRepository *string `pulumi:"defaultCodeRepository"` // Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. DirectInternetAccess *string `pulumi:"directInternetAccess"` // The name of ML compute instance type. @@ -175,10 +189,14 @@ type notebookInstanceArgs struct { SubnetId *string `pulumi:"subnetId"` // A map of tags to assign to the resource. Tags map[string]string `pulumi:"tags"` + // The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + VolumeSize *int `pulumi:"volumeSize"` } // The set of arguments for constructing a NotebookInstance resource. type NotebookInstanceArgs struct { + // The Git repository associated with the notebook instance as its default code repository + DefaultCodeRepository pulumi.StringPtrInput // Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. DirectInternetAccess pulumi.StringPtrInput // The name of ML compute instance type. @@ -199,6 +217,8 @@ type NotebookInstanceArgs struct { SubnetId pulumi.StringPtrInput // A map of tags to assign to the resource. Tags pulumi.StringMapInput + // The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + VolumeSize pulumi.IntPtrInput } func (NotebookInstanceArgs) ElementType() reflect.Type { diff --git a/sdk/go/aws/wafv2/pulumiTypes.go b/sdk/go/aws/wafv2/pulumiTypes.go index 9043142601f..d03c6129c6c 100644 --- a/sdk/go/aws/wafv2/pulumiTypes.go +++ b/sdk/go/aws/wafv2/pulumiTypes.go @@ -210631,7 +210631,7 @@ func (o WebAclRuleStatementManagedRuleGroupStatementPtrOutput) VendorName() pulu } type WebAclRuleStatementManagedRuleGroupStatementExcludedRule struct { - // The name of the rule to exclude. + // The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. Name string `pulumi:"name"` } @@ -210647,7 +210647,7 @@ type WebAclRuleStatementManagedRuleGroupStatementExcludedRuleInput interface { } type WebAclRuleStatementManagedRuleGroupStatementExcludedRuleArgs struct { - // The name of the rule to exclude. + // The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. Name pulumi.StringInput `pulumi:"name"` } @@ -210702,7 +210702,7 @@ func (o WebAclRuleStatementManagedRuleGroupStatementExcludedRuleOutput) ToWebAcl return o } -// The name of the rule to exclude. +// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. func (o WebAclRuleStatementManagedRuleGroupStatementExcludedRuleOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v WebAclRuleStatementManagedRuleGroupStatementExcludedRule) string { return v.Name }).(pulumi.StringOutput) } @@ -520484,7 +520484,7 @@ func (o WebAclRuleStatementRuleGroupReferenceStatementPtrOutput) ExcludedRules() } type WebAclRuleStatementRuleGroupReferenceStatementExcludedRule struct { - // The name of the rule to exclude. + // The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. Name string `pulumi:"name"` } @@ -520500,7 +520500,7 @@ type WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleInput interface { } type WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs struct { - // The name of the rule to exclude. + // The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. Name pulumi.StringInput `pulumi:"name"` } @@ -520555,7 +520555,7 @@ func (o WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleOutput) ToWebA return o } -// The name of the rule to exclude. +// The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. func (o WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleOutput) Name() pulumi.StringOutput { return o.ApplyT(func(v WebAclRuleStatementRuleGroupReferenceStatementExcludedRule) string { return v.Name }).(pulumi.StringOutput) } diff --git a/sdk/go/aws/workspaces/directory.go b/sdk/go/aws/workspaces/directory.go index 9c347002331..43dd5754cdb 100644 --- a/sdk/go/aws/workspaces/directory.go +++ b/sdk/go/aws/workspaces/directory.go @@ -10,7 +10,7 @@ import ( "github.com/pulumi/pulumi/sdk/v2/go/pulumi" ) -// Provides a directory registration in AWS WorkSpaces Service +// Provides a WorkSpaces directory in AWS WorkSpaces Service. // // ## Example Usage // @@ -26,48 +26,81 @@ import ( // // func main() { // pulumi.Run(func(ctx *pulumi.Context) error { -// mainVpc, err := ec2.NewVpc(ctx, "mainVpc", &ec2.VpcArgs{ +// exampleVpc, err := ec2.NewVpc(ctx, "exampleVpc", &ec2.VpcArgs{ // CidrBlock: pulumi.String("10.0.0.0/16"), // }) // if err != nil { // return err // } -// _, err = ec2.NewSubnet(ctx, "private_a", &ec2.SubnetArgs{ -// VpcId: mainVpc.ID(), +// exampleA, err := ec2.NewSubnet(ctx, "exampleA", &ec2.SubnetArgs{ +// VpcId: exampleVpc.ID(), // AvailabilityZone: pulumi.String("us-east-1a"), // CidrBlock: pulumi.String("10.0.0.0/24"), // }) // if err != nil { // return err // } -// _, err = ec2.NewSubnet(ctx, "private_b", &ec2.SubnetArgs{ -// VpcId: mainVpc.ID(), +// exampleB, err := ec2.NewSubnet(ctx, "exampleB", &ec2.SubnetArgs{ +// VpcId: exampleVpc.ID(), // AvailabilityZone: pulumi.String("us-east-1b"), // CidrBlock: pulumi.String("10.0.1.0/24"), // }) // if err != nil { // return err // } -// mainDirectory, err := directoryservice.NewDirectory(ctx, "mainDirectory", &directoryservice.DirectoryArgs{ +// exampleC, err := ec2.NewSubnet(ctx, "exampleC", &ec2.SubnetArgs{ +// VpcId: exampleVpc.ID(), +// AvailabilityZone: pulumi.String("us-east-1c"), +// CidrBlock: pulumi.String("10.0.2.0/24"), +// }) +// if err != nil { +// return err +// } +// exampleD, err := ec2.NewSubnet(ctx, "exampleD", &ec2.SubnetArgs{ +// VpcId: exampleVpc.ID(), +// AvailabilityZone: pulumi.String("us-east-1d"), +// CidrBlock: pulumi.String("10.0.3.0/24"), +// }) +// if err != nil { +// return err +// } +// exampleDirectory, err := directoryservice.NewDirectory(ctx, "exampleDirectory", &directoryservice.DirectoryArgs{ // Name: pulumi.String("corp.example.com"), // Password: pulumi.String("#S1ncerely"), // Size: pulumi.String("Small"), // VpcSettings: &directoryservice.DirectoryVpcSettingsArgs{ -// VpcId: mainVpc.ID(), +// VpcId: exampleVpc.ID(), // SubnetIds: pulumi.StringArray{ -// private_a.ID(), -// private_b.ID(), +// exampleA.ID(), +// exampleB.ID(), // }, // }, // }) // if err != nil { // return err // } -// _, err = workspaces.NewDirectory(ctx, "mainWorkspaces_directoryDirectory", &workspaces.DirectoryArgs{ -// DirectoryId: mainDirectory.ID(), +// _, err = workspaces.NewDirectory(ctx, "exampleWorkspaces_directoryDirectory", &workspaces.DirectoryArgs{ +// DirectoryId: exampleDirectory.ID(), +// SubnetIds: pulumi.StringArray{ +// exampleC.ID(), +// exampleD.ID(), +// }, +// Tags: pulumi.StringMap{ +// "Example": pulumi.String("true"), +// }, // SelfServicePermissions: &workspaces.DirectorySelfServicePermissionsArgs{ +// ChangeComputeType: pulumi.Bool(true), // IncreaseVolumeSize: pulumi.Bool(true), // RebuildWorkspace: pulumi.Bool(true), +// RestartWorkspace: pulumi.Bool(true), +// SwitchRunningMode: pulumi.Bool(true), +// }, +// WorkspaceCreationProperties: &workspaces.DirectoryWorkspaceCreationPropertiesArgs{ +// CustomSecurityGroupId: pulumi.Any(aws_security_group.Example.Id), +// DefaultOu: pulumi.String("OU=AWS,DC=Workgroup,DC=Example,DC=com"), +// EnableInternetAccess: pulumi.Bool(true), +// EnableMaintenanceMode: pulumi.Bool(true), +// UserEnabledAsLocalAdministrator: pulumi.Bool(true), // }, // }) // if err != nil { @@ -98,12 +131,14 @@ type Directory struct { IpGroupIds pulumi.StringArrayOutput `pulumi:"ipGroupIds"` // The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory. RegistrationCode pulumi.StringOutput `pulumi:"registrationCode"` - // The permissions to enable or disable self-service capabilities. + // Permissions to enable or disable self-service capabilities. Defined below. SelfServicePermissions DirectorySelfServicePermissionsOutput `pulumi:"selfServicePermissions"` - // The identifiers of the subnets where the directory resides. + // The subnets identifiers where the workspaces are created. SubnetIds pulumi.StringArrayOutput `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags pulumi.StringMapOutput `pulumi:"tags"` + // Default properties that are used for creating WorkSpaces. Defined below. + WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesOutput `pulumi:"workspaceCreationProperties"` // The identifier of the security group that is assigned to new WorkSpaces. WorkspaceSecurityGroupId pulumi.StringOutput `pulumi:"workspaceSecurityGroupId"` } @@ -157,12 +192,14 @@ type directoryState struct { IpGroupIds []string `pulumi:"ipGroupIds"` // The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory. RegistrationCode *string `pulumi:"registrationCode"` - // The permissions to enable or disable self-service capabilities. + // Permissions to enable or disable self-service capabilities. Defined below. SelfServicePermissions *DirectorySelfServicePermissions `pulumi:"selfServicePermissions"` - // The identifiers of the subnets where the directory resides. + // The subnets identifiers where the workspaces are created. SubnetIds []string `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` + // Default properties that are used for creating WorkSpaces. Defined below. + WorkspaceCreationProperties *DirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` // The identifier of the security group that is assigned to new WorkSpaces. WorkspaceSecurityGroupId *string `pulumi:"workspaceSecurityGroupId"` } @@ -186,12 +223,14 @@ type DirectoryState struct { IpGroupIds pulumi.StringArrayInput // The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory. RegistrationCode pulumi.StringPtrInput - // The permissions to enable or disable self-service capabilities. + // Permissions to enable or disable self-service capabilities. Defined below. SelfServicePermissions DirectorySelfServicePermissionsPtrInput - // The identifiers of the subnets where the directory resides. + // The subnets identifiers where the workspaces are created. SubnetIds pulumi.StringArrayInput // A map of tags assigned to the WorkSpaces directory. Tags pulumi.StringMapInput + // Default properties that are used for creating WorkSpaces. Defined below. + WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesPtrInput // The identifier of the security group that is assigned to new WorkSpaces. WorkspaceSecurityGroupId pulumi.StringPtrInput } @@ -203,24 +242,28 @@ func (DirectoryState) ElementType() reflect.Type { type directoryArgs struct { // The directory identifier for registration in WorkSpaces service. DirectoryId string `pulumi:"directoryId"` - // The permissions to enable or disable self-service capabilities. + // Permissions to enable or disable self-service capabilities. Defined below. SelfServicePermissions *DirectorySelfServicePermissions `pulumi:"selfServicePermissions"` - // The identifiers of the subnets where the directory resides. + // The subnets identifiers where the workspaces are created. SubnetIds []string `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` + // Default properties that are used for creating WorkSpaces. Defined below. + WorkspaceCreationProperties *DirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` } // The set of arguments for constructing a Directory resource. type DirectoryArgs struct { // The directory identifier for registration in WorkSpaces service. DirectoryId pulumi.StringInput - // The permissions to enable or disable self-service capabilities. + // Permissions to enable or disable self-service capabilities. Defined below. SelfServicePermissions DirectorySelfServicePermissionsPtrInput - // The identifiers of the subnets where the directory resides. + // The subnets identifiers where the workspaces are created. SubnetIds pulumi.StringArrayInput // A map of tags assigned to the WorkSpaces directory. Tags pulumi.StringMapInput + // Default properties that are used for creating WorkSpaces. Defined below. + WorkspaceCreationProperties DirectoryWorkspaceCreationPropertiesPtrInput } func (DirectoryArgs) ElementType() reflect.Type { diff --git a/sdk/go/aws/workspaces/getDirectory.go b/sdk/go/aws/workspaces/getDirectory.go index bbeb9664366..81811feee58 100644 --- a/sdk/go/aws/workspaces/getDirectory.go +++ b/sdk/go/aws/workspaces/getDirectory.go @@ -46,6 +46,8 @@ type LookupDirectoryArgs struct { DirectoryId string `pulumi:"directoryId"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` + // The default properties that are used for creating WorkSpaces. Defined below. + WorkspaceCreationProperties *GetDirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` } // A collection of values returned by getDirectory. @@ -75,6 +77,8 @@ type LookupDirectoryResult struct { SubnetIds []string `pulumi:"subnetIds"` // A map of tags assigned to the WorkSpaces directory. Tags map[string]string `pulumi:"tags"` - // The identifier of the security group that is assigned to new WorkSpaces. + // The default properties that are used for creating WorkSpaces. Defined below. + WorkspaceCreationProperties GetDirectoryWorkspaceCreationProperties `pulumi:"workspaceCreationProperties"` + // The identifier of the security group that is assigned to new WorkSpaces. Defined below. WorkspaceSecurityGroupId string `pulumi:"workspaceSecurityGroupId"` } diff --git a/sdk/go/aws/workspaces/pulumiTypes.go b/sdk/go/aws/workspaces/pulumiTypes.go index a89213a6dc0..897517b88dd 100644 --- a/sdk/go/aws/workspaces/pulumiTypes.go +++ b/sdk/go/aws/workspaces/pulumiTypes.go @@ -217,6 +217,213 @@ func (o DirectorySelfServicePermissionsPtrOutput) SwitchRunningMode() pulumi.Boo }).(pulumi.BoolPtrOutput) } +type DirectoryWorkspaceCreationProperties struct { + // The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + CustomSecurityGroupId *string `pulumi:"customSecurityGroupId"` + // The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + DefaultOu *string `pulumi:"defaultOu"` + // Indicates whether internet access is enabled for your WorkSpaces. + EnableInternetAccess *bool `pulumi:"enableInternetAccess"` + // Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + EnableMaintenanceMode *bool `pulumi:"enableMaintenanceMode"` + // Indicates whether users are local administrators of their WorkSpaces. + UserEnabledAsLocalAdministrator *bool `pulumi:"userEnabledAsLocalAdministrator"` +} + +// DirectoryWorkspaceCreationPropertiesInput is an input type that accepts DirectoryWorkspaceCreationPropertiesArgs and DirectoryWorkspaceCreationPropertiesOutput values. +// You can construct a concrete instance of `DirectoryWorkspaceCreationPropertiesInput` via: +// +// DirectoryWorkspaceCreationPropertiesArgs{...} +type DirectoryWorkspaceCreationPropertiesInput interface { + pulumi.Input + + ToDirectoryWorkspaceCreationPropertiesOutput() DirectoryWorkspaceCreationPropertiesOutput + ToDirectoryWorkspaceCreationPropertiesOutputWithContext(context.Context) DirectoryWorkspaceCreationPropertiesOutput +} + +type DirectoryWorkspaceCreationPropertiesArgs struct { + // The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + CustomSecurityGroupId pulumi.StringPtrInput `pulumi:"customSecurityGroupId"` + // The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + DefaultOu pulumi.StringPtrInput `pulumi:"defaultOu"` + // Indicates whether internet access is enabled for your WorkSpaces. + EnableInternetAccess pulumi.BoolPtrInput `pulumi:"enableInternetAccess"` + // Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + EnableMaintenanceMode pulumi.BoolPtrInput `pulumi:"enableMaintenanceMode"` + // Indicates whether users are local administrators of their WorkSpaces. + UserEnabledAsLocalAdministrator pulumi.BoolPtrInput `pulumi:"userEnabledAsLocalAdministrator"` +} + +func (DirectoryWorkspaceCreationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*DirectoryWorkspaceCreationProperties)(nil)).Elem() +} + +func (i DirectoryWorkspaceCreationPropertiesArgs) ToDirectoryWorkspaceCreationPropertiesOutput() DirectoryWorkspaceCreationPropertiesOutput { + return i.ToDirectoryWorkspaceCreationPropertiesOutputWithContext(context.Background()) +} + +func (i DirectoryWorkspaceCreationPropertiesArgs) ToDirectoryWorkspaceCreationPropertiesOutputWithContext(ctx context.Context) DirectoryWorkspaceCreationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(DirectoryWorkspaceCreationPropertiesOutput) +} + +func (i DirectoryWorkspaceCreationPropertiesArgs) ToDirectoryWorkspaceCreationPropertiesPtrOutput() DirectoryWorkspaceCreationPropertiesPtrOutput { + return i.ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i DirectoryWorkspaceCreationPropertiesArgs) ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceCreationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DirectoryWorkspaceCreationPropertiesOutput).ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(ctx) +} + +// DirectoryWorkspaceCreationPropertiesPtrInput is an input type that accepts DirectoryWorkspaceCreationPropertiesArgs, DirectoryWorkspaceCreationPropertiesPtr and DirectoryWorkspaceCreationPropertiesPtrOutput values. +// You can construct a concrete instance of `DirectoryWorkspaceCreationPropertiesPtrInput` via: +// +// DirectoryWorkspaceCreationPropertiesArgs{...} +// +// or: +// +// nil +type DirectoryWorkspaceCreationPropertiesPtrInput interface { + pulumi.Input + + ToDirectoryWorkspaceCreationPropertiesPtrOutput() DirectoryWorkspaceCreationPropertiesPtrOutput + ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(context.Context) DirectoryWorkspaceCreationPropertiesPtrOutput +} + +type directoryWorkspaceCreationPropertiesPtrType DirectoryWorkspaceCreationPropertiesArgs + +func DirectoryWorkspaceCreationPropertiesPtr(v *DirectoryWorkspaceCreationPropertiesArgs) DirectoryWorkspaceCreationPropertiesPtrInput { + return (*directoryWorkspaceCreationPropertiesPtrType)(v) +} + +func (*directoryWorkspaceCreationPropertiesPtrType) ElementType() reflect.Type { + return reflect.TypeOf((**DirectoryWorkspaceCreationProperties)(nil)).Elem() +} + +func (i *directoryWorkspaceCreationPropertiesPtrType) ToDirectoryWorkspaceCreationPropertiesPtrOutput() DirectoryWorkspaceCreationPropertiesPtrOutput { + return i.ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(context.Background()) +} + +func (i *directoryWorkspaceCreationPropertiesPtrType) ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceCreationPropertiesPtrOutput { + return pulumi.ToOutputWithContext(ctx, i).(DirectoryWorkspaceCreationPropertiesPtrOutput) +} + +type DirectoryWorkspaceCreationPropertiesOutput struct{ *pulumi.OutputState } + +func (DirectoryWorkspaceCreationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*DirectoryWorkspaceCreationProperties)(nil)).Elem() +} + +func (o DirectoryWorkspaceCreationPropertiesOutput) ToDirectoryWorkspaceCreationPropertiesOutput() DirectoryWorkspaceCreationPropertiesOutput { + return o +} + +func (o DirectoryWorkspaceCreationPropertiesOutput) ToDirectoryWorkspaceCreationPropertiesOutputWithContext(ctx context.Context) DirectoryWorkspaceCreationPropertiesOutput { + return o +} + +func (o DirectoryWorkspaceCreationPropertiesOutput) ToDirectoryWorkspaceCreationPropertiesPtrOutput() DirectoryWorkspaceCreationPropertiesPtrOutput { + return o.ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(context.Background()) +} + +func (o DirectoryWorkspaceCreationPropertiesOutput) ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceCreationPropertiesPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceCreationProperties) *DirectoryWorkspaceCreationProperties { + return &v + }).(DirectoryWorkspaceCreationPropertiesPtrOutput) +} + +// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. +func (o DirectoryWorkspaceCreationPropertiesOutput) CustomSecurityGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceCreationProperties) *string { return v.CustomSecurityGroupId }).(pulumi.StringPtrOutput) +} + +// The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. +func (o DirectoryWorkspaceCreationPropertiesOutput) DefaultOu() pulumi.StringPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceCreationProperties) *string { return v.DefaultOu }).(pulumi.StringPtrOutput) +} + +// Indicates whether internet access is enabled for your WorkSpaces. +func (o DirectoryWorkspaceCreationPropertiesOutput) EnableInternetAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceCreationProperties) *bool { return v.EnableInternetAccess }).(pulumi.BoolPtrOutput) +} + +// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. +func (o DirectoryWorkspaceCreationPropertiesOutput) EnableMaintenanceMode() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceCreationProperties) *bool { return v.EnableMaintenanceMode }).(pulumi.BoolPtrOutput) +} + +// Indicates whether users are local administrators of their WorkSpaces. +func (o DirectoryWorkspaceCreationPropertiesOutput) UserEnabledAsLocalAdministrator() pulumi.BoolPtrOutput { + return o.ApplyT(func(v DirectoryWorkspaceCreationProperties) *bool { return v.UserEnabledAsLocalAdministrator }).(pulumi.BoolPtrOutput) +} + +type DirectoryWorkspaceCreationPropertiesPtrOutput struct{ *pulumi.OutputState } + +func (DirectoryWorkspaceCreationPropertiesPtrOutput) ElementType() reflect.Type { + return reflect.TypeOf((**DirectoryWorkspaceCreationProperties)(nil)).Elem() +} + +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) ToDirectoryWorkspaceCreationPropertiesPtrOutput() DirectoryWorkspaceCreationPropertiesPtrOutput { + return o +} + +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) ToDirectoryWorkspaceCreationPropertiesPtrOutputWithContext(ctx context.Context) DirectoryWorkspaceCreationPropertiesPtrOutput { + return o +} + +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) Elem() DirectoryWorkspaceCreationPropertiesOutput { + return o.ApplyT(func(v *DirectoryWorkspaceCreationProperties) DirectoryWorkspaceCreationProperties { return *v }).(DirectoryWorkspaceCreationPropertiesOutput) +} + +// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) CustomSecurityGroupId() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceCreationProperties) *string { + if v == nil { + return nil + } + return v.CustomSecurityGroupId + }).(pulumi.StringPtrOutput) +} + +// The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) DefaultOu() pulumi.StringPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceCreationProperties) *string { + if v == nil { + return nil + } + return v.DefaultOu + }).(pulumi.StringPtrOutput) +} + +// Indicates whether internet access is enabled for your WorkSpaces. +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) EnableInternetAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceCreationProperties) *bool { + if v == nil { + return nil + } + return v.EnableInternetAccess + }).(pulumi.BoolPtrOutput) +} + +// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) EnableMaintenanceMode() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceCreationProperties) *bool { + if v == nil { + return nil + } + return v.EnableMaintenanceMode + }).(pulumi.BoolPtrOutput) +} + +// Indicates whether users are local administrators of their WorkSpaces. +func (o DirectoryWorkspaceCreationPropertiesPtrOutput) UserEnabledAsLocalAdministrator() pulumi.BoolPtrOutput { + return o.ApplyT(func(v *DirectoryWorkspaceCreationProperties) *bool { + if v == nil { + return nil + } + return v.UserEnabledAsLocalAdministrator + }).(pulumi.BoolPtrOutput) +} + type IpGroupRule struct { // The description. Description *string `pulumi:"description"` @@ -954,9 +1161,99 @@ func (o GetDirectorySelfServicePermissionArrayOutput) Index(i pulumi.IntInput) G }).(GetDirectorySelfServicePermissionOutput) } +type GetDirectoryWorkspaceCreationProperties struct { + // The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + CustomSecurityGroupId string `pulumi:"customSecurityGroupId"` + // The default organizational unit (OU) for your WorkSpace directories. + DefaultOu *string `pulumi:"defaultOu"` + // Indicates whether internet access is enabled for your WorkSpaces. + EnableInternetAccess *bool `pulumi:"enableInternetAccess"` + // Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + EnableMaintenanceMode *bool `pulumi:"enableMaintenanceMode"` + // Indicates whether users are local administrators of their WorkSpaces. + UserEnabledAsLocalAdministrator *bool `pulumi:"userEnabledAsLocalAdministrator"` +} + +// GetDirectoryWorkspaceCreationPropertiesInput is an input type that accepts GetDirectoryWorkspaceCreationPropertiesArgs and GetDirectoryWorkspaceCreationPropertiesOutput values. +// You can construct a concrete instance of `GetDirectoryWorkspaceCreationPropertiesInput` via: +// +// GetDirectoryWorkspaceCreationPropertiesArgs{...} +type GetDirectoryWorkspaceCreationPropertiesInput interface { + pulumi.Input + + ToGetDirectoryWorkspaceCreationPropertiesOutput() GetDirectoryWorkspaceCreationPropertiesOutput + ToGetDirectoryWorkspaceCreationPropertiesOutputWithContext(context.Context) GetDirectoryWorkspaceCreationPropertiesOutput +} + +type GetDirectoryWorkspaceCreationPropertiesArgs struct { + // The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + CustomSecurityGroupId pulumi.StringInput `pulumi:"customSecurityGroupId"` + // The default organizational unit (OU) for your WorkSpace directories. + DefaultOu pulumi.StringPtrInput `pulumi:"defaultOu"` + // Indicates whether internet access is enabled for your WorkSpaces. + EnableInternetAccess pulumi.BoolPtrInput `pulumi:"enableInternetAccess"` + // Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + EnableMaintenanceMode pulumi.BoolPtrInput `pulumi:"enableMaintenanceMode"` + // Indicates whether users are local administrators of their WorkSpaces. + UserEnabledAsLocalAdministrator pulumi.BoolPtrInput `pulumi:"userEnabledAsLocalAdministrator"` +} + +func (GetDirectoryWorkspaceCreationPropertiesArgs) ElementType() reflect.Type { + return reflect.TypeOf((*GetDirectoryWorkspaceCreationProperties)(nil)).Elem() +} + +func (i GetDirectoryWorkspaceCreationPropertiesArgs) ToGetDirectoryWorkspaceCreationPropertiesOutput() GetDirectoryWorkspaceCreationPropertiesOutput { + return i.ToGetDirectoryWorkspaceCreationPropertiesOutputWithContext(context.Background()) +} + +func (i GetDirectoryWorkspaceCreationPropertiesArgs) ToGetDirectoryWorkspaceCreationPropertiesOutputWithContext(ctx context.Context) GetDirectoryWorkspaceCreationPropertiesOutput { + return pulumi.ToOutputWithContext(ctx, i).(GetDirectoryWorkspaceCreationPropertiesOutput) +} + +type GetDirectoryWorkspaceCreationPropertiesOutput struct{ *pulumi.OutputState } + +func (GetDirectoryWorkspaceCreationPropertiesOutput) ElementType() reflect.Type { + return reflect.TypeOf((*GetDirectoryWorkspaceCreationProperties)(nil)).Elem() +} + +func (o GetDirectoryWorkspaceCreationPropertiesOutput) ToGetDirectoryWorkspaceCreationPropertiesOutput() GetDirectoryWorkspaceCreationPropertiesOutput { + return o +} + +func (o GetDirectoryWorkspaceCreationPropertiesOutput) ToGetDirectoryWorkspaceCreationPropertiesOutputWithContext(ctx context.Context) GetDirectoryWorkspaceCreationPropertiesOutput { + return o +} + +// The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. +func (o GetDirectoryWorkspaceCreationPropertiesOutput) CustomSecurityGroupId() pulumi.StringOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) string { return v.CustomSecurityGroupId }).(pulumi.StringOutput) +} + +// The default organizational unit (OU) for your WorkSpace directories. +func (o GetDirectoryWorkspaceCreationPropertiesOutput) DefaultOu() pulumi.StringPtrOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *string { return v.DefaultOu }).(pulumi.StringPtrOutput) +} + +// Indicates whether internet access is enabled for your WorkSpaces. +func (o GetDirectoryWorkspaceCreationPropertiesOutput) EnableInternetAccess() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *bool { return v.EnableInternetAccess }).(pulumi.BoolPtrOutput) +} + +// Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). +func (o GetDirectoryWorkspaceCreationPropertiesOutput) EnableMaintenanceMode() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *bool { return v.EnableMaintenanceMode }).(pulumi.BoolPtrOutput) +} + +// Indicates whether users are local administrators of their WorkSpaces. +func (o GetDirectoryWorkspaceCreationPropertiesOutput) UserEnabledAsLocalAdministrator() pulumi.BoolPtrOutput { + return o.ApplyT(func(v GetDirectoryWorkspaceCreationProperties) *bool { return v.UserEnabledAsLocalAdministrator }).(pulumi.BoolPtrOutput) +} + func init() { pulumi.RegisterOutputType(DirectorySelfServicePermissionsOutput{}) pulumi.RegisterOutputType(DirectorySelfServicePermissionsPtrOutput{}) + pulumi.RegisterOutputType(DirectoryWorkspaceCreationPropertiesOutput{}) + pulumi.RegisterOutputType(DirectoryWorkspaceCreationPropertiesPtrOutput{}) pulumi.RegisterOutputType(IpGroupRuleOutput{}) pulumi.RegisterOutputType(IpGroupRuleArrayOutput{}) pulumi.RegisterOutputType(WorkspaceWorkspacePropertiesOutput{}) @@ -969,4 +1266,5 @@ func init() { pulumi.RegisterOutputType(GetBundleUserStorageArrayOutput{}) pulumi.RegisterOutputType(GetDirectorySelfServicePermissionOutput{}) pulumi.RegisterOutputType(GetDirectorySelfServicePermissionArrayOutput{}) + pulumi.RegisterOutputType(GetDirectoryWorkspaceCreationPropertiesOutput{}) } diff --git a/sdk/nodejs/apigatewayv2/route.ts b/sdk/nodejs/apigatewayv2/route.ts index 8ca53edec2e..c97d2378ef7 100644 --- a/sdk/nodejs/apigatewayv2/route.ts +++ b/sdk/nodejs/apigatewayv2/route.ts @@ -85,7 +85,7 @@ export class Route extends pulumi.CustomResource { */ public readonly requestModels!: pulumi.Output<{[key: string]: string} | undefined>; /** - * The route key for the route. + * The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. */ public readonly routeKey!: pulumi.Output; /** @@ -191,7 +191,7 @@ export interface RouteState { */ readonly requestModels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The route key for the route. + * The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. */ readonly routeKey?: pulumi.Input; /** @@ -244,7 +244,7 @@ export interface RouteArgs { */ readonly requestModels?: pulumi.Input<{[key: string]: pulumi.Input}>; /** - * The route key for the route. + * The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. */ readonly routeKey: pulumi.Input; /** diff --git a/sdk/nodejs/appmesh/gatewayRoute.ts b/sdk/nodejs/appmesh/gatewayRoute.ts new file mode 100644 index 00000000000..d4dc518eb9a --- /dev/null +++ b/sdk/nodejs/appmesh/gatewayRoute.ts @@ -0,0 +1,240 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Provides an AWS App Mesh gateway route resource. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.appmesh.GatewayRoute("example", { + * meshName: "example-service-mesh", + * virtualGatewayName: aws_appmesh_virtual_gateway.example.name, + * spec: { + * httpRoute: { + * action: { + * target: { + * virtualService: { + * virtualServiceName: aws_appmesh_virtual_service.example.name, + * }, + * }, + * }, + * match: { + * prefix: "/", + * }, + * }, + * }, + * tags: { + * Environment: "test", + * }, + * }); + * ``` + */ +export class GatewayRoute extends pulumi.CustomResource { + /** + * Get an existing GatewayRoute 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?: GatewayRouteState, opts?: pulumi.CustomResourceOptions): GatewayRoute { + return new GatewayRoute(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:appmesh/gatewayRoute:GatewayRoute'; + + /** + * Returns true if the given object is an instance of GatewayRoute. 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 GatewayRoute { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === GatewayRoute.__pulumiType; + } + + /** + * The ARN of the gateway route. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The creation date of the gateway route. + */ + public /*out*/ readonly createdDate!: pulumi.Output; + /** + * The last update date of the gateway route. + */ + public /*out*/ readonly lastUpdatedDate!: pulumi.Output; + /** + * The name of the service mesh in which to create the gateway route. + */ + public readonly meshName!: pulumi.Output; + /** + * The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + */ + public readonly meshOwner!: pulumi.Output; + /** + * The name to use for the gateway route. + */ + public readonly name!: pulumi.Output; + /** + * The resource owner's AWS account ID. + */ + public /*out*/ readonly resourceOwner!: pulumi.Output; + /** + * The gateway route specification to apply. + */ + public readonly spec!: pulumi.Output; + /** + * A map of tags to assign to the resource. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + */ + public readonly virtualGatewayName!: pulumi.Output; + + /** + * Create a GatewayRoute 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: GatewayRouteArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: GatewayRouteArgs | GatewayRouteState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as GatewayRouteState | undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["createdDate"] = state ? state.createdDate : undefined; + inputs["lastUpdatedDate"] = state ? state.lastUpdatedDate : undefined; + inputs["meshName"] = state ? state.meshName : undefined; + inputs["meshOwner"] = state ? state.meshOwner : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["resourceOwner"] = state ? state.resourceOwner : undefined; + inputs["spec"] = state ? state.spec : undefined; + inputs["tags"] = state ? state.tags : undefined; + inputs["virtualGatewayName"] = state ? state.virtualGatewayName : undefined; + } else { + const args = argsOrState as GatewayRouteArgs | undefined; + if (!args || args.meshName === undefined) { + throw new Error("Missing required property 'meshName'"); + } + if (!args || args.spec === undefined) { + throw new Error("Missing required property 'spec'"); + } + if (!args || args.virtualGatewayName === undefined) { + throw new Error("Missing required property 'virtualGatewayName'"); + } + inputs["meshName"] = args ? args.meshName : undefined; + inputs["meshOwner"] = args ? args.meshOwner : undefined; + inputs["name"] = args ? args.name : undefined; + inputs["spec"] = args ? args.spec : undefined; + inputs["tags"] = args ? args.tags : undefined; + inputs["virtualGatewayName"] = args ? args.virtualGatewayName : undefined; + inputs["arn"] = undefined /*out*/; + inputs["createdDate"] = undefined /*out*/; + inputs["lastUpdatedDate"] = undefined /*out*/; + inputs["resourceOwner"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(GatewayRoute.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering GatewayRoute resources. + */ +export interface GatewayRouteState { + /** + * The ARN of the gateway route. + */ + readonly arn?: pulumi.Input; + /** + * The creation date of the gateway route. + */ + readonly createdDate?: pulumi.Input; + /** + * The last update date of the gateway route. + */ + readonly lastUpdatedDate?: pulumi.Input; + /** + * The name of the service mesh in which to create the gateway route. + */ + readonly meshName?: pulumi.Input; + /** + * The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + */ + readonly meshOwner?: pulumi.Input; + /** + * The name to use for the gateway route. + */ + readonly name?: pulumi.Input; + /** + * The resource owner's AWS account ID. + */ + readonly resourceOwner?: pulumi.Input; + /** + * The gateway route specification to apply. + */ + readonly spec?: pulumi.Input; + /** + * A map of tags to assign to the resource. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + */ + readonly virtualGatewayName?: pulumi.Input; +} + +/** + * The set of arguments for constructing a GatewayRoute resource. + */ +export interface GatewayRouteArgs { + /** + * The name of the service mesh in which to create the gateway route. + */ + readonly meshName: pulumi.Input; + /** + * The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + */ + readonly meshOwner?: pulumi.Input; + /** + * The name to use for the gateway route. + */ + readonly name?: pulumi.Input; + /** + * The gateway route specification to apply. + */ + readonly spec: pulumi.Input; + /** + * A map of tags to assign to the resource. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + */ + readonly virtualGatewayName: pulumi.Input; +} diff --git a/sdk/nodejs/appmesh/index.ts b/sdk/nodejs/appmesh/index.ts index e2c5729437d..3bfc60691ed 100644 --- a/sdk/nodejs/appmesh/index.ts +++ b/sdk/nodejs/appmesh/index.ts @@ -2,8 +2,10 @@ // *** Do not edit by hand unless you're certain you know what you are doing! *** // Export members: +export * from "./gatewayRoute"; export * from "./mesh"; export * from "./route"; +export * from "./virtualGateway"; export * from "./virtualNode"; export * from "./virtualRouter"; export * from "./virtualService"; diff --git a/sdk/nodejs/appmesh/virtualGateway.ts b/sdk/nodejs/appmesh/virtualGateway.ts new file mode 100644 index 00000000000..ed175d3cd6b --- /dev/null +++ b/sdk/nodejs/appmesh/virtualGateway.ts @@ -0,0 +1,250 @@ +// *** 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 enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * Provides an AWS App Mesh virtual gateway resource. + * + * ## Example Usage + * ### Basic + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.appmesh.VirtualGateway("example", { + * meshName: "example-service-mesh", + * spec: { + * listener: { + * portMapping: { + * port: 8080, + * protocol: "http", + * }, + * }, + * }, + * tags: { + * Environment: "test", + * }, + * }); + * ``` + * ### Access Logs and TLS + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const example = new aws.appmesh.VirtualGateway("example", { + * meshName: "example-service-mesh", + * spec: { + * listener: { + * portMapping: { + * port: 8080, + * protocol: "http", + * }, + * tls: { + * certificate: { + * acm: { + * certificateArn: aws_acm_certificate.example.arn, + * }, + * }, + * mode: "STRICT", + * }, + * }, + * logging: { + * accessLog: { + * file: { + * path: "/var/log/access.log", + * }, + * }, + * }, + * }, + * }); + * ``` + */ +export class VirtualGateway extends pulumi.CustomResource { + /** + * Get an existing VirtualGateway 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?: VirtualGatewayState, opts?: pulumi.CustomResourceOptions): VirtualGateway { + return new VirtualGateway(name, state, { ...opts, id: id }); + } + + /** @internal */ + public static readonly __pulumiType = 'aws:appmesh/virtualGateway:VirtualGateway'; + + /** + * Returns true if the given object is an instance of VirtualGateway. 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 VirtualGateway { + if (obj === undefined || obj === null) { + return false; + } + return obj['__pulumiType'] === VirtualGateway.__pulumiType; + } + + /** + * The ARN of the virtual gateway. + */ + public /*out*/ readonly arn!: pulumi.Output; + /** + * The creation date of the virtual gateway. + */ + public /*out*/ readonly createdDate!: pulumi.Output; + /** + * The last update date of the virtual gateway. + */ + public /*out*/ readonly lastUpdatedDate!: pulumi.Output; + /** + * The name of the service mesh in which to create the virtual gateway. + */ + public readonly meshName!: pulumi.Output; + /** + * The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + */ + public readonly meshOwner!: pulumi.Output; + /** + * The name to use for the virtual gateway. + */ + public readonly name!: pulumi.Output; + /** + * The resource owner's AWS account ID. + */ + public /*out*/ readonly resourceOwner!: pulumi.Output; + /** + * The virtual gateway specification to apply. + */ + public readonly spec!: pulumi.Output; + /** + * A map of tags to assign to the resource. + */ + public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + + /** + * Create a VirtualGateway 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: VirtualGatewayArgs, opts?: pulumi.CustomResourceOptions) + constructor(name: string, argsOrState?: VirtualGatewayArgs | VirtualGatewayState, opts?: pulumi.CustomResourceOptions) { + let inputs: pulumi.Inputs = {}; + if (opts && opts.id) { + const state = argsOrState as VirtualGatewayState | undefined; + inputs["arn"] = state ? state.arn : undefined; + inputs["createdDate"] = state ? state.createdDate : undefined; + inputs["lastUpdatedDate"] = state ? state.lastUpdatedDate : undefined; + inputs["meshName"] = state ? state.meshName : undefined; + inputs["meshOwner"] = state ? state.meshOwner : undefined; + inputs["name"] = state ? state.name : undefined; + inputs["resourceOwner"] = state ? state.resourceOwner : undefined; + inputs["spec"] = state ? state.spec : undefined; + inputs["tags"] = state ? state.tags : undefined; + } else { + const args = argsOrState as VirtualGatewayArgs | undefined; + if (!args || args.meshName === undefined) { + throw new Error("Missing required property 'meshName'"); + } + if (!args || args.spec === undefined) { + throw new Error("Missing required property 'spec'"); + } + inputs["meshName"] = args ? args.meshName : undefined; + inputs["meshOwner"] = args ? args.meshOwner : undefined; + inputs["name"] = args ? args.name : undefined; + inputs["spec"] = args ? args.spec : undefined; + inputs["tags"] = args ? args.tags : undefined; + inputs["arn"] = undefined /*out*/; + inputs["createdDate"] = undefined /*out*/; + inputs["lastUpdatedDate"] = undefined /*out*/; + inputs["resourceOwner"] = undefined /*out*/; + } + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + super(VirtualGateway.__pulumiType, name, inputs, opts); + } +} + +/** + * Input properties used for looking up and filtering VirtualGateway resources. + */ +export interface VirtualGatewayState { + /** + * The ARN of the virtual gateway. + */ + readonly arn?: pulumi.Input; + /** + * The creation date of the virtual gateway. + */ + readonly createdDate?: pulumi.Input; + /** + * The last update date of the virtual gateway. + */ + readonly lastUpdatedDate?: pulumi.Input; + /** + * The name of the service mesh in which to create the virtual gateway. + */ + readonly meshName?: pulumi.Input; + /** + * The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + */ + readonly meshOwner?: pulumi.Input; + /** + * The name to use for the virtual gateway. + */ + readonly name?: pulumi.Input; + /** + * The resource owner's AWS account ID. + */ + readonly resourceOwner?: pulumi.Input; + /** + * The virtual gateway specification to apply. + */ + readonly spec?: pulumi.Input; + /** + * A map of tags to assign to the resource. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} + +/** + * The set of arguments for constructing a VirtualGateway resource. + */ +export interface VirtualGatewayArgs { + /** + * The name of the service mesh in which to create the virtual gateway. + */ + readonly meshName: pulumi.Input; + /** + * The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + */ + readonly meshOwner?: pulumi.Input; + /** + * The name to use for the virtual gateway. + */ + readonly name?: pulumi.Input; + /** + * The virtual gateway specification to apply. + */ + readonly spec: pulumi.Input; + /** + * A map of tags to assign to the resource. + */ + readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; +} diff --git a/sdk/nodejs/backup/plan.ts b/sdk/nodejs/backup/plan.ts index 1220a4b3cc6..76e761aaa10 100644 --- a/sdk/nodejs/backup/plan.ts +++ b/sdk/nodejs/backup/plan.ts @@ -16,11 +16,19 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * - * const example = new aws.backup.Plan("example", {rules: [{ - * ruleName: "tf_example_backup_rule", - * targetVaultName: aws_backup_vault.test.name, - * schedule: "cron(0 12 * * ? *)", - * }]}); + * const example = new aws.backup.Plan("example", { + * rules: [{ + * ruleName: "tf_example_backup_rule", + * targetVaultName: aws_backup_vault.test.name, + * schedule: "cron(0 12 * * ? *)", + * }], + * advancedBackupSettings: [{ + * backupOptions: { + * WindowsVSS: "enabled", + * }, + * resourceType: "EC2", + * }], + * }); * ``` */ export class Plan extends pulumi.CustomResource { @@ -51,6 +59,10 @@ export class Plan extends pulumi.CustomResource { return obj['__pulumiType'] === Plan.__pulumiType; } + /** + * An object that specifies backup options for each resource type. + */ + public readonly advancedBackupSettings!: pulumi.Output; /** * The ARN of the backup plan. */ @@ -84,6 +96,7 @@ export class Plan extends pulumi.CustomResource { let inputs: pulumi.Inputs = {}; if (opts && opts.id) { const state = argsOrState as PlanState | undefined; + inputs["advancedBackupSettings"] = state ? state.advancedBackupSettings : undefined; inputs["arn"] = state ? state.arn : undefined; inputs["name"] = state ? state.name : undefined; inputs["rules"] = state ? state.rules : undefined; @@ -94,6 +107,7 @@ export class Plan extends pulumi.CustomResource { if (!args || args.rules === undefined) { throw new Error("Missing required property 'rules'"); } + inputs["advancedBackupSettings"] = args ? args.advancedBackupSettings : undefined; inputs["name"] = args ? args.name : undefined; inputs["rules"] = args ? args.rules : undefined; inputs["tags"] = args ? args.tags : undefined; @@ -115,6 +129,10 @@ export class Plan extends pulumi.CustomResource { * Input properties used for looking up and filtering Plan resources. */ export interface PlanState { + /** + * An object that specifies backup options for each resource type. + */ + readonly advancedBackupSettings?: pulumi.Input[]>; /** * The ARN of the backup plan. */ @@ -141,6 +159,10 @@ export interface PlanState { * The set of arguments for constructing a Plan resource. */ export interface PlanArgs { + /** + * An object that specifies backup options for each resource type. + */ + readonly advancedBackupSettings?: pulumi.Input[]>; /** * The display name of a backup plan. */ diff --git a/sdk/nodejs/backup/vaultNotifications.ts b/sdk/nodejs/backup/vaultNotifications.ts index cc252c67782..6d9a5509f0d 100644 --- a/sdk/nodejs/backup/vaultNotifications.ts +++ b/sdk/nodejs/backup/vaultNotifications.ts @@ -33,7 +33,7 @@ import * as utilities from "../utilities"; * }); * const testVaultNotifications = new aws.backup.VaultNotifications("testVaultNotifications", { * backupVaultName: "example_backup_vault", - * snsTopicArn: sns_topic_arn.test.arn, + * snsTopicArn: testTopic.arn, * backupVaultEvents: [ * "BACKUP_JOB_STARTED", * "RESTORE_JOB_COMPLETED", diff --git a/sdk/nodejs/codeartifact/getRepositoryEndpoint.ts b/sdk/nodejs/codeartifact/getRepositoryEndpoint.ts new file mode 100644 index 00000000000..b9e1559e270 --- /dev/null +++ b/sdk/nodejs/codeartifact/getRepositoryEndpoint.ts @@ -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! *** + +import * as pulumi from "@pulumi/pulumi"; +import * as inputs from "../types/input"; +import * as outputs from "../types/output"; +import * as enums from "../types/enums"; +import * as utilities from "../utilities"; + +/** + * The CodeArtifact Repository Endpoint data source returns the endpoint of a repository for a specific package format. + * + * ## Example Usage + * + * ```typescript + * import * as pulumi from "@pulumi/pulumi"; + * import * as aws from "@pulumi/aws"; + * + * const test = aws.codeartifact.getRepositoryEndpoint({ + * domain: aws_codeartifact_domain.test.domain, + * repository: aws_codeartifact_repository.test.repository, + * format: "npm", + * }); + * ``` + */ +export function getRepositoryEndpoint(args: GetRepositoryEndpointArgs, opts?: pulumi.InvokeOptions): Promise { + if (!opts) { + opts = {} + } + + if (!opts.version) { + opts.version = utilities.getVersion(); + } + return pulumi.runtime.invoke("aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint", { + "domain": args.domain, + "domainOwner": args.domainOwner, + "format": args.format, + "repository": args.repository, + }, opts); +} + +/** + * A collection of arguments for invoking getRepositoryEndpoint. + */ +export interface GetRepositoryEndpointArgs { + /** + * The name of the domain that contains the repository. + */ + readonly domain: string; + /** + * The account number of the AWS account that owns the domain. + */ + readonly domainOwner?: string; + /** + * Which endpoint of a repository to return. A repository has one endpoint for each package format: `npm`, `pypi`, and `maven`. + */ + readonly format: string; + /** + * The name of the repository. + */ + readonly repository: string; +} + +/** + * A collection of values returned by getRepositoryEndpoint. + */ +export interface GetRepositoryEndpointResult { + readonly domain: string; + readonly domainOwner: string; + readonly format: string; + /** + * The provider-assigned unique ID for this managed resource. + */ + readonly id: string; + readonly repository: string; + /** + * The URL of the returned endpoint. + */ + readonly repositoryEndpoint: string; +} diff --git a/sdk/nodejs/codeartifact/index.ts b/sdk/nodejs/codeartifact/index.ts index 704aed06be5..a1176675fe2 100644 --- a/sdk/nodejs/codeartifact/index.ts +++ b/sdk/nodejs/codeartifact/index.ts @@ -5,5 +5,6 @@ export * from "./domain"; export * from "./domainPermissions"; export * from "./getAuthorizationToken"; +export * from "./getRepositoryEndpoint"; export * from "./repository"; export * from "./repositoryPermissionsPolicy"; diff --git a/sdk/nodejs/ec2/securityGroupRule.ts b/sdk/nodejs/ec2/securityGroupRule.ts index 5797a58b6ea..ba79b94d232 100644 --- a/sdk/nodejs/ec2/securityGroupRule.ts +++ b/sdk/nodejs/ec2/securityGroupRule.ts @@ -38,7 +38,7 @@ import * as utilities from "../utilities"; * ``` * ## Usage with prefix list IDs * - * Prefix list IDs are manged by AWS internally. Prefix list IDs + * Prefix list IDs are managed by AWS internally. Prefix list IDs * are associated with a prefix list name, or service name, that is linked to a specific region. * Prefix list IDs are exported on VPC Endpoints, so you can use this format: * diff --git a/sdk/nodejs/ec2transitgateway/route.ts b/sdk/nodejs/ec2transitgateway/route.ts index 06d70569576..abf99c64190 100644 --- a/sdk/nodejs/ec2transitgateway/route.ts +++ b/sdk/nodejs/ec2transitgateway/route.ts @@ -66,7 +66,7 @@ export class Route extends pulumi.CustomResource { */ public readonly blackhole!: pulumi.Output; /** - * IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + * IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. */ public readonly destinationCidrBlock!: pulumi.Output; /** @@ -127,7 +127,7 @@ export interface RouteState { */ readonly blackhole?: pulumi.Input; /** - * IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + * IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. */ readonly destinationCidrBlock?: pulumi.Input; /** @@ -149,7 +149,7 @@ export interface RouteArgs { */ readonly blackhole?: pulumi.Input; /** - * IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + * IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. */ readonly destinationCidrBlock: pulumi.Input; /** diff --git a/sdk/nodejs/rds/roleAssociation.ts b/sdk/nodejs/rds/roleAssociation.ts index f2a19df2009..138f4b7eaca 100644 --- a/sdk/nodejs/rds/roleAssociation.ts +++ b/sdk/nodejs/rds/roleAssociation.ts @@ -21,7 +21,7 @@ import * as utilities from "../utilities"; * const example = new aws.rds.RoleAssociation("example", { * dbInstanceIdentifier: aws_db_instance.example.id, * featureName: "S3_INTEGRATION", - * roleArn: aws_iam_role.example.id, + * roleArn: aws_iam_role.example.arn, * }); * ``` */ diff --git a/sdk/nodejs/sagemaker/notebookInstance.ts b/sdk/nodejs/sagemaker/notebookInstance.ts index 430db3f9e91..d4c0a3be9b6 100644 --- a/sdk/nodejs/sagemaker/notebookInstance.ts +++ b/sdk/nodejs/sagemaker/notebookInstance.ts @@ -56,6 +56,10 @@ export class NotebookInstance extends pulumi.CustomResource { * The Amazon Resource Name (ARN) assigned by AWS to this notebook instance. */ public /*out*/ readonly arn!: pulumi.Output; + /** + * The Git repository associated with the notebook instance as its default code repository + */ + public readonly defaultCodeRepository!: pulumi.Output; /** * Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. */ @@ -96,6 +100,10 @@ export class NotebookInstance extends pulumi.CustomResource { * A map of tags to assign to the resource. */ public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + */ + public readonly volumeSize!: pulumi.Output; /** * Create a NotebookInstance resource with the given unique name, arguments, and options. @@ -110,6 +118,7 @@ export class NotebookInstance extends pulumi.CustomResource { if (opts && opts.id) { const state = argsOrState as NotebookInstanceState | undefined; inputs["arn"] = state ? state.arn : undefined; + inputs["defaultCodeRepository"] = state ? state.defaultCodeRepository : undefined; inputs["directInternetAccess"] = state ? state.directInternetAccess : undefined; inputs["instanceType"] = state ? state.instanceType : undefined; inputs["kmsKeyId"] = state ? state.kmsKeyId : undefined; @@ -120,6 +129,7 @@ export class NotebookInstance extends pulumi.CustomResource { inputs["securityGroups"] = state ? state.securityGroups : undefined; inputs["subnetId"] = state ? state.subnetId : undefined; inputs["tags"] = state ? state.tags : undefined; + inputs["volumeSize"] = state ? state.volumeSize : undefined; } else { const args = argsOrState as NotebookInstanceArgs | undefined; if (!args || args.instanceType === undefined) { @@ -128,6 +138,7 @@ export class NotebookInstance extends pulumi.CustomResource { if (!args || args.roleArn === undefined) { throw new Error("Missing required property 'roleArn'"); } + inputs["defaultCodeRepository"] = args ? args.defaultCodeRepository : undefined; inputs["directInternetAccess"] = args ? args.directInternetAccess : undefined; inputs["instanceType"] = args ? args.instanceType : undefined; inputs["kmsKeyId"] = args ? args.kmsKeyId : undefined; @@ -138,6 +149,7 @@ export class NotebookInstance extends pulumi.CustomResource { inputs["securityGroups"] = args ? args.securityGroups : undefined; inputs["subnetId"] = args ? args.subnetId : undefined; inputs["tags"] = args ? args.tags : undefined; + inputs["volumeSize"] = args ? args.volumeSize : undefined; inputs["arn"] = undefined /*out*/; } if (!opts) { @@ -159,6 +171,10 @@ export interface NotebookInstanceState { * The Amazon Resource Name (ARN) assigned by AWS to this notebook instance. */ readonly arn?: pulumi.Input; + /** + * The Git repository associated with the notebook instance as its default code repository + */ + readonly defaultCodeRepository?: pulumi.Input; /** * Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. */ @@ -199,12 +215,20 @@ export interface NotebookInstanceState { * A map of tags to assign to the resource. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + */ + readonly volumeSize?: pulumi.Input; } /** * The set of arguments for constructing a NotebookInstance resource. */ export interface NotebookInstanceArgs { + /** + * The Git repository associated with the notebook instance as its default code repository + */ + readonly defaultCodeRepository?: pulumi.Input; /** * Set to `Disabled` to disable internet access to notebook. Requires `securityGroups` and `subnetId` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. */ @@ -245,4 +269,8 @@ export interface NotebookInstanceArgs { * A map of tags to assign to the resource. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + */ + readonly volumeSize?: pulumi.Input; } diff --git a/sdk/nodejs/tsconfig.json b/sdk/nodejs/tsconfig.json index 879655b5b0d..73cc21bd2bf 100644 --- a/sdk/nodejs/tsconfig.json +++ b/sdk/nodejs/tsconfig.json @@ -91,9 +91,11 @@ "applicationloadbalancing/loadBalancerType.ts", "applicationloadbalancing/targetGroup.ts", "applicationloadbalancing/targetGroupAttachment.ts", + "appmesh/gatewayRoute.ts", "appmesh/index.ts", "appmesh/mesh.ts", "appmesh/route.ts", + "appmesh/virtualGateway.ts", "appmesh/virtualNode.ts", "appmesh/virtualRouter.ts", "appmesh/virtualService.ts", @@ -185,6 +187,7 @@ "codeartifact/domain.ts", "codeartifact/domainPermissions.ts", "codeartifact/getAuthorizationToken.ts", + "codeartifact/getRepositoryEndpoint.ts", "codeartifact/index.ts", "codeartifact/repository.ts", "codeartifact/repositoryPermissionsPolicy.ts", diff --git a/sdk/nodejs/types/input.ts b/sdk/nodejs/types/input.ts index 0712cb49a3a..852be53047b 100644 --- a/sdk/nodejs/types/input.ts +++ b/sdk/nodejs/types/input.ts @@ -208,6 +208,7 @@ export interface ProviderEndpoint { route53resolver?: pulumi.Input; s3?: pulumi.Input; s3control?: pulumi.Input; + s3outposts?: pulumi.Input; sagemaker?: pulumi.Input; sdb?: pulumi.Input; secretsmanager?: pulumi.Input; @@ -1857,6 +1858,138 @@ export namespace applicationloadbalancing { } export namespace appmesh { + export interface GatewayRouteSpec { + /** + * The specification of a gRPC gateway route. + */ + grpcRoute?: pulumi.Input; + /** + * The specification of an HTTP/2 gateway route. + */ + http2Route?: pulumi.Input; + /** + * The specification of an HTTP gateway route. + */ + httpRoute?: pulumi.Input; + } + + export interface GatewayRouteSpecGrpcRoute { + /** + * The action to take if a match is determined. + */ + action: pulumi.Input; + /** + * The criteria for determining a request match. + */ + match: pulumi.Input; + } + + export interface GatewayRouteSpecGrpcRouteAction { + /** + * The target that traffic is routed to when a request matches the gateway route. + */ + target: pulumi.Input; + } + + export interface GatewayRouteSpecGrpcRouteActionTarget { + /** + * The virtual service gateway route target. + */ + virtualService: pulumi.Input; + } + + export interface GatewayRouteSpecGrpcRouteActionTargetVirtualService { + /** + * The name of the virtual service that traffic is routed to. + */ + virtualServiceName: pulumi.Input; + } + + export interface GatewayRouteSpecGrpcRouteMatch { + /** + * The fully qualified domain name for the service to match from the request. + */ + serviceName: pulumi.Input; + } + + export interface GatewayRouteSpecHttp2Route { + /** + * The action to take if a match is determined. + */ + action: pulumi.Input; + /** + * The criteria for determining a request match. + */ + match: pulumi.Input; + } + + export interface GatewayRouteSpecHttp2RouteAction { + /** + * The target that traffic is routed to when a request matches the gateway route. + */ + target: pulumi.Input; + } + + export interface GatewayRouteSpecHttp2RouteActionTarget { + /** + * The virtual service gateway route target. + */ + virtualService: pulumi.Input; + } + + export interface GatewayRouteSpecHttp2RouteActionTargetVirtualService { + /** + * The name of the virtual service that traffic is routed to. + */ + virtualServiceName: pulumi.Input; + } + + export interface GatewayRouteSpecHttp2RouteMatch { + /** + * Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + */ + prefix: pulumi.Input; + } + + export interface GatewayRouteSpecHttpRoute { + /** + * The action to take if a match is determined. + */ + action: pulumi.Input; + /** + * The criteria for determining a request match. + */ + match: pulumi.Input; + } + + export interface GatewayRouteSpecHttpRouteAction { + /** + * The target that traffic is routed to when a request matches the gateway route. + */ + target: pulumi.Input; + } + + export interface GatewayRouteSpecHttpRouteActionTarget { + /** + * The virtual service gateway route target. + */ + virtualService: pulumi.Input; + } + + export interface GatewayRouteSpecHttpRouteActionTargetVirtualService { + /** + * The name of the virtual service that traffic is routed to. + */ + virtualServiceName: pulumi.Input; + } + + export interface GatewayRouteSpecHttpRouteMatch { + /** + * Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + */ + prefix: pulumi.Input; + } + export interface MeshSpec { /** * The egress filter rules for the service mesh. @@ -2468,6 +2601,197 @@ export namespace appmesh { value: pulumi.Input; } + export interface VirtualGatewaySpec { + /** + * The defaults for backends. + */ + backendDefaults?: pulumi.Input; + /** + * The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + */ + listener: pulumi.Input; + /** + * The inbound and outbound access logging information for the virtual gateway. + */ + logging?: pulumi.Input; + } + + export interface VirtualGatewaySpecBackendDefaults { + /** + * The default client policy for virtual gateway backends. + */ + clientPolicy?: pulumi.Input; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicy { + /** + * The Transport Layer Security (TLS) client policy. + */ + tls?: pulumi.Input; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTls { + enforce?: pulumi.Input; + /** + * One or more ports that the policy is enforced for. + */ + ports?: pulumi.Input[]>; + /** + * The TLS validation context. + */ + validation: pulumi.Input; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation { + /** + * The TLS validation context trust. + */ + trust: pulumi.Input; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust { + /** + * The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + */ + acm?: pulumi.Input; + /** + * The TLS validation context trust for a local file. + */ + file?: pulumi.Input; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm { + /** + * One or more ACM Amazon Resource Name (ARN)s. + */ + certificateAuthorityArns: pulumi.Input[]>; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile { + /** + * The certificate chain for the certificate. + */ + certificateChain: pulumi.Input; + } + + export interface VirtualGatewaySpecListener { + /** + * The health check information for the listener. + */ + healthCheck?: pulumi.Input; + /** + * The port mapping information for the listener. + */ + portMapping: pulumi.Input; + /** + * The Transport Layer Security (TLS) properties for the listener + */ + tls?: pulumi.Input; + } + + export interface VirtualGatewaySpecListenerHealthCheck { + /** + * The number of consecutive successful health checks that must occur before declaring listener healthy. + */ + healthyThreshold: pulumi.Input; + /** + * The time period in milliseconds between each health check execution. + */ + intervalMillis: pulumi.Input; + /** + * The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + */ + path?: pulumi.Input; + /** + * The destination port for the health check request. This port must match the port defined in the `portMapping` for the listener. + */ + port?: pulumi.Input; + /** + * The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + */ + protocol: pulumi.Input; + /** + * The amount of time to wait when receiving a response from the health check, in milliseconds. + */ + timeoutMillis: pulumi.Input; + /** + * The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + */ + unhealthyThreshold: pulumi.Input; + } + + export interface VirtualGatewaySpecListenerPortMapping { + /** + * The port used for the port mapping. + */ + port: pulumi.Input; + /** + * The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. + */ + protocol: pulumi.Input; + } + + export interface VirtualGatewaySpecListenerTls { + /** + * The listener's TLS certificate. + */ + certificate: pulumi.Input; + /** + * The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. + */ + mode: pulumi.Input; + } + + export interface VirtualGatewaySpecListenerTlsCertificate { + /** + * An AWS Certificate Manager (ACM) certificate. + */ + acm?: pulumi.Input; + /** + * A local file certificate. + */ + file?: pulumi.Input; + } + + export interface VirtualGatewaySpecListenerTlsCertificateAcm { + /** + * The Amazon Resource Name (ARN) for the certificate. + */ + certificateArn: pulumi.Input; + } + + export interface VirtualGatewaySpecListenerTlsCertificateFile { + /** + * The certificate chain for the certificate. + */ + certificateChain: pulumi.Input; + /** + * The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + */ + privateKey: pulumi.Input; + } + + export interface VirtualGatewaySpecLogging { + /** + * The access log configuration for a virtual gateway. + */ + accessLog?: pulumi.Input; + } + + export interface VirtualGatewaySpecLoggingAccessLog { + /** + * The file object to send virtual gateway access logs to. + */ + file?: pulumi.Input; + } + + export interface VirtualGatewaySpecLoggingAccessLogFile { + /** + * The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + */ + path: pulumi.Input; + } + export interface VirtualNodeSpec { /** * The defaults for backends. @@ -3393,6 +3717,17 @@ export namespace autoscaling { } export namespace backup { + export interface PlanAdvancedBackupSetting { + /** + * Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + */ + backupOptions?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + */ + resourceType?: pulumi.Input; + } + export interface PlanRule { /** * The amount of time AWS Backup attempts a backup before canceling the job and returning an error. @@ -31373,7 +31708,7 @@ export namespace wafv2 { export interface WebAclRuleStatementManagedRuleGroupStatementExcludedRule { /** - * The name of the rule to exclude. + * The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. */ name: pulumi.Input; } @@ -51768,7 +52103,7 @@ export namespace wafv2 { export interface WebAclRuleStatementRuleGroupReferenceStatementExcludedRule { /** - * The name of the rule to exclude. + * The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. */ name: pulumi.Input; } @@ -52110,6 +52445,52 @@ export namespace workspaces { switchRunningMode?: pulumi.Input; } + export interface DirectoryWorkspaceCreationProperties { + /** + * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + */ + customSecurityGroupId?: pulumi.Input; + /** + * The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + */ + defaultOu?: pulumi.Input; + /** + * Indicates whether internet access is enabled for your WorkSpaces. + */ + enableInternetAccess?: pulumi.Input; + /** + * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + */ + enableMaintenanceMode?: pulumi.Input; + /** + * Indicates whether users are local administrators of their WorkSpaces. + */ + userEnabledAsLocalAdministrator?: pulumi.Input; + } + + export interface GetDirectoryWorkspaceCreationProperties { + /** + * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + */ + customSecurityGroupId?: string; + /** + * The default organizational unit (OU) for your WorkSpace directories. + */ + defaultOu?: string; + /** + * Indicates whether internet access is enabled for your WorkSpaces. + */ + enableInternetAccess?: boolean; + /** + * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + */ + enableMaintenanceMode?: boolean; + /** + * Indicates whether users are local administrators of their WorkSpaces. + */ + userEnabledAsLocalAdministrator?: boolean; + } + export interface IpGroupRule { /** * The description. diff --git a/sdk/nodejs/types/output.ts b/sdk/nodejs/types/output.ts index 4feeda84971..64694288944 100644 --- a/sdk/nodejs/types/output.ts +++ b/sdk/nodejs/types/output.ts @@ -220,6 +220,7 @@ export interface ProviderEndpoint { route53resolver?: string; s3?: string; s3control?: string; + s3outposts?: string; sagemaker?: string; sdb?: string; secretsmanager?: string; @@ -2042,6 +2043,138 @@ export namespace applicationloadbalancing { } export namespace appmesh { + export interface GatewayRouteSpec { + /** + * The specification of a gRPC gateway route. + */ + grpcRoute?: outputs.appmesh.GatewayRouteSpecGrpcRoute; + /** + * The specification of an HTTP/2 gateway route. + */ + http2Route?: outputs.appmesh.GatewayRouteSpecHttp2Route; + /** + * The specification of an HTTP gateway route. + */ + httpRoute?: outputs.appmesh.GatewayRouteSpecHttpRoute; + } + + export interface GatewayRouteSpecGrpcRoute { + /** + * The action to take if a match is determined. + */ + action: outputs.appmesh.GatewayRouteSpecGrpcRouteAction; + /** + * The criteria for determining a request match. + */ + match: outputs.appmesh.GatewayRouteSpecGrpcRouteMatch; + } + + export interface GatewayRouteSpecGrpcRouteAction { + /** + * The target that traffic is routed to when a request matches the gateway route. + */ + target: outputs.appmesh.GatewayRouteSpecGrpcRouteActionTarget; + } + + export interface GatewayRouteSpecGrpcRouteActionTarget { + /** + * The virtual service gateway route target. + */ + virtualService: outputs.appmesh.GatewayRouteSpecGrpcRouteActionTargetVirtualService; + } + + export interface GatewayRouteSpecGrpcRouteActionTargetVirtualService { + /** + * The name of the virtual service that traffic is routed to. + */ + virtualServiceName: string; + } + + export interface GatewayRouteSpecGrpcRouteMatch { + /** + * The fully qualified domain name for the service to match from the request. + */ + serviceName: string; + } + + export interface GatewayRouteSpecHttp2Route { + /** + * The action to take if a match is determined. + */ + action: outputs.appmesh.GatewayRouteSpecHttp2RouteAction; + /** + * The criteria for determining a request match. + */ + match: outputs.appmesh.GatewayRouteSpecHttp2RouteMatch; + } + + export interface GatewayRouteSpecHttp2RouteAction { + /** + * The target that traffic is routed to when a request matches the gateway route. + */ + target: outputs.appmesh.GatewayRouteSpecHttp2RouteActionTarget; + } + + export interface GatewayRouteSpecHttp2RouteActionTarget { + /** + * The virtual service gateway route target. + */ + virtualService: outputs.appmesh.GatewayRouteSpecHttp2RouteActionTargetVirtualService; + } + + export interface GatewayRouteSpecHttp2RouteActionTargetVirtualService { + /** + * The name of the virtual service that traffic is routed to. + */ + virtualServiceName: string; + } + + export interface GatewayRouteSpecHttp2RouteMatch { + /** + * Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + */ + prefix: string; + } + + export interface GatewayRouteSpecHttpRoute { + /** + * The action to take if a match is determined. + */ + action: outputs.appmesh.GatewayRouteSpecHttpRouteAction; + /** + * The criteria for determining a request match. + */ + match: outputs.appmesh.GatewayRouteSpecHttpRouteMatch; + } + + export interface GatewayRouteSpecHttpRouteAction { + /** + * The target that traffic is routed to when a request matches the gateway route. + */ + target: outputs.appmesh.GatewayRouteSpecHttpRouteActionTarget; + } + + export interface GatewayRouteSpecHttpRouteActionTarget { + /** + * The virtual service gateway route target. + */ + virtualService: outputs.appmesh.GatewayRouteSpecHttpRouteActionTargetVirtualService; + } + + export interface GatewayRouteSpecHttpRouteActionTargetVirtualService { + /** + * The name of the virtual service that traffic is routed to. + */ + virtualServiceName: string; + } + + export interface GatewayRouteSpecHttpRouteMatch { + /** + * Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + */ + prefix: string; + } + export interface MeshSpec { /** * The egress filter rules for the service mesh. @@ -2653,6 +2786,197 @@ export namespace appmesh { value: number; } + export interface VirtualGatewaySpec { + /** + * The defaults for backends. + */ + backendDefaults?: outputs.appmesh.VirtualGatewaySpecBackendDefaults; + /** + * The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + */ + listener: outputs.appmesh.VirtualGatewaySpecListener; + /** + * The inbound and outbound access logging information for the virtual gateway. + */ + logging?: outputs.appmesh.VirtualGatewaySpecLogging; + } + + export interface VirtualGatewaySpecBackendDefaults { + /** + * The default client policy for virtual gateway backends. + */ + clientPolicy?: outputs.appmesh.VirtualGatewaySpecBackendDefaultsClientPolicy; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicy { + /** + * The Transport Layer Security (TLS) client policy. + */ + tls?: outputs.appmesh.VirtualGatewaySpecBackendDefaultsClientPolicyTls; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTls { + enforce?: boolean; + /** + * One or more ports that the policy is enforced for. + */ + ports?: number[]; + /** + * The TLS validation context. + */ + validation: outputs.appmesh.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation { + /** + * The TLS validation context trust. + */ + trust: outputs.appmesh.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust { + /** + * The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + */ + acm?: outputs.appmesh.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm; + /** + * The TLS validation context trust for a local file. + */ + file?: outputs.appmesh.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm { + /** + * One or more ACM Amazon Resource Name (ARN)s. + */ + certificateAuthorityArns: string[]; + } + + export interface VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile { + /** + * The certificate chain for the certificate. + */ + certificateChain: string; + } + + export interface VirtualGatewaySpecListener { + /** + * The health check information for the listener. + */ + healthCheck?: outputs.appmesh.VirtualGatewaySpecListenerHealthCheck; + /** + * The port mapping information for the listener. + */ + portMapping: outputs.appmesh.VirtualGatewaySpecListenerPortMapping; + /** + * The Transport Layer Security (TLS) properties for the listener + */ + tls?: outputs.appmesh.VirtualGatewaySpecListenerTls; + } + + export interface VirtualGatewaySpecListenerHealthCheck { + /** + * The number of consecutive successful health checks that must occur before declaring listener healthy. + */ + healthyThreshold: number; + /** + * The time period in milliseconds between each health check execution. + */ + intervalMillis: number; + /** + * The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + */ + path?: string; + /** + * The destination port for the health check request. This port must match the port defined in the `portMapping` for the listener. + */ + port: number; + /** + * The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + */ + protocol: string; + /** + * The amount of time to wait when receiving a response from the health check, in milliseconds. + */ + timeoutMillis: number; + /** + * The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + */ + unhealthyThreshold: number; + } + + export interface VirtualGatewaySpecListenerPortMapping { + /** + * The port used for the port mapping. + */ + port: number; + /** + * The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. + */ + protocol: string; + } + + export interface VirtualGatewaySpecListenerTls { + /** + * The listener's TLS certificate. + */ + certificate: outputs.appmesh.VirtualGatewaySpecListenerTlsCertificate; + /** + * The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. + */ + mode: string; + } + + export interface VirtualGatewaySpecListenerTlsCertificate { + /** + * An AWS Certificate Manager (ACM) certificate. + */ + acm?: outputs.appmesh.VirtualGatewaySpecListenerTlsCertificateAcm; + /** + * A local file certificate. + */ + file?: outputs.appmesh.VirtualGatewaySpecListenerTlsCertificateFile; + } + + export interface VirtualGatewaySpecListenerTlsCertificateAcm { + /** + * The Amazon Resource Name (ARN) for the certificate. + */ + certificateArn: string; + } + + export interface VirtualGatewaySpecListenerTlsCertificateFile { + /** + * The certificate chain for the certificate. + */ + certificateChain: string; + /** + * The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. + */ + privateKey: string; + } + + export interface VirtualGatewaySpecLogging { + /** + * The access log configuration for a virtual gateway. + */ + accessLog?: outputs.appmesh.VirtualGatewaySpecLoggingAccessLog; + } + + export interface VirtualGatewaySpecLoggingAccessLog { + /** + * The file object to send virtual gateway access logs to. + */ + file?: outputs.appmesh.VirtualGatewaySpecLoggingAccessLogFile; + } + + export interface VirtualGatewaySpecLoggingAccessLogFile { + /** + * The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + */ + path: string; + } + export interface VirtualNodeSpec { /** * The defaults for backends. @@ -3578,6 +3902,17 @@ export namespace autoscaling { } export namespace backup { + export interface PlanAdvancedBackupSetting { + /** + * Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + */ + backupOptions?: {[key: string]: string}; + /** + * The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + */ + resourceType?: string; + } + export interface PlanRule { /** * The amount of time AWS Backup attempts a backup before canceling the job and returning an error. @@ -6013,6 +6348,7 @@ export namespace config { route53resolver?: string; s3?: string; s3control?: string; + s3outposts?: string; sagemaker?: string; sdb?: string; secretsmanager?: string; @@ -32921,7 +33257,7 @@ export namespace wafv2 { export interface WebAclRuleStatementManagedRuleGroupStatementExcludedRule { /** - * The name of the rule to exclude. + * The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. */ name: string; } @@ -53316,7 +53652,7 @@ export namespace wafv2 { export interface WebAclRuleStatementRuleGroupReferenceStatementExcludedRule { /** - * The name of the rule to exclude. + * The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. */ name: string; } @@ -53658,6 +53994,29 @@ export namespace workspaces { switchRunningMode?: boolean; } + export interface DirectoryWorkspaceCreationProperties { + /** + * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + */ + customSecurityGroupId?: string; + /** + * The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + */ + defaultOu?: string; + /** + * Indicates whether internet access is enabled for your WorkSpaces. + */ + enableInternetAccess?: boolean; + /** + * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + */ + enableMaintenanceMode?: boolean; + /** + * Indicates whether users are local administrators of their WorkSpaces. + */ + userEnabledAsLocalAdministrator?: boolean; + } + export interface GetBundleComputeType { /** * The name of the bundle. You cannot combine this parameter with `bundleId`. @@ -53702,6 +54061,29 @@ export namespace workspaces { switchRunningMode: boolean; } + export interface GetDirectoryWorkspaceCreationProperties { + /** + * The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + */ + customSecurityGroupId: string; + /** + * The default organizational unit (OU) for your WorkSpace directories. + */ + defaultOu?: string; + /** + * Indicates whether internet access is enabled for your WorkSpaces. + */ + enableInternetAccess?: boolean; + /** + * Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + */ + enableMaintenanceMode?: boolean; + /** + * Indicates whether users are local administrators of their WorkSpaces. + */ + userEnabledAsLocalAdministrator?: boolean; + } + export interface IpGroupRule { /** * The description. diff --git a/sdk/nodejs/workspaces/directory.ts b/sdk/nodejs/workspaces/directory.ts index 16fbac34669..9cb7f6e1880 100644 --- a/sdk/nodejs/workspaces/directory.ts +++ b/sdk/nodejs/workspaces/directory.ts @@ -8,7 +8,7 @@ import * as enums from "../types/enums"; import * as utilities from "../utilities"; /** - * Provides a directory registration in AWS WorkSpaces Service + * Provides a WorkSpaces directory in AWS WorkSpaces Service. * * ## Example Usage * @@ -16,34 +16,61 @@ import * as utilities from "../utilities"; * import * as pulumi from "@pulumi/pulumi"; * import * as aws from "@pulumi/aws"; * - * const mainVpc = new aws.ec2.Vpc("mainVpc", {cidrBlock: "10.0.0.0/16"}); - * const private_a = new aws.ec2.Subnet("private-a", { - * vpcId: mainVpc.id, + * const exampleVpc = new aws.ec2.Vpc("exampleVpc", {cidrBlock: "10.0.0.0/16"}); + * const exampleA = new aws.ec2.Subnet("exampleA", { + * vpcId: exampleVpc.id, * availabilityZone: "us-east-1a", * cidrBlock: "10.0.0.0/24", * }); - * const private_b = new aws.ec2.Subnet("private-b", { - * vpcId: mainVpc.id, + * const exampleB = new aws.ec2.Subnet("exampleB", { + * vpcId: exampleVpc.id, * availabilityZone: "us-east-1b", * cidrBlock: "10.0.1.0/24", * }); - * const mainDirectory = new aws.directoryservice.Directory("mainDirectory", { + * const exampleC = new aws.ec2.Subnet("exampleC", { + * vpcId: exampleVpc.id, + * availabilityZone: "us-east-1c", + * cidrBlock: "10.0.2.0/24", + * }); + * const exampleD = new aws.ec2.Subnet("exampleD", { + * vpcId: exampleVpc.id, + * availabilityZone: "us-east-1d", + * cidrBlock: "10.0.3.0/24", + * }); + * const exampleDirectory = new aws.directoryservice.Directory("exampleDirectory", { * name: "corp.example.com", * password: "#S1ncerely", * size: "Small", * vpcSettings: { - * vpcId: mainVpc.id, + * vpcId: exampleVpc.id, * subnetIds: [ - * private_a.id, - * private_b.id, + * exampleA.id, + * exampleB.id, * ], * }, * }); - * const mainWorkspaces_directoryDirectory = new aws.workspaces.Directory("mainWorkspaces/directoryDirectory", { - * directoryId: mainDirectory.id, + * const exampleWorkspaces_directoryDirectory = new aws.workspaces.Directory("exampleWorkspaces/directoryDirectory", { + * directoryId: exampleDirectory.id, + * subnetIds: [ + * exampleC.id, + * exampleD.id, + * ], + * tags: { + * Example: true, + * }, * selfServicePermissions: { + * changeComputeType: true, * increaseVolumeSize: true, * rebuildWorkspace: true, + * restartWorkspace: true, + * switchRunningMode: true, + * }, + * workspaceCreationProperties: { + * customSecurityGroupId: aws_security_group.example.id, + * defaultOu: "OU=AWS,DC=Workgroup,DC=Example,DC=com", + * enableInternetAccess: true, + * enableMaintenanceMode: true, + * userEnabledAsLocalAdministrator: true, * }, * }); * ``` @@ -113,17 +140,21 @@ export class Directory extends pulumi.CustomResource { */ public /*out*/ readonly registrationCode!: pulumi.Output; /** - * The permissions to enable or disable self-service capabilities. + * Permissions to enable or disable self-service capabilities. Defined below. */ public readonly selfServicePermissions!: pulumi.Output; /** - * The identifiers of the subnets where the directory resides. + * The subnets identifiers where the workspaces are created. */ public readonly subnetIds!: pulumi.Output; /** * A map of tags assigned to the WorkSpaces directory. */ public readonly tags!: pulumi.Output<{[key: string]: string} | undefined>; + /** + * Default properties that are used for creating WorkSpaces. Defined below. + */ + public readonly workspaceCreationProperties!: pulumi.Output; /** * The identifier of the security group that is assigned to new WorkSpaces. */ @@ -153,6 +184,7 @@ export class Directory extends pulumi.CustomResource { inputs["selfServicePermissions"] = state ? state.selfServicePermissions : undefined; inputs["subnetIds"] = state ? state.subnetIds : undefined; inputs["tags"] = state ? state.tags : undefined; + inputs["workspaceCreationProperties"] = state ? state.workspaceCreationProperties : undefined; inputs["workspaceSecurityGroupId"] = state ? state.workspaceSecurityGroupId : undefined; } else { const args = argsOrState as DirectoryArgs | undefined; @@ -163,6 +195,7 @@ export class Directory extends pulumi.CustomResource { inputs["selfServicePermissions"] = args ? args.selfServicePermissions : undefined; inputs["subnetIds"] = args ? args.subnetIds : undefined; inputs["tags"] = args ? args.tags : undefined; + inputs["workspaceCreationProperties"] = args ? args.workspaceCreationProperties : undefined; inputs["alias"] = undefined /*out*/; inputs["customerUserName"] = undefined /*out*/; inputs["directoryName"] = undefined /*out*/; @@ -225,17 +258,21 @@ export interface DirectoryState { */ readonly registrationCode?: pulumi.Input; /** - * The permissions to enable or disable self-service capabilities. + * Permissions to enable or disable self-service capabilities. Defined below. */ readonly selfServicePermissions?: pulumi.Input; /** - * The identifiers of the subnets where the directory resides. + * The subnets identifiers where the workspaces are created. */ readonly subnetIds?: pulumi.Input[]>; /** * A map of tags assigned to the WorkSpaces directory. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Default properties that are used for creating WorkSpaces. Defined below. + */ + readonly workspaceCreationProperties?: pulumi.Input; /** * The identifier of the security group that is assigned to new WorkSpaces. */ @@ -251,15 +288,19 @@ export interface DirectoryArgs { */ readonly directoryId: pulumi.Input; /** - * The permissions to enable or disable self-service capabilities. + * Permissions to enable or disable self-service capabilities. Defined below. */ readonly selfServicePermissions?: pulumi.Input; /** - * The identifiers of the subnets where the directory resides. + * The subnets identifiers where the workspaces are created. */ readonly subnetIds?: pulumi.Input[]>; /** * A map of tags assigned to the WorkSpaces directory. */ readonly tags?: pulumi.Input<{[key: string]: pulumi.Input}>; + /** + * Default properties that are used for creating WorkSpaces. Defined below. + */ + readonly workspaceCreationProperties?: pulumi.Input; } diff --git a/sdk/nodejs/workspaces/getDirectory.ts b/sdk/nodejs/workspaces/getDirectory.ts index f4f158d4f7a..b5711f87c28 100644 --- a/sdk/nodejs/workspaces/getDirectory.ts +++ b/sdk/nodejs/workspaces/getDirectory.ts @@ -32,6 +32,7 @@ export function getDirectory(args: GetDirectoryArgs, opts?: pulumi.InvokeOptions return pulumi.runtime.invoke("aws:workspaces/getDirectory:getDirectory", { "directoryId": args.directoryId, "tags": args.tags, + "workspaceCreationProperties": args.workspaceCreationProperties, }, opts); } @@ -47,6 +48,10 @@ export interface GetDirectoryArgs { * A map of tags assigned to the WorkSpaces directory. */ readonly tags?: {[key: string]: string}; + /** + * The default properties that are used for creating WorkSpaces. Defined below. + */ + readonly workspaceCreationProperties?: inputs.workspaces.GetDirectoryWorkspaceCreationProperties; } /** @@ -103,7 +108,11 @@ export interface GetDirectoryResult { */ readonly tags?: {[key: string]: string}; /** - * The identifier of the security group that is assigned to new WorkSpaces. + * The default properties that are used for creating WorkSpaces. Defined below. + */ + readonly workspaceCreationProperties: outputs.workspaces.GetDirectoryWorkspaceCreationProperties; + /** + * The identifier of the security group that is assigned to new WorkSpaces. Defined below. */ readonly workspaceSecurityGroupId: string; } diff --git a/sdk/python/pulumi_aws/_inputs.py b/sdk/python/pulumi_aws/_inputs.py index 31656d92411..7e9c6740b4f 100644 --- a/sdk/python/pulumi_aws/_inputs.py +++ b/sdk/python/pulumi_aws/_inputs.py @@ -241,6 +241,7 @@ def __init__(__self__, *, route53resolver: Optional[pulumi.Input[str]] = None, s3: Optional[pulumi.Input[str]] = None, s3control: Optional[pulumi.Input[str]] = None, + s3outposts: Optional[pulumi.Input[str]] = None, sagemaker: Optional[pulumi.Input[str]] = None, sdb: Optional[pulumi.Input[str]] = None, secretsmanager: Optional[pulumi.Input[str]] = None, @@ -499,6 +500,8 @@ def __init__(__self__, *, pulumi.set(__self__, "s3", s3) if s3control is not None: pulumi.set(__self__, "s3control", s3control) + if s3outposts is not None: + pulumi.set(__self__, "s3outposts", s3outposts) if sagemaker is not None: pulumi.set(__self__, "sagemaker", sagemaker) if sdb is not None: @@ -1591,6 +1594,15 @@ def s3control(self) -> Optional[pulumi.Input[str]]: def s3control(self, value: Optional[pulumi.Input[str]]): pulumi.set(self, "s3control", value) + @property + @pulumi.getter + def s3outposts(self) -> Optional[pulumi.Input[str]]: + return pulumi.get(self, "s3outposts") + + @s3outposts.setter + def s3outposts(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "s3outposts", value) + @property @pulumi.getter def sagemaker(self) -> Optional[pulumi.Input[str]]: diff --git a/sdk/python/pulumi_aws/_tables.py b/sdk/python/pulumi_aws/_tables.py index 178c32348b1..b0d1751e572 100644 --- a/sdk/python/pulumi_aws/_tables.py +++ b/sdk/python/pulumi_aws/_tables.py @@ -35,6 +35,7 @@ "admin_user_lists": "adminUserLists", "administration_role_arn": "administrationRoleArn", "administrator_account": "administratorAccount", + "advanced_backup_settings": "advancedBackupSettings", "advanced_options": "advancedOptions", "advanced_security_options": "advancedSecurityOptions", "agent_arns": "agentArns", @@ -448,6 +449,7 @@ "default_cache_behavior": "defaultCacheBehavior", "default_capacity_provider_strategies": "defaultCapacityProviderStrategies", "default_client_id": "defaultClientId", + "default_code_repository": "defaultCodeRepository", "default_cooldown": "defaultCooldown", "default_instance_profile_arn": "defaultInstanceProfileArn", "default_network_acl_id": "defaultNetworkAclId", @@ -1837,6 +1839,7 @@ "view_expanded_text": "viewExpandedText", "view_original_text": "viewOriginalText", "viewer_certificate": "viewerCertificate", + "virtual_gateway_name": "virtualGatewayName", "virtual_interface_id": "virtualInterfaceId", "virtual_network_id": "virtualNetworkId", "virtual_router_name": "virtualRouterName", @@ -1889,6 +1892,7 @@ "workflow_execution_retention_period_in_days": "workflowExecutionRetentionPeriodInDays", "workflow_name": "workflowName", "workmail_actions": "workmailActions", + "workspace_creation_properties": "workspaceCreationProperties", "workspace_properties": "workspaceProperties", "workspace_security_group_id": "workspaceSecurityGroupId", "write_attributes": "writeAttributes", @@ -1934,6 +1938,7 @@ "adminUserLists": "admin_user_lists", "administrationRoleArn": "administration_role_arn", "administratorAccount": "administrator_account", + "advancedBackupSettings": "advanced_backup_settings", "advancedOptions": "advanced_options", "advancedSecurityOptions": "advanced_security_options", "agentArns": "agent_arns", @@ -2347,6 +2352,7 @@ "defaultCacheBehavior": "default_cache_behavior", "defaultCapacityProviderStrategies": "default_capacity_provider_strategies", "defaultClientId": "default_client_id", + "defaultCodeRepository": "default_code_repository", "defaultCooldown": "default_cooldown", "defaultInstanceProfileArn": "default_instance_profile_arn", "defaultNetworkAclId": "default_network_acl_id", @@ -3736,6 +3742,7 @@ "viewExpandedText": "view_expanded_text", "viewOriginalText": "view_original_text", "viewerCertificate": "viewer_certificate", + "virtualGatewayName": "virtual_gateway_name", "virtualInterfaceId": "virtual_interface_id", "virtualNetworkId": "virtual_network_id", "virtualRouterName": "virtual_router_name", @@ -3788,6 +3795,7 @@ "workflowExecutionRetentionPeriodInDays": "workflow_execution_retention_period_in_days", "workflowName": "workflow_name", "workmailActions": "workmail_actions", + "workspaceCreationProperties": "workspace_creation_properties", "workspaceProperties": "workspace_properties", "workspaceSecurityGroupId": "workspace_security_group_id", "writeAttributes": "write_attributes", diff --git a/sdk/python/pulumi_aws/apigatewayv2/route.py b/sdk/python/pulumi_aws/apigatewayv2/route.py index 70fd807a3ca..effd6c8ba2b 100644 --- a/sdk/python/pulumi_aws/apigatewayv2/route.py +++ b/sdk/python/pulumi_aws/apigatewayv2/route.py @@ -58,7 +58,7 @@ def __init__(__self__, :param pulumi.Input[str] model_selection_expression: The [model selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) for the route. :param pulumi.Input[str] operation_name: The operation name for the route. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_models: The request models for the route. - :param pulumi.Input[str] route_key: The route key for the route. + :param pulumi.Input[str] route_key: The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. :param pulumi.Input[str] route_response_selection_expression: The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. :param pulumi.Input[str] target: The target for the route. """ @@ -133,7 +133,7 @@ def get(resource_name: str, :param pulumi.Input[str] model_selection_expression: The [model selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-model-selection-expressions) for the route. :param pulumi.Input[str] operation_name: The operation name for the route. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] request_models: The request models for the route. - :param pulumi.Input[str] route_key: The route key for the route. + :param pulumi.Input[str] route_key: The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. :param pulumi.Input[str] route_response_selection_expression: The [route response selection expression](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-selection-expressions.html#apigateway-websocket-api-route-response-selection-expressions) for the route. :param pulumi.Input[str] target: The target for the route. """ @@ -225,7 +225,7 @@ def request_models(self) -> pulumi.Output[Optional[Mapping[str, str]]]: @pulumi.getter(name="routeKey") def route_key(self) -> pulumi.Output[str]: """ - The route key for the route. + The route key for the route. For HTTP APIs, the route key can be either `$default`, or a combination of an HTTP method and resource path, for example, `GET /pets`. """ return pulumi.get(self, "route_key") diff --git a/sdk/python/pulumi_aws/appmesh/__init__.py b/sdk/python/pulumi_aws/appmesh/__init__.py index 3947ce79b7d..a6f8abf342a 100644 --- a/sdk/python/pulumi_aws/appmesh/__init__.py +++ b/sdk/python/pulumi_aws/appmesh/__init__.py @@ -3,8 +3,10 @@ # *** Do not edit by hand unless you're certain you know what you are doing! *** # Export this package's modules as members: +from .gateway_route import * from .mesh import * from .route import * +from .virtual_gateway import * from .virtual_node import * from .virtual_router import * from .virtual_service import * diff --git a/sdk/python/pulumi_aws/appmesh/_inputs.py b/sdk/python/pulumi_aws/appmesh/_inputs.py index 1cbfa3579d3..e605f1a1e1c 100644 --- a/sdk/python/pulumi_aws/appmesh/_inputs.py +++ b/sdk/python/pulumi_aws/appmesh/_inputs.py @@ -9,6 +9,22 @@ from .. import _utilities, _tables __all__ = [ + 'GatewayRouteSpecArgs', + 'GatewayRouteSpecGrpcRouteArgs', + 'GatewayRouteSpecGrpcRouteActionArgs', + 'GatewayRouteSpecGrpcRouteActionTargetArgs', + 'GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs', + 'GatewayRouteSpecGrpcRouteMatchArgs', + 'GatewayRouteSpecHttp2RouteArgs', + 'GatewayRouteSpecHttp2RouteActionArgs', + 'GatewayRouteSpecHttp2RouteActionTargetArgs', + 'GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs', + 'GatewayRouteSpecHttp2RouteMatchArgs', + 'GatewayRouteSpecHttpRouteArgs', + 'GatewayRouteSpecHttpRouteActionArgs', + 'GatewayRouteSpecHttpRouteActionTargetArgs', + 'GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs', + 'GatewayRouteSpecHttpRouteMatchArgs', 'MeshSpecArgs', 'MeshSpecEgressFilterArgs', 'RouteSpecArgs', @@ -53,6 +69,24 @@ 'RouteSpecTcpRouteActionWeightedTargetArgs', 'RouteSpecTcpRouteTimeoutArgs', 'RouteSpecTcpRouteTimeoutIdleArgs', + 'VirtualGatewaySpecArgs', + 'VirtualGatewaySpecBackendDefaultsArgs', + 'VirtualGatewaySpecBackendDefaultsClientPolicyArgs', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs', + 'VirtualGatewaySpecListenerArgs', + 'VirtualGatewaySpecListenerHealthCheckArgs', + 'VirtualGatewaySpecListenerPortMappingArgs', + 'VirtualGatewaySpecListenerTlsArgs', + 'VirtualGatewaySpecListenerTlsCertificateArgs', + 'VirtualGatewaySpecListenerTlsCertificateAcmArgs', + 'VirtualGatewaySpecListenerTlsCertificateFileArgs', + 'VirtualGatewaySpecLoggingArgs', + 'VirtualGatewaySpecLoggingAccessLogArgs', + 'VirtualGatewaySpecLoggingAccessLogFileArgs', 'VirtualNodeSpecArgs', 'VirtualNodeSpecBackendArgs', 'VirtualNodeSpecBackendDefaultsArgs', @@ -104,68 +138,15 @@ ] @pulumi.input_type -class MeshSpecArgs: - def __init__(__self__, *, - egress_filter: Optional[pulumi.Input['MeshSpecEgressFilterArgs']] = None): - """ - :param pulumi.Input['MeshSpecEgressFilterArgs'] egress_filter: The egress filter rules for the service mesh. - """ - if egress_filter is not None: - pulumi.set(__self__, "egress_filter", egress_filter) - - @property - @pulumi.getter(name="egressFilter") - def egress_filter(self) -> Optional[pulumi.Input['MeshSpecEgressFilterArgs']]: - """ - The egress filter rules for the service mesh. - """ - return pulumi.get(self, "egress_filter") - - @egress_filter.setter - def egress_filter(self, value: Optional[pulumi.Input['MeshSpecEgressFilterArgs']]): - pulumi.set(self, "egress_filter", value) - - -@pulumi.input_type -class MeshSpecEgressFilterArgs: - def __init__(__self__, *, - type: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] type: The egress filter type. By default, the type is `DROP_ALL`. - Valid values are `ALLOW_ALL` and `DROP_ALL`. - """ - if type is not None: - pulumi.set(__self__, "type", type) - - @property - @pulumi.getter - def type(self) -> Optional[pulumi.Input[str]]: - """ - The egress filter type. By default, the type is `DROP_ALL`. - Valid values are `ALLOW_ALL` and `DROP_ALL`. - """ - return pulumi.get(self, "type") - - @type.setter - def type(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "type", value) - - -@pulumi.input_type -class RouteSpecArgs: +class GatewayRouteSpecArgs: def __init__(__self__, *, - grpc_route: Optional[pulumi.Input['RouteSpecGrpcRouteArgs']] = None, - http2_route: Optional[pulumi.Input['RouteSpecHttp2RouteArgs']] = None, - http_route: Optional[pulumi.Input['RouteSpecHttpRouteArgs']] = None, - priority: Optional[pulumi.Input[int]] = None, - tcp_route: Optional[pulumi.Input['RouteSpecTcpRouteArgs']] = None): + grpc_route: Optional[pulumi.Input['GatewayRouteSpecGrpcRouteArgs']] = None, + http2_route: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteArgs']] = None, + http_route: Optional[pulumi.Input['GatewayRouteSpecHttpRouteArgs']] = None): """ - :param pulumi.Input['RouteSpecGrpcRouteArgs'] grpc_route: The gRPC routing information for the route. - :param pulumi.Input['RouteSpecHttp2RouteArgs'] http2_route: The HTTP/2 routing information for the route. - :param pulumi.Input['RouteSpecHttpRouteArgs'] http_route: The HTTP routing information for the route. - :param pulumi.Input[int] priority: The priority for the route, between `0` and `1000`. - Routes are matched based on the specified value, where `0` is the highest priority. - :param pulumi.Input['RouteSpecTcpRouteArgs'] tcp_route: The TCP routing information for the route. + :param pulumi.Input['GatewayRouteSpecGrpcRouteArgs'] grpc_route: The specification of a gRPC gateway route. + :param pulumi.Input['GatewayRouteSpecHttp2RouteArgs'] http2_route: The specification of an HTTP/2 gateway route. + :param pulumi.Input['GatewayRouteSpecHttpRouteArgs'] http_route: The specification of an HTTP gateway route. """ if grpc_route is not None: pulumi.set(__self__, "grpc_route", grpc_route) @@ -173,709 +154,568 @@ def __init__(__self__, *, pulumi.set(__self__, "http2_route", http2_route) if http_route is not None: pulumi.set(__self__, "http_route", http_route) - if priority is not None: - pulumi.set(__self__, "priority", priority) - if tcp_route is not None: - pulumi.set(__self__, "tcp_route", tcp_route) @property @pulumi.getter(name="grpcRoute") - def grpc_route(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteArgs']]: + def grpc_route(self) -> Optional[pulumi.Input['GatewayRouteSpecGrpcRouteArgs']]: """ - The gRPC routing information for the route. + The specification of a gRPC gateway route. """ return pulumi.get(self, "grpc_route") @grpc_route.setter - def grpc_route(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteArgs']]): + def grpc_route(self, value: Optional[pulumi.Input['GatewayRouteSpecGrpcRouteArgs']]): pulumi.set(self, "grpc_route", value) @property @pulumi.getter(name="http2Route") - def http2_route(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteArgs']]: + def http2_route(self) -> Optional[pulumi.Input['GatewayRouteSpecHttp2RouteArgs']]: """ - The HTTP/2 routing information for the route. + The specification of an HTTP/2 gateway route. """ return pulumi.get(self, "http2_route") @http2_route.setter - def http2_route(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteArgs']]): + def http2_route(self, value: Optional[pulumi.Input['GatewayRouteSpecHttp2RouteArgs']]): pulumi.set(self, "http2_route", value) @property @pulumi.getter(name="httpRoute") - def http_route(self) -> Optional[pulumi.Input['RouteSpecHttpRouteArgs']]: + def http_route(self) -> Optional[pulumi.Input['GatewayRouteSpecHttpRouteArgs']]: """ - The HTTP routing information for the route. + The specification of an HTTP gateway route. """ return pulumi.get(self, "http_route") @http_route.setter - def http_route(self, value: Optional[pulumi.Input['RouteSpecHttpRouteArgs']]): + def http_route(self, value: Optional[pulumi.Input['GatewayRouteSpecHttpRouteArgs']]): pulumi.set(self, "http_route", value) - @property - @pulumi.getter - def priority(self) -> Optional[pulumi.Input[int]]: - """ - The priority for the route, between `0` and `1000`. - Routes are matched based on the specified value, where `0` is the highest priority. - """ - return pulumi.get(self, "priority") - - @priority.setter - def priority(self, value: Optional[pulumi.Input[int]]): - pulumi.set(self, "priority", value) - - @property - @pulumi.getter(name="tcpRoute") - def tcp_route(self) -> Optional[pulumi.Input['RouteSpecTcpRouteArgs']]: - """ - The TCP routing information for the route. - """ - return pulumi.get(self, "tcp_route") - - @tcp_route.setter - def tcp_route(self, value: Optional[pulumi.Input['RouteSpecTcpRouteArgs']]): - pulumi.set(self, "tcp_route", value) - @pulumi.input_type -class RouteSpecGrpcRouteArgs: +class GatewayRouteSpecGrpcRouteArgs: def __init__(__self__, *, - action: pulumi.Input['RouteSpecGrpcRouteActionArgs'], - match: pulumi.Input['RouteSpecGrpcRouteMatchArgs'], - retry_policy: Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']] = None, - timeout: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']] = None): + action: pulumi.Input['GatewayRouteSpecGrpcRouteActionArgs'], + match: pulumi.Input['GatewayRouteSpecGrpcRouteMatchArgs']): """ - :param pulumi.Input['RouteSpecGrpcRouteActionArgs'] action: The action to take if a match is determined. - :param pulumi.Input['RouteSpecGrpcRouteMatchArgs'] match: The criteria for determining an gRPC request match. - :param pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs'] retry_policy: The retry policy. - :param pulumi.Input['RouteSpecGrpcRouteTimeoutArgs'] timeout: The types of timeouts. + :param pulumi.Input['GatewayRouteSpecGrpcRouteActionArgs'] action: The action to take if a match is determined. + :param pulumi.Input['GatewayRouteSpecGrpcRouteMatchArgs'] match: The criteria for determining a request match. """ pulumi.set(__self__, "action", action) pulumi.set(__self__, "match", match) - if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) - if timeout is not None: - pulumi.set(__self__, "timeout", timeout) @property @pulumi.getter - def action(self) -> pulumi.Input['RouteSpecGrpcRouteActionArgs']: + def action(self) -> pulumi.Input['GatewayRouteSpecGrpcRouteActionArgs']: """ The action to take if a match is determined. """ return pulumi.get(self, "action") @action.setter - def action(self, value: pulumi.Input['RouteSpecGrpcRouteActionArgs']): + def action(self, value: pulumi.Input['GatewayRouteSpecGrpcRouteActionArgs']): pulumi.set(self, "action", value) @property @pulumi.getter - def match(self) -> pulumi.Input['RouteSpecGrpcRouteMatchArgs']: + def match(self) -> pulumi.Input['GatewayRouteSpecGrpcRouteMatchArgs']: """ - The criteria for determining an gRPC request match. + The criteria for determining a request match. """ return pulumi.get(self, "match") @match.setter - def match(self, value: pulumi.Input['RouteSpecGrpcRouteMatchArgs']): + def match(self, value: pulumi.Input['GatewayRouteSpecGrpcRouteMatchArgs']): pulumi.set(self, "match", value) - @property - @pulumi.getter(name="retryPolicy") - def retry_policy(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']]: + +@pulumi.input_type +class GatewayRouteSpecGrpcRouteActionArgs: + def __init__(__self__, *, + target: pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetArgs']): """ - The retry policy. + :param pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetArgs'] target: The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "retry_policy") - - @retry_policy.setter - def retry_policy(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']]): - pulumi.set(self, "retry_policy", value) + pulumi.set(__self__, "target", target) @property @pulumi.getter - def timeout(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']]: + def target(self) -> pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetArgs']: """ - The types of timeouts. + The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "timeout") + return pulumi.get(self, "target") - @timeout.setter - def timeout(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']]): - pulumi.set(self, "timeout", value) + @target.setter + def target(self, value: pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetArgs']): + pulumi.set(self, "target", value) @pulumi.input_type -class RouteSpecGrpcRouteActionArgs: +class GatewayRouteSpecGrpcRouteActionTargetArgs: def __init__(__self__, *, - weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]]): + virtual_service: pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs']): """ - :param pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + :param pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs'] virtual_service: The virtual service gateway route target. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + pulumi.set(__self__, "virtual_service", virtual_service) @property - @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]]: + @pulumi.getter(name="virtualService") + def virtual_service(self) -> pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs']: """ - The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + The virtual service gateway route target. """ - return pulumi.get(self, "weighted_targets") + return pulumi.get(self, "virtual_service") - @weighted_targets.setter - def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]]): - pulumi.set(self, "weighted_targets", value) + @virtual_service.setter + def virtual_service(self, value: pulumi.Input['GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs']): + pulumi.set(self, "virtual_service", value) @pulumi.input_type -class RouteSpecGrpcRouteActionWeightedTargetArgs: +class GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs: def __init__(__self__, *, - virtual_node: pulumi.Input[str], - weight: pulumi.Input[int]): + virtual_service_name: pulumi.Input[str]): """ - :param pulumi.Input[str] virtual_node: The virtual node to associate with the weighted target. - :param pulumi.Input[int] weight: The relative weight of the weighted target. An integer between 0 and 100. + :param pulumi.Input[str] virtual_service_name: The name of the virtual service that traffic is routed to. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + pulumi.set(__self__, "virtual_service_name", virtual_service_name) @property - @pulumi.getter(name="virtualNode") - def virtual_node(self) -> pulumi.Input[str]: + @pulumi.getter(name="virtualServiceName") + def virtual_service_name(self) -> pulumi.Input[str]: """ - The virtual node to associate with the weighted target. + The name of the virtual service that traffic is routed to. """ - return pulumi.get(self, "virtual_node") + return pulumi.get(self, "virtual_service_name") - @virtual_node.setter - def virtual_node(self, value: pulumi.Input[str]): - pulumi.set(self, "virtual_node", value) + @virtual_service_name.setter + def virtual_service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "virtual_service_name", value) + + +@pulumi.input_type +class GatewayRouteSpecGrpcRouteMatchArgs: + def __init__(__self__, *, + service_name: pulumi.Input[str]): + """ + :param pulumi.Input[str] service_name: The fully qualified domain name for the service to match from the request. + """ + pulumi.set(__self__, "service_name", service_name) @property - @pulumi.getter - def weight(self) -> pulumi.Input[int]: + @pulumi.getter(name="serviceName") + def service_name(self) -> pulumi.Input[str]: """ - The relative weight of the weighted target. An integer between 0 and 100. + The fully qualified domain name for the service to match from the request. """ - return pulumi.get(self, "weight") + return pulumi.get(self, "service_name") - @weight.setter - def weight(self, value: pulumi.Input[int]): - pulumi.set(self, "weight", value) + @service_name.setter + def service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "service_name", value) @pulumi.input_type -class RouteSpecGrpcRouteMatchArgs: +class GatewayRouteSpecHttp2RouteArgs: def __init__(__self__, *, - metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]]] = None, - method_name: Optional[pulumi.Input[str]] = None, - prefix: Optional[pulumi.Input[str]] = None, - service_name: Optional[pulumi.Input[str]] = None): + action: pulumi.Input['GatewayRouteSpecHttp2RouteActionArgs'], + match: pulumi.Input['GatewayRouteSpecHttp2RouteMatchArgs']): """ - :param pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]] metadatas: The data to match from the gRPC request. - :param pulumi.Input[str] method_name: The method name to match from the request. If you specify a name, you must also specify a `service_name`. - :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input[str] service_name: The fully qualified domain name for the service to match from the request. + :param pulumi.Input['GatewayRouteSpecHttp2RouteActionArgs'] action: The action to take if a match is determined. + :param pulumi.Input['GatewayRouteSpecHttp2RouteMatchArgs'] match: The criteria for determining a request match. """ - if metadatas is not None: - pulumi.set(__self__, "metadatas", metadatas) - if method_name is not None: - pulumi.set(__self__, "method_name", method_name) - if prefix is not None: - pulumi.set(__self__, "prefix", prefix) - if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "match", match) @property @pulumi.getter - def metadatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]]]: + def action(self) -> pulumi.Input['GatewayRouteSpecHttp2RouteActionArgs']: """ - The data to match from the gRPC request. + The action to take if a match is determined. """ - return pulumi.get(self, "metadatas") + return pulumi.get(self, "action") - @metadatas.setter - def metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]]]): - pulumi.set(self, "metadatas", value) + @action.setter + def action(self, value: pulumi.Input['GatewayRouteSpecHttp2RouteActionArgs']): + pulumi.set(self, "action", value) @property - @pulumi.getter(name="methodName") - def method_name(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter + def match(self) -> pulumi.Input['GatewayRouteSpecHttp2RouteMatchArgs']: """ - The method name to match from the request. If you specify a name, you must also specify a `service_name`. + The criteria for determining a request match. """ - return pulumi.get(self, "method_name") + return pulumi.get(self, "match") - @method_name.setter - def method_name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "method_name", value) + @match.setter + def match(self, value: pulumi.Input['GatewayRouteSpecHttp2RouteMatchArgs']): + pulumi.set(self, "match", value) + + +@pulumi.input_type +class GatewayRouteSpecHttp2RouteActionArgs: + def __init__(__self__, *, + target: pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetArgs']): + """ + :param pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetArgs'] target: The target that traffic is routed to when a request matches the gateway route. + """ + pulumi.set(__self__, "target", target) @property @pulumi.getter - def prefix(self) -> Optional[pulumi.Input[str]]: + def target(self) -> pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetArgs']: """ - The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "prefix") + return pulumi.get(self, "target") - @prefix.setter - def prefix(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "prefix", value) + @target.setter + def target(self, value: pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetArgs']): + pulumi.set(self, "target", value) - @property - @pulumi.getter(name="serviceName") - def service_name(self) -> Optional[pulumi.Input[str]]: + +@pulumi.input_type +class GatewayRouteSpecHttp2RouteActionTargetArgs: + def __init__(__self__, *, + virtual_service: pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs']): """ - The fully qualified domain name for the service to match from the request. + :param pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs'] virtual_service: The virtual service gateway route target. """ - return pulumi.get(self, "service_name") + pulumi.set(__self__, "virtual_service", virtual_service) - @service_name.setter - def service_name(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "service_name", value) + @property + @pulumi.getter(name="virtualService") + def virtual_service(self) -> pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs']: + """ + The virtual service gateway route target. + """ + return pulumi.get(self, "virtual_service") + + @virtual_service.setter + def virtual_service(self, value: pulumi.Input['GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs']): + pulumi.set(self, "virtual_service", value) @pulumi.input_type -class RouteSpecGrpcRouteMatchMetadataArgs: +class GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs: def __init__(__self__, *, - name: pulumi.Input[str], - invert: Optional[pulumi.Input[bool]] = None, - match: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs']] = None): + virtual_service_name: pulumi.Input[str]): """ - :param pulumi.Input[str] name: The name of the route. - :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` criteria. Default is `false`. - :param pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs'] match: The data to match from the request. + :param pulumi.Input[str] virtual_service_name: The name of the virtual service that traffic is routed to. """ - pulumi.set(__self__, "name", name) - if invert is not None: - pulumi.set(__self__, "invert", invert) - if match is not None: - pulumi.set(__self__, "match", match) + pulumi.set(__self__, "virtual_service_name", virtual_service_name) @property - @pulumi.getter - def name(self) -> pulumi.Input[str]: + @pulumi.getter(name="virtualServiceName") + def virtual_service_name(self) -> pulumi.Input[str]: """ - The name of the route. + The name of the virtual service that traffic is routed to. """ - return pulumi.get(self, "name") + return pulumi.get(self, "virtual_service_name") - @name.setter - def name(self, value: pulumi.Input[str]): - pulumi.set(self, "name", value) + @virtual_service_name.setter + def virtual_service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "virtual_service_name", value) - @property - @pulumi.getter - def invert(self) -> Optional[pulumi.Input[bool]]: + +@pulumi.input_type +class GatewayRouteSpecHttp2RouteMatchArgs: + def __init__(__self__, *, + prefix: pulumi.Input[str]): """ - If `true`, the match is on the opposite of the `match` criteria. Default is `false`. + :param pulumi.Input[str] prefix: Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. """ - return pulumi.get(self, "invert") - - @invert.setter - def invert(self, value: Optional[pulumi.Input[bool]]): - pulumi.set(self, "invert", value) + pulumi.set(__self__, "prefix", prefix) @property @pulumi.getter - def match(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs']]: + def prefix(self) -> pulumi.Input[str]: """ - The data to match from the request. + Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. """ - return pulumi.get(self, "match") + return pulumi.get(self, "prefix") - @match.setter - def match(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs']]): - pulumi.set(self, "match", value) + @prefix.setter + def prefix(self, value: pulumi.Input[str]): + pulumi.set(self, "prefix", value) @pulumi.input_type -class RouteSpecGrpcRouteMatchMetadataMatchArgs: +class GatewayRouteSpecHttpRouteArgs: def __init__(__self__, *, - exact: Optional[pulumi.Input[str]] = None, - prefix: Optional[pulumi.Input[str]] = None, - range: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']] = None, - regex: Optional[pulumi.Input[str]] = None, - suffix: Optional[pulumi.Input[str]] = None): + action: pulumi.Input['GatewayRouteSpecHttpRouteActionArgs'], + match: pulumi.Input['GatewayRouteSpecHttpRouteMatchArgs']): """ - :param pulumi.Input[str] exact: The value sent by the client must match the specified value exactly. - :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs'] range: The object that specifies the range of numbers that the value sent by the client must be included in. - :param pulumi.Input[str] regex: The value sent by the client must include the specified characters. - :param pulumi.Input[str] suffix: The value sent by the client must end with the specified characters. + :param pulumi.Input['GatewayRouteSpecHttpRouteActionArgs'] action: The action to take if a match is determined. + :param pulumi.Input['GatewayRouteSpecHttpRouteMatchArgs'] match: The criteria for determining a request match. """ - if exact is not None: - pulumi.set(__self__, "exact", exact) - if prefix is not None: - pulumi.set(__self__, "prefix", prefix) - if range is not None: - pulumi.set(__self__, "range", range) - if regex is not None: - pulumi.set(__self__, "regex", regex) - if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "match", match) @property @pulumi.getter - def exact(self) -> Optional[pulumi.Input[str]]: + def action(self) -> pulumi.Input['GatewayRouteSpecHttpRouteActionArgs']: """ - The value sent by the client must match the specified value exactly. + The action to take if a match is determined. """ - return pulumi.get(self, "exact") + return pulumi.get(self, "action") - @exact.setter - def exact(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "exact", value) + @action.setter + def action(self, value: pulumi.Input['GatewayRouteSpecHttpRouteActionArgs']): + pulumi.set(self, "action", value) @property @pulumi.getter - def prefix(self) -> Optional[pulumi.Input[str]]: + def match(self) -> pulumi.Input['GatewayRouteSpecHttpRouteMatchArgs']: """ - The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + The criteria for determining a request match. """ - return pulumi.get(self, "prefix") + return pulumi.get(self, "match") - @prefix.setter - def prefix(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "prefix", value) + @match.setter + def match(self, value: pulumi.Input['GatewayRouteSpecHttpRouteMatchArgs']): + pulumi.set(self, "match", value) - @property - @pulumi.getter - def range(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']]: + +@pulumi.input_type +class GatewayRouteSpecHttpRouteActionArgs: + def __init__(__self__, *, + target: pulumi.Input['GatewayRouteSpecHttpRouteActionTargetArgs']): """ - The object that specifies the range of numbers that the value sent by the client must be included in. + :param pulumi.Input['GatewayRouteSpecHttpRouteActionTargetArgs'] target: The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "range") - - @range.setter - def range(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']]): - pulumi.set(self, "range", value) + pulumi.set(__self__, "target", target) @property @pulumi.getter - def regex(self) -> Optional[pulumi.Input[str]]: + def target(self) -> pulumi.Input['GatewayRouteSpecHttpRouteActionTargetArgs']: """ - The value sent by the client must include the specified characters. + The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "regex") + return pulumi.get(self, "target") - @regex.setter - def regex(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "regex", value) + @target.setter + def target(self, value: pulumi.Input['GatewayRouteSpecHttpRouteActionTargetArgs']): + pulumi.set(self, "target", value) + + +@pulumi.input_type +class GatewayRouteSpecHttpRouteActionTargetArgs: + def __init__(__self__, *, + virtual_service: pulumi.Input['GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs']): + """ + :param pulumi.Input['GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs'] virtual_service: The virtual service gateway route target. + """ + pulumi.set(__self__, "virtual_service", virtual_service) @property - @pulumi.getter - def suffix(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="virtualService") + def virtual_service(self) -> pulumi.Input['GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs']: """ - The value sent by the client must end with the specified characters. + The virtual service gateway route target. """ - return pulumi.get(self, "suffix") + return pulumi.get(self, "virtual_service") - @suffix.setter - def suffix(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "suffix", value) + @virtual_service.setter + def virtual_service(self, value: pulumi.Input['GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs']): + pulumi.set(self, "virtual_service", value) @pulumi.input_type -class RouteSpecGrpcRouteMatchMetadataMatchRangeArgs: +class GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs: def __init__(__self__, *, - end: pulumi.Input[int], - start: pulumi.Input[int]): + virtual_service_name: pulumi.Input[str]): """ - :param pulumi.Input[int] end: The end of the range. - :param pulumi.Input[int] start: The start of the range. + :param pulumi.Input[str] virtual_service_name: The name of the virtual service that traffic is routed to. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + pulumi.set(__self__, "virtual_service_name", virtual_service_name) @property - @pulumi.getter - def end(self) -> pulumi.Input[int]: + @pulumi.getter(name="virtualServiceName") + def virtual_service_name(self) -> pulumi.Input[str]: """ - The end of the range. + The name of the virtual service that traffic is routed to. """ - return pulumi.get(self, "end") + return pulumi.get(self, "virtual_service_name") - @end.setter - def end(self, value: pulumi.Input[int]): - pulumi.set(self, "end", value) + @virtual_service_name.setter + def virtual_service_name(self, value: pulumi.Input[str]): + pulumi.set(self, "virtual_service_name", value) + + +@pulumi.input_type +class GatewayRouteSpecHttpRouteMatchArgs: + def __init__(__self__, *, + prefix: pulumi.Input[str]): + """ + :param pulumi.Input[str] prefix: Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + """ + pulumi.set(__self__, "prefix", prefix) @property @pulumi.getter - def start(self) -> pulumi.Input[int]: + def prefix(self) -> pulumi.Input[str]: """ - The start of the range. + Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. """ - return pulumi.get(self, "start") + return pulumi.get(self, "prefix") - @start.setter - def start(self, value: pulumi.Input[int]): - pulumi.set(self, "start", value) + @prefix.setter + def prefix(self, value: pulumi.Input[str]): + pulumi.set(self, "prefix", value) @pulumi.input_type -class RouteSpecGrpcRouteRetryPolicyArgs: +class MeshSpecArgs: def __init__(__self__, *, - max_retries: pulumi.Input[int], - per_retry_timeout: pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs'], - grpc_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - http_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, - tcp_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + egress_filter: Optional[pulumi.Input['MeshSpecEgressFilterArgs']] = None): """ - :param pulumi.Input[int] max_retries: The maximum number of retries. - :param pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: The per-retry timeout. - :param pulumi.Input[Sequence[pulumi.Input[str]]] grpc_retry_events: List of gRPC retry events. - Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. - :param pulumi.Input[Sequence[pulumi.Input[str]]] http_retry_events: List of HTTP retry events. - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - :param pulumi.Input[Sequence[pulumi.Input[str]]] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. + :param pulumi.Input['MeshSpecEgressFilterArgs'] egress_filter: The egress filter rules for the service mesh. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) - if grpc_retry_events is not None: - pulumi.set(__self__, "grpc_retry_events", grpc_retry_events) - if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) - if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + if egress_filter is not None: + pulumi.set(__self__, "egress_filter", egress_filter) @property - @pulumi.getter(name="maxRetries") - def max_retries(self) -> pulumi.Input[int]: + @pulumi.getter(name="egressFilter") + def egress_filter(self) -> Optional[pulumi.Input['MeshSpecEgressFilterArgs']]: """ - The maximum number of retries. + The egress filter rules for the service mesh. """ - return pulumi.get(self, "max_retries") + return pulumi.get(self, "egress_filter") - @max_retries.setter - def max_retries(self, value: pulumi.Input[int]): - pulumi.set(self, "max_retries", value) + @egress_filter.setter + def egress_filter(self, value: Optional[pulumi.Input['MeshSpecEgressFilterArgs']]): + pulumi.set(self, "egress_filter", value) - @property - @pulumi.getter(name="perRetryTimeout") - def per_retry_timeout(self) -> pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs']: + +@pulumi.input_type +class MeshSpecEgressFilterArgs: + def __init__(__self__, *, + type: Optional[pulumi.Input[str]] = None): """ - The per-retry timeout. + :param pulumi.Input[str] type: The egress filter type. By default, the type is `DROP_ALL`. + Valid values are `ALLOW_ALL` and `DROP_ALL`. """ - return pulumi.get(self, "per_retry_timeout") - - @per_retry_timeout.setter - def per_retry_timeout(self, value: pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs']): - pulumi.set(self, "per_retry_timeout", value) + if type is not None: + pulumi.set(__self__, "type", type) @property - @pulumi.getter(name="grpcRetryEvents") - def grpc_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + @pulumi.getter + def type(self) -> Optional[pulumi.Input[str]]: """ - List of gRPC retry events. - Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. + The egress filter type. By default, the type is `DROP_ALL`. + Valid values are `ALLOW_ALL` and `DROP_ALL`. """ - return pulumi.get(self, "grpc_retry_events") - - @grpc_retry_events.setter - def grpc_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "grpc_retry_events", value) + return pulumi.get(self, "type") - @property - @pulumi.getter(name="httpRetryEvents") - def http_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: - """ - List of HTTP retry events. - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - """ - return pulumi.get(self, "http_retry_events") - - @http_retry_events.setter - def http_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "http_retry_events", value) - - @property - @pulumi.getter(name="tcpRetryEvents") - def tcp_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: - """ - List of TCP retry events. The only valid value is `connection-error`. - """ - return pulumi.get(self, "tcp_retry_events") - - @tcp_retry_events.setter - def tcp_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): - pulumi.set(self, "tcp_retry_events", value) - - -@pulumi.input_type -class RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs: - def __init__(__self__, *, - unit: pulumi.Input[str], - value: pulumi.Input[int]): - """ - :param pulumi.Input[str] unit: Retry unit. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: Retry value. - """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) - - @property - @pulumi.getter - def unit(self) -> pulumi.Input[str]: - """ - Retry unit. Valid values: `ms`, `s`. - """ - return pulumi.get(self, "unit") - - @unit.setter - def unit(self, value: pulumi.Input[str]): - pulumi.set(self, "unit", value) - - @property - @pulumi.getter - def value(self) -> pulumi.Input[int]: - """ - Retry value. - """ - return pulumi.get(self, "value") - - @value.setter - def value(self, value: pulumi.Input[int]): - pulumi.set(self, "value", value) + @type.setter + def type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "type", value) @pulumi.input_type -class RouteSpecGrpcRouteTimeoutArgs: +class RouteSpecArgs: def __init__(__self__, *, - idle: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs']] = None, - per_request: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs']] = None): - """ - :param pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - :param pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs'] per_request: The per request timeout. - """ - if idle is not None: - pulumi.set(__self__, "idle", idle) - if per_request is not None: - pulumi.set(__self__, "per_request", per_request) - - @property - @pulumi.getter - def idle(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs']]: + grpc_route: Optional[pulumi.Input['RouteSpecGrpcRouteArgs']] = None, + http2_route: Optional[pulumi.Input['RouteSpecHttp2RouteArgs']] = None, + http_route: Optional[pulumi.Input['RouteSpecHttpRouteArgs']] = None, + priority: Optional[pulumi.Input[int]] = None, + tcp_route: Optional[pulumi.Input['RouteSpecTcpRouteArgs']] = None): """ - The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param pulumi.Input['RouteSpecGrpcRouteArgs'] grpc_route: The gRPC routing information for the route. + :param pulumi.Input['RouteSpecHttp2RouteArgs'] http2_route: The HTTP/2 routing information for the route. + :param pulumi.Input['RouteSpecHttpRouteArgs'] http_route: The HTTP routing information for the route. + :param pulumi.Input[int] priority: The priority for the route, between `0` and `1000`. + Routes are matched based on the specified value, where `0` is the highest priority. + :param pulumi.Input['RouteSpecTcpRouteArgs'] tcp_route: The TCP routing information for the route. """ - return pulumi.get(self, "idle") - - @idle.setter - def idle(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs']]): - pulumi.set(self, "idle", value) + if grpc_route is not None: + pulumi.set(__self__, "grpc_route", grpc_route) + if http2_route is not None: + pulumi.set(__self__, "http2_route", http2_route) + if http_route is not None: + pulumi.set(__self__, "http_route", http_route) + if priority is not None: + pulumi.set(__self__, "priority", priority) + if tcp_route is not None: + pulumi.set(__self__, "tcp_route", tcp_route) @property - @pulumi.getter(name="perRequest") - def per_request(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs']]: + @pulumi.getter(name="grpcRoute") + def grpc_route(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteArgs']]: """ - The per request timeout. + The gRPC routing information for the route. """ - return pulumi.get(self, "per_request") - - @per_request.setter - def per_request(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs']]): - pulumi.set(self, "per_request", value) - + return pulumi.get(self, "grpc_route") -@pulumi.input_type -class RouteSpecGrpcRouteTimeoutIdleArgs: - def __init__(__self__, *, - unit: pulumi.Input[str], - value: pulumi.Input[int]): - """ - :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. - """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + @grpc_route.setter + def grpc_route(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteArgs']]): + pulumi.set(self, "grpc_route", value) @property - @pulumi.getter - def unit(self) -> pulumi.Input[str]: + @pulumi.getter(name="http2Route") + def http2_route(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteArgs']]: """ - The unit of time. Valid values: `ms`, `s`. + The HTTP/2 routing information for the route. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "http2_route") - @unit.setter - def unit(self, value: pulumi.Input[str]): - pulumi.set(self, "unit", value) + @http2_route.setter + def http2_route(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteArgs']]): + pulumi.set(self, "http2_route", value) @property - @pulumi.getter - def value(self) -> pulumi.Input[int]: + @pulumi.getter(name="httpRoute") + def http_route(self) -> Optional[pulumi.Input['RouteSpecHttpRouteArgs']]: """ - The number of time units. Minimum value of `0`. + The HTTP routing information for the route. """ - return pulumi.get(self, "value") - - @value.setter - def value(self, value: pulumi.Input[int]): - pulumi.set(self, "value", value) - + return pulumi.get(self, "http_route") -@pulumi.input_type -class RouteSpecGrpcRouteTimeoutPerRequestArgs: - def __init__(__self__, *, - unit: pulumi.Input[str], - value: pulumi.Input[int]): - """ - :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. - """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + @http_route.setter + def http_route(self, value: Optional[pulumi.Input['RouteSpecHttpRouteArgs']]): + pulumi.set(self, "http_route", value) @property @pulumi.getter - def unit(self) -> pulumi.Input[str]: + def priority(self) -> Optional[pulumi.Input[int]]: """ - The unit of time. Valid values: `ms`, `s`. + The priority for the route, between `0` and `1000`. + Routes are matched based on the specified value, where `0` is the highest priority. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "priority") - @unit.setter - def unit(self, value: pulumi.Input[str]): - pulumi.set(self, "unit", value) + @priority.setter + def priority(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "priority", value) @property - @pulumi.getter - def value(self) -> pulumi.Input[int]: + @pulumi.getter(name="tcpRoute") + def tcp_route(self) -> Optional[pulumi.Input['RouteSpecTcpRouteArgs']]: """ - The number of time units. Minimum value of `0`. + The TCP routing information for the route. """ - return pulumi.get(self, "value") + return pulumi.get(self, "tcp_route") - @value.setter - def value(self, value: pulumi.Input[int]): - pulumi.set(self, "value", value) + @tcp_route.setter + def tcp_route(self, value: Optional[pulumi.Input['RouteSpecTcpRouteArgs']]): + pulumi.set(self, "tcp_route", value) @pulumi.input_type -class RouteSpecHttp2RouteArgs: +class RouteSpecGrpcRouteArgs: def __init__(__self__, *, - action: pulumi.Input['RouteSpecHttp2RouteActionArgs'], - match: pulumi.Input['RouteSpecHttp2RouteMatchArgs'], - retry_policy: Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs']] = None, - timeout: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutArgs']] = None): + action: pulumi.Input['RouteSpecGrpcRouteActionArgs'], + match: pulumi.Input['RouteSpecGrpcRouteMatchArgs'], + retry_policy: Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']] = None, + timeout: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']] = None): """ - :param pulumi.Input['RouteSpecHttp2RouteActionArgs'] action: The action to take if a match is determined. - :param pulumi.Input['RouteSpecHttp2RouteMatchArgs'] match: The criteria for determining an gRPC request match. - :param pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs'] retry_policy: The retry policy. - :param pulumi.Input['RouteSpecHttp2RouteTimeoutArgs'] timeout: The types of timeouts. + :param pulumi.Input['RouteSpecGrpcRouteActionArgs'] action: The action to take if a match is determined. + :param pulumi.Input['RouteSpecGrpcRouteMatchArgs'] match: The criteria for determining an gRPC request match. + :param pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs'] retry_policy: The retry policy. + :param pulumi.Input['RouteSpecGrpcRouteTimeoutArgs'] timeout: The types of timeouts. """ pulumi.set(__self__, "action", action) pulumi.set(__self__, "match", match) @@ -886,66 +726,66 @@ def __init__(__self__, *, @property @pulumi.getter - def action(self) -> pulumi.Input['RouteSpecHttp2RouteActionArgs']: + def action(self) -> pulumi.Input['RouteSpecGrpcRouteActionArgs']: """ The action to take if a match is determined. """ return pulumi.get(self, "action") @action.setter - def action(self, value: pulumi.Input['RouteSpecHttp2RouteActionArgs']): + def action(self, value: pulumi.Input['RouteSpecGrpcRouteActionArgs']): pulumi.set(self, "action", value) @property @pulumi.getter - def match(self) -> pulumi.Input['RouteSpecHttp2RouteMatchArgs']: + def match(self) -> pulumi.Input['RouteSpecGrpcRouteMatchArgs']: """ The criteria for determining an gRPC request match. """ return pulumi.get(self, "match") @match.setter - def match(self, value: pulumi.Input['RouteSpecHttp2RouteMatchArgs']): + def match(self, value: pulumi.Input['RouteSpecGrpcRouteMatchArgs']): pulumi.set(self, "match", value) @property @pulumi.getter(name="retryPolicy") - def retry_policy(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs']]: + def retry_policy(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']]: """ The retry policy. """ return pulumi.get(self, "retry_policy") @retry_policy.setter - def retry_policy(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs']]): + def retry_policy(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteRetryPolicyArgs']]): pulumi.set(self, "retry_policy", value) @property @pulumi.getter - def timeout(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutArgs']]: + def timeout(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']]: """ The types of timeouts. """ return pulumi.get(self, "timeout") @timeout.setter - def timeout(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutArgs']]): + def timeout(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutArgs']]): pulumi.set(self, "timeout", value) @pulumi.input_type -class RouteSpecHttp2RouteActionArgs: +class RouteSpecGrpcRouteActionArgs: def __init__(__self__, *, - weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]]): + weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]]): """ - :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. + :param pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ pulumi.set(__self__, "weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]]: + def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]]: """ The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. @@ -953,12 +793,12 @@ def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2 return pulumi.get(self, "weighted_targets") @weighted_targets.setter - def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]]): + def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteActionWeightedTargetArgs']]]): pulumi.set(self, "weighted_targets", value) @pulumi.input_type -class RouteSpecHttp2RouteActionWeightedTargetArgs: +class RouteSpecGrpcRouteActionWeightedTargetArgs: def __init__(__self__, *, virtual_node: pulumi.Input[str], weight: pulumi.Input[int]): @@ -995,87 +835,88 @@ def weight(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttp2RouteMatchArgs: +class RouteSpecGrpcRouteMatchArgs: def __init__(__self__, *, - prefix: pulumi.Input[str], - headers: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]]] = None, - method: Optional[pulumi.Input[str]] = None, - scheme: Optional[pulumi.Input[str]] = None): - """ - :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. + metadatas: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]]] = None, + method_name: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + service_name: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]] metadatas: The data to match from the gRPC request. + :param pulumi.Input[str] method_name: The method name to match from the request. If you specify a name, you must also specify a `service_name`. + :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]] headers: The client request headers to match on. - :param pulumi.Input[str] method: The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. - :param pulumi.Input[str] scheme: The client request header scheme to match on. Valid values: `http`, `https`. + :param pulumi.Input[str] service_name: The fully qualified domain name for the service to match from the request. """ - pulumi.set(__self__, "prefix", prefix) - if headers is not None: - pulumi.set(__self__, "headers", headers) - if method is not None: - pulumi.set(__self__, "method", method) - if scheme is not None: - pulumi.set(__self__, "scheme", scheme) + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if method_name is not None: + pulumi.set(__self__, "method_name", method_name) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) @property @pulumi.getter - def prefix(self) -> pulumi.Input[str]: + def metadatas(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]]]: """ - The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + The data to match from the gRPC request. """ - return pulumi.get(self, "prefix") + return pulumi.get(self, "metadatas") - @prefix.setter - def prefix(self, value: pulumi.Input[str]): - pulumi.set(self, "prefix", value) + @metadatas.setter + def metadatas(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecGrpcRouteMatchMetadataArgs']]]]): + pulumi.set(self, "metadatas", value) @property - @pulumi.getter - def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]]]: + @pulumi.getter(name="methodName") + def method_name(self) -> Optional[pulumi.Input[str]]: """ - The client request headers to match on. + The method name to match from the request. If you specify a name, you must also specify a `service_name`. """ - return pulumi.get(self, "headers") + return pulumi.get(self, "method_name") - @headers.setter - def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]]]): - pulumi.set(self, "headers", value) + @method_name.setter + def method_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "method_name", value) @property @pulumi.getter - def method(self) -> Optional[pulumi.Input[str]]: + def prefix(self) -> Optional[pulumi.Input[str]]: """ - The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. """ - return pulumi.get(self, "method") + return pulumi.get(self, "prefix") - @method.setter - def method(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "method", value) + @prefix.setter + def prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "prefix", value) @property - @pulumi.getter - def scheme(self) -> Optional[pulumi.Input[str]]: + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[pulumi.Input[str]]: """ - The client request header scheme to match on. Valid values: `http`, `https`. + The fully qualified domain name for the service to match from the request. """ - return pulumi.get(self, "scheme") + return pulumi.get(self, "service_name") - @scheme.setter - def scheme(self, value: Optional[pulumi.Input[str]]): - pulumi.set(self, "scheme", value) + @service_name.setter + def service_name(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "service_name", value) @pulumi.input_type -class RouteSpecHttp2RouteMatchHeaderArgs: +class RouteSpecGrpcRouteMatchMetadataArgs: def __init__(__self__, *, name: pulumi.Input[str], invert: Optional[pulumi.Input[bool]] = None, - match: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs']] = None): + match: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs']] = None): """ - :param pulumi.Input[str] name: A name for the HTTP header in the client request that will be matched on. - :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - :param pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs'] match: The method and value to match the header value sent with a request. Specify one match method. + :param pulumi.Input[str] name: The name of the route. + :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` criteria. Default is `false`. + :param pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs'] match: The data to match from the request. """ pulumi.set(__self__, "name", name) if invert is not None: @@ -1087,7 +928,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> pulumi.Input[str]: """ - A name for the HTTP header in the client request that will be matched on. + The name of the route. """ return pulumi.get(self, "name") @@ -1099,7 +940,7 @@ def name(self, value: pulumi.Input[str]): @pulumi.getter def invert(self) -> Optional[pulumi.Input[bool]]: """ - If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + If `true`, the match is on the opposite of the `match` criteria. Default is `false`. """ return pulumi.get(self, "invert") @@ -1109,30 +950,30 @@ def invert(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter - def match(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs']]: + def match(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs']]: """ - The method and value to match the header value sent with a request. Specify one match method. + The data to match from the request. """ return pulumi.get(self, "match") @match.setter - def match(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs']]): + def match(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchArgs']]): pulumi.set(self, "match", value) @pulumi.input_type -class RouteSpecHttp2RouteMatchHeaderMatchArgs: +class RouteSpecGrpcRouteMatchMetadataMatchArgs: def __init__(__self__, *, exact: Optional[pulumi.Input[str]] = None, prefix: Optional[pulumi.Input[str]] = None, - range: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']] = None, + range: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']] = None, regex: Optional[pulumi.Input[str]] = None, suffix: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] exact: The value sent by the client must match the specified value exactly. :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs'] range: The object that specifies the range of numbers that the value sent by the client must be included in. + :param pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs'] range: The object that specifies the range of numbers that the value sent by the client must be included in. :param pulumi.Input[str] regex: The value sent by the client must include the specified characters. :param pulumi.Input[str] suffix: The value sent by the client must end with the specified characters. """ @@ -1174,14 +1015,14 @@ def prefix(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter - def range(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']]: + def range(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']]: """ The object that specifies the range of numbers that the value sent by the client must be included in. """ return pulumi.get(self, "range") @range.setter - def range(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']]): + def range(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteMatchMetadataMatchRangeArgs']]): pulumi.set(self, "range", value) @property @@ -1210,7 +1051,7 @@ def suffix(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type -class RouteSpecHttp2RouteMatchHeaderMatchRangeArgs: +class RouteSpecGrpcRouteMatchMetadataMatchRangeArgs: def __init__(__self__, *, end: pulumi.Input[int], start: pulumi.Input[int]): @@ -1247,15 +1088,18 @@ def start(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttp2RouteRetryPolicyArgs: +class RouteSpecGrpcRouteRetryPolicyArgs: def __init__(__self__, *, max_retries: pulumi.Input[int], - per_retry_timeout: pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs'], + per_retry_timeout: pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs'], + grpc_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, http_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tcp_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[int] max_retries: The maximum number of retries. - :param pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: The per-retry timeout. + :param pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: The per-retry timeout. + :param pulumi.Input[Sequence[pulumi.Input[str]]] grpc_retry_events: List of gRPC retry events. + Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. :param pulumi.Input[Sequence[pulumi.Input[str]]] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). @@ -1263,6 +1107,8 @@ def __init__(__self__, *, """ pulumi.set(__self__, "max_retries", max_retries) pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + if grpc_retry_events is not None: + pulumi.set(__self__, "grpc_retry_events", grpc_retry_events) if http_retry_events is not None: pulumi.set(__self__, "http_retry_events", http_retry_events) if tcp_retry_events is not None: @@ -1282,16 +1128,29 @@ def max_retries(self, value: pulumi.Input[int]): @property @pulumi.getter(name="perRetryTimeout") - def per_retry_timeout(self) -> pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs']: + def per_retry_timeout(self) -> pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs']: """ The per-retry timeout. """ return pulumi.get(self, "per_retry_timeout") @per_retry_timeout.setter - def per_retry_timeout(self, value: pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs']): + def per_retry_timeout(self, value: pulumi.Input['RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs']): pulumi.set(self, "per_retry_timeout", value) + @property + @pulumi.getter(name="grpcRetryEvents") + def grpc_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of gRPC retry events. + Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. + """ + return pulumi.get(self, "grpc_retry_events") + + @grpc_retry_events.setter + def grpc_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "grpc_retry_events", value) + @property @pulumi.getter(name="httpRetryEvents") def http_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: @@ -1320,7 +1179,7 @@ def tcp_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st @pulumi.input_type -class RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs: +class RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs: def __init__(__self__, *, unit: pulumi.Input[str], value: pulumi.Input[int]): @@ -1357,13 +1216,13 @@ def value(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttp2RouteTimeoutArgs: +class RouteSpecGrpcRouteTimeoutArgs: def __init__(__self__, *, - idle: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs']] = None, - per_request: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs']] = None): + idle: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs']] = None, + per_request: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs']] = None): """ - :param pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - :param pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs'] per_request: The per request timeout. + :param pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs'] per_request: The per request timeout. """ if idle is not None: pulumi.set(__self__, "idle", idle) @@ -1372,31 +1231,31 @@ def __init__(__self__, *, @property @pulumi.getter - def idle(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs']]: + def idle(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs']]: """ The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. """ return pulumi.get(self, "idle") @idle.setter - def idle(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs']]): + def idle(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutIdleArgs']]): pulumi.set(self, "idle", value) @property @pulumi.getter(name="perRequest") - def per_request(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs']]: + def per_request(self) -> Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs']]: """ The per request timeout. """ return pulumi.get(self, "per_request") @per_request.setter - def per_request(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs']]): + def per_request(self, value: Optional[pulumi.Input['RouteSpecGrpcRouteTimeoutPerRequestArgs']]): pulumi.set(self, "per_request", value) @pulumi.input_type -class RouteSpecHttp2RouteTimeoutIdleArgs: +class RouteSpecGrpcRouteTimeoutIdleArgs: def __init__(__self__, *, unit: pulumi.Input[str], value: pulumi.Input[int]): @@ -1433,7 +1292,7 @@ def value(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttp2RouteTimeoutPerRequestArgs: +class RouteSpecGrpcRouteTimeoutPerRequestArgs: def __init__(__self__, *, unit: pulumi.Input[str], value: pulumi.Input[int]): @@ -1470,17 +1329,17 @@ def value(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttpRouteArgs: +class RouteSpecHttp2RouteArgs: def __init__(__self__, *, - action: pulumi.Input['RouteSpecHttpRouteActionArgs'], - match: pulumi.Input['RouteSpecHttpRouteMatchArgs'], - retry_policy: Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs']] = None, - timeout: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutArgs']] = None): + action: pulumi.Input['RouteSpecHttp2RouteActionArgs'], + match: pulumi.Input['RouteSpecHttp2RouteMatchArgs'], + retry_policy: Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs']] = None, + timeout: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutArgs']] = None): """ - :param pulumi.Input['RouteSpecHttpRouteActionArgs'] action: The action to take if a match is determined. - :param pulumi.Input['RouteSpecHttpRouteMatchArgs'] match: The criteria for determining an HTTP request match. - :param pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs'] retry_policy: The retry policy. - :param pulumi.Input['RouteSpecHttpRouteTimeoutArgs'] timeout: The types of timeouts. + :param pulumi.Input['RouteSpecHttp2RouteActionArgs'] action: The action to take if a match is determined. + :param pulumi.Input['RouteSpecHttp2RouteMatchArgs'] match: The criteria for determining an gRPC request match. + :param pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs'] retry_policy: The retry policy. + :param pulumi.Input['RouteSpecHttp2RouteTimeoutArgs'] timeout: The types of timeouts. """ pulumi.set(__self__, "action", action) pulumi.set(__self__, "match", match) @@ -1491,66 +1350,66 @@ def __init__(__self__, *, @property @pulumi.getter - def action(self) -> pulumi.Input['RouteSpecHttpRouteActionArgs']: + def action(self) -> pulumi.Input['RouteSpecHttp2RouteActionArgs']: """ The action to take if a match is determined. """ return pulumi.get(self, "action") @action.setter - def action(self, value: pulumi.Input['RouteSpecHttpRouteActionArgs']): + def action(self, value: pulumi.Input['RouteSpecHttp2RouteActionArgs']): pulumi.set(self, "action", value) @property @pulumi.getter - def match(self) -> pulumi.Input['RouteSpecHttpRouteMatchArgs']: + def match(self) -> pulumi.Input['RouteSpecHttp2RouteMatchArgs']: """ - The criteria for determining an HTTP request match. + The criteria for determining an gRPC request match. """ return pulumi.get(self, "match") @match.setter - def match(self, value: pulumi.Input['RouteSpecHttpRouteMatchArgs']): + def match(self, value: pulumi.Input['RouteSpecHttp2RouteMatchArgs']): pulumi.set(self, "match", value) @property @pulumi.getter(name="retryPolicy") - def retry_policy(self) -> Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs']]: + def retry_policy(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs']]: """ The retry policy. """ return pulumi.get(self, "retry_policy") @retry_policy.setter - def retry_policy(self, value: Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs']]): + def retry_policy(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteRetryPolicyArgs']]): pulumi.set(self, "retry_policy", value) @property @pulumi.getter - def timeout(self) -> Optional[pulumi.Input['RouteSpecHttpRouteTimeoutArgs']]: + def timeout(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutArgs']]: """ The types of timeouts. """ return pulumi.get(self, "timeout") @timeout.setter - def timeout(self, value: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutArgs']]): + def timeout(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutArgs']]): pulumi.set(self, "timeout", value) @pulumi.input_type -class RouteSpecHttpRouteActionArgs: +class RouteSpecHttp2RouteActionArgs: def __init__(__self__, *, - weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]]): + weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]]): """ - :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. + :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ pulumi.set(__self__, "weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]]: + def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]]: """ The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. @@ -1558,12 +1417,12 @@ def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpR return pulumi.get(self, "weighted_targets") @weighted_targets.setter - def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]]): + def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteActionWeightedTargetArgs']]]): pulumi.set(self, "weighted_targets", value) @pulumi.input_type -class RouteSpecHttpRouteActionWeightedTargetArgs: +class RouteSpecHttp2RouteActionWeightedTargetArgs: def __init__(__self__, *, virtual_node: pulumi.Input[str], weight: pulumi.Input[int]): @@ -1600,16 +1459,16 @@ def weight(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttpRouteMatchArgs: +class RouteSpecHttp2RouteMatchArgs: def __init__(__self__, *, prefix: pulumi.Input[str], - headers: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]]] = None, + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]]] = None, method: Optional[pulumi.Input[str]] = None, scheme: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]] headers: The client request headers to match on. + :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]] headers: The client request headers to match on. :param pulumi.Input[str] method: The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. :param pulumi.Input[str] scheme: The client request header scheme to match on. Valid values: `http`, `https`. """ @@ -1636,14 +1495,14 @@ def prefix(self, value: pulumi.Input[str]): @property @pulumi.getter - def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]]]: + def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]]]: """ The client request headers to match on. """ return pulumi.get(self, "headers") @headers.setter - def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]]]): + def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttp2RouteMatchHeaderArgs']]]]): pulumi.set(self, "headers", value) @property @@ -1672,15 +1531,15 @@ def scheme(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type -class RouteSpecHttpRouteMatchHeaderArgs: +class RouteSpecHttp2RouteMatchHeaderArgs: def __init__(__self__, *, name: pulumi.Input[str], invert: Optional[pulumi.Input[bool]] = None, - match: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs']] = None): + match: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs']] = None): """ :param pulumi.Input[str] name: A name for the HTTP header in the client request that will be matched on. :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - :param pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs'] match: The method and value to match the header value sent with a request. Specify one match method. + :param pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs'] match: The method and value to match the header value sent with a request. Specify one match method. """ pulumi.set(__self__, "name", name) if invert is not None: @@ -1714,30 +1573,30 @@ def invert(self, value: Optional[pulumi.Input[bool]]): @property @pulumi.getter - def match(self) -> Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs']]: + def match(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs']]: """ The method and value to match the header value sent with a request. Specify one match method. """ return pulumi.get(self, "match") @match.setter - def match(self, value: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs']]): + def match(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchArgs']]): pulumi.set(self, "match", value) @pulumi.input_type -class RouteSpecHttpRouteMatchHeaderMatchArgs: +class RouteSpecHttp2RouteMatchHeaderMatchArgs: def __init__(__self__, *, exact: Optional[pulumi.Input[str]] = None, prefix: Optional[pulumi.Input[str]] = None, - range: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']] = None, + range: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']] = None, regex: Optional[pulumi.Input[str]] = None, suffix: Optional[pulumi.Input[str]] = None): """ :param pulumi.Input[str] exact: The value sent by the client must match the specified value exactly. :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs'] range: The object that specifies the range of numbers that the value sent by the client must be included in. + :param pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs'] range: The object that specifies the range of numbers that the value sent by the client must be included in. :param pulumi.Input[str] regex: The value sent by the client must include the specified characters. :param pulumi.Input[str] suffix: The value sent by the client must end with the specified characters. """ @@ -1779,14 +1638,14 @@ def prefix(self, value: Optional[pulumi.Input[str]]): @property @pulumi.getter - def range(self) -> Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']]: + def range(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']]: """ The object that specifies the range of numbers that the value sent by the client must be included in. """ return pulumi.get(self, "range") @range.setter - def range(self, value: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']]): + def range(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteMatchHeaderMatchRangeArgs']]): pulumi.set(self, "range", value) @property @@ -1815,7 +1674,7 @@ def suffix(self, value: Optional[pulumi.Input[str]]): @pulumi.input_type -class RouteSpecHttpRouteMatchHeaderMatchRangeArgs: +class RouteSpecHttp2RouteMatchHeaderMatchRangeArgs: def __init__(__self__, *, end: pulumi.Input[int], start: pulumi.Input[int]): @@ -1852,15 +1711,15 @@ def start(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttpRouteRetryPolicyArgs: +class RouteSpecHttp2RouteRetryPolicyArgs: def __init__(__self__, *, max_retries: pulumi.Input[int], - per_retry_timeout: pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs'], + per_retry_timeout: pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs'], http_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tcp_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): """ :param pulumi.Input[int] max_retries: The maximum number of retries. - :param pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: The per-retry timeout. + :param pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: The per-retry timeout. :param pulumi.Input[Sequence[pulumi.Input[str]]] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). @@ -1887,14 +1746,14 @@ def max_retries(self, value: pulumi.Input[int]): @property @pulumi.getter(name="perRetryTimeout") - def per_retry_timeout(self) -> pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs']: + def per_retry_timeout(self) -> pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs']: """ The per-retry timeout. """ return pulumi.get(self, "per_retry_timeout") @per_retry_timeout.setter - def per_retry_timeout(self, value: pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs']): + def per_retry_timeout(self, value: pulumi.Input['RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs']): pulumi.set(self, "per_retry_timeout", value) @property @@ -1925,7 +1784,7 @@ def tcp_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[st @pulumi.input_type -class RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs: +class RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs: def __init__(__self__, *, unit: pulumi.Input[str], value: pulumi.Input[int]): @@ -1962,275 +1821,1543 @@ def value(self, value: pulumi.Input[int]): @pulumi.input_type -class RouteSpecHttpRouteTimeoutArgs: +class RouteSpecHttp2RouteTimeoutArgs: def __init__(__self__, *, - idle: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs']] = None, - per_request: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs']] = None): + idle: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs']] = None, + per_request: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs']] = None): """ - :param pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - :param pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs'] per_request: The per request timeout. + :param pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs'] per_request: The per request timeout. + """ + if idle is not None: + pulumi.set(__self__, "idle", idle) + if per_request is not None: + pulumi.set(__self__, "per_request", per_request) + + @property + @pulumi.getter + def idle(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs']]: + """ + The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + """ + return pulumi.get(self, "idle") + + @idle.setter + def idle(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutIdleArgs']]): + pulumi.set(self, "idle", value) + + @property + @pulumi.getter(name="perRequest") + def per_request(self) -> Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs']]: + """ + The per request timeout. + """ + return pulumi.get(self, "per_request") + + @per_request.setter + def per_request(self, value: Optional[pulumi.Input['RouteSpecHttp2RouteTimeoutPerRequestArgs']]): + pulumi.set(self, "per_request", value) + + +@pulumi.input_type +class RouteSpecHttp2RouteTimeoutIdleArgs: + def __init__(__self__, *, + unit: pulumi.Input[str], + value: pulumi.Input[int]): + """ + :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. + :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input[str]: + """ + The unit of time. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input[str]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The number of time units. Minimum value of `0`. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class RouteSpecHttp2RouteTimeoutPerRequestArgs: + def __init__(__self__, *, + unit: pulumi.Input[str], + value: pulumi.Input[int]): + """ + :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. + :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input[str]: + """ + The unit of time. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input[str]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The number of time units. Minimum value of `0`. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class RouteSpecHttpRouteArgs: + def __init__(__self__, *, + action: pulumi.Input['RouteSpecHttpRouteActionArgs'], + match: pulumi.Input['RouteSpecHttpRouteMatchArgs'], + retry_policy: Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs']] = None, + timeout: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutArgs']] = None): + """ + :param pulumi.Input['RouteSpecHttpRouteActionArgs'] action: The action to take if a match is determined. + :param pulumi.Input['RouteSpecHttpRouteMatchArgs'] match: The criteria for determining an HTTP request match. + :param pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs'] retry_policy: The retry policy. + :param pulumi.Input['RouteSpecHttpRouteTimeoutArgs'] timeout: The types of timeouts. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "match", match) + if retry_policy is not None: + pulumi.set(__self__, "retry_policy", retry_policy) + if timeout is not None: + pulumi.set(__self__, "timeout", timeout) + + @property + @pulumi.getter + def action(self) -> pulumi.Input['RouteSpecHttpRouteActionArgs']: + """ + The action to take if a match is determined. + """ + return pulumi.get(self, "action") + + @action.setter + def action(self, value: pulumi.Input['RouteSpecHttpRouteActionArgs']): + pulumi.set(self, "action", value) + + @property + @pulumi.getter + def match(self) -> pulumi.Input['RouteSpecHttpRouteMatchArgs']: + """ + The criteria for determining an HTTP request match. + """ + return pulumi.get(self, "match") + + @match.setter + def match(self, value: pulumi.Input['RouteSpecHttpRouteMatchArgs']): + pulumi.set(self, "match", value) + + @property + @pulumi.getter(name="retryPolicy") + def retry_policy(self) -> Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs']]: + """ + The retry policy. + """ + return pulumi.get(self, "retry_policy") + + @retry_policy.setter + def retry_policy(self, value: Optional[pulumi.Input['RouteSpecHttpRouteRetryPolicyArgs']]): + pulumi.set(self, "retry_policy", value) + + @property + @pulumi.getter + def timeout(self) -> Optional[pulumi.Input['RouteSpecHttpRouteTimeoutArgs']]: + """ + The types of timeouts. + """ + return pulumi.get(self, "timeout") + + @timeout.setter + def timeout(self, value: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutArgs']]): + pulumi.set(self, "timeout", value) + + +@pulumi.input_type +class RouteSpecHttpRouteActionArgs: + def __init__(__self__, *, + weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + pulumi.set(__self__, "weighted_targets", weighted_targets) + + @property + @pulumi.getter(name="weightedTargets") + def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]]: + """ + The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + return pulumi.get(self, "weighted_targets") + + @weighted_targets.setter + def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteActionWeightedTargetArgs']]]): + pulumi.set(self, "weighted_targets", value) + + +@pulumi.input_type +class RouteSpecHttpRouteActionWeightedTargetArgs: + def __init__(__self__, *, + virtual_node: pulumi.Input[str], + weight: pulumi.Input[int]): + """ + :param pulumi.Input[str] virtual_node: The virtual node to associate with the weighted target. + :param pulumi.Input[int] weight: The relative weight of the weighted target. An integer between 0 and 100. + """ + pulumi.set(__self__, "virtual_node", virtual_node) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter(name="virtualNode") + def virtual_node(self) -> pulumi.Input[str]: + """ + The virtual node to associate with the weighted target. + """ + return pulumi.get(self, "virtual_node") + + @virtual_node.setter + def virtual_node(self, value: pulumi.Input[str]): + pulumi.set(self, "virtual_node", value) + + @property + @pulumi.getter + def weight(self) -> pulumi.Input[int]: + """ + The relative weight of the weighted target. An integer between 0 and 100. + """ + return pulumi.get(self, "weight") + + @weight.setter + def weight(self, value: pulumi.Input[int]): + pulumi.set(self, "weight", value) + + +@pulumi.input_type +class RouteSpecHttpRouteMatchArgs: + def __init__(__self__, *, + prefix: pulumi.Input[str], + headers: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]]] = None, + method: Optional[pulumi.Input[str]] = None, + scheme: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]] headers: The client request headers to match on. + :param pulumi.Input[str] method: The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + :param pulumi.Input[str] scheme: The client request header scheme to match on. Valid values: `http`, `https`. + """ + pulumi.set(__self__, "prefix", prefix) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if method is not None: + pulumi.set(__self__, "method", method) + if scheme is not None: + pulumi.set(__self__, "scheme", scheme) + + @property + @pulumi.getter + def prefix(self) -> pulumi.Input[str]: + """ + The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + """ + return pulumi.get(self, "prefix") + + @prefix.setter + def prefix(self, value: pulumi.Input[str]): + pulumi.set(self, "prefix", value) + + @property + @pulumi.getter + def headers(self) -> Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]]]: + """ + The client request headers to match on. + """ + return pulumi.get(self, "headers") + + @headers.setter + def headers(self, value: Optional[pulumi.Input[Sequence[pulumi.Input['RouteSpecHttpRouteMatchHeaderArgs']]]]): + pulumi.set(self, "headers", value) + + @property + @pulumi.getter + def method(self) -> Optional[pulumi.Input[str]]: + """ + The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + """ + return pulumi.get(self, "method") + + @method.setter + def method(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "method", value) + + @property + @pulumi.getter + def scheme(self) -> Optional[pulumi.Input[str]]: + """ + The client request header scheme to match on. Valid values: `http`, `https`. + """ + return pulumi.get(self, "scheme") + + @scheme.setter + def scheme(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "scheme", value) + + +@pulumi.input_type +class RouteSpecHttpRouteMatchHeaderArgs: + def __init__(__self__, *, + name: pulumi.Input[str], + invert: Optional[pulumi.Input[bool]] = None, + match: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs']] = None): + """ + :param pulumi.Input[str] name: A name for the HTTP header in the client request that will be matched on. + :param pulumi.Input[bool] invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + :param pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs'] match: The method and value to match the header value sent with a request. Specify one match method. + """ + pulumi.set(__self__, "name", name) + if invert is not None: + pulumi.set(__self__, "invert", invert) + if match is not None: + pulumi.set(__self__, "match", match) + + @property + @pulumi.getter + def name(self) -> pulumi.Input[str]: + """ + A name for the HTTP header in the client request that will be matched on. + """ + return pulumi.get(self, "name") + + @name.setter + def name(self, value: pulumi.Input[str]): + pulumi.set(self, "name", value) + + @property + @pulumi.getter + def invert(self) -> Optional[pulumi.Input[bool]]: + """ + If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + """ + return pulumi.get(self, "invert") + + @invert.setter + def invert(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "invert", value) + + @property + @pulumi.getter + def match(self) -> Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs']]: + """ + The method and value to match the header value sent with a request. Specify one match method. + """ + return pulumi.get(self, "match") + + @match.setter + def match(self, value: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchArgs']]): + pulumi.set(self, "match", value) + + +@pulumi.input_type +class RouteSpecHttpRouteMatchHeaderMatchArgs: + def __init__(__self__, *, + exact: Optional[pulumi.Input[str]] = None, + prefix: Optional[pulumi.Input[str]] = None, + range: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']] = None, + regex: Optional[pulumi.Input[str]] = None, + suffix: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[str] exact: The value sent by the client must match the specified value exactly. + :param pulumi.Input[str] prefix: The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs'] range: The object that specifies the range of numbers that the value sent by the client must be included in. + :param pulumi.Input[str] regex: The value sent by the client must include the specified characters. + :param pulumi.Input[str] suffix: The value sent by the client must end with the specified characters. + """ + if exact is not None: + pulumi.set(__self__, "exact", exact) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + if range is not None: + pulumi.set(__self__, "range", range) + if regex is not None: + pulumi.set(__self__, "regex", regex) + if suffix is not None: + pulumi.set(__self__, "suffix", suffix) + + @property + @pulumi.getter + def exact(self) -> Optional[pulumi.Input[str]]: + """ + The value sent by the client must match the specified value exactly. + """ + return pulumi.get(self, "exact") + + @exact.setter + def exact(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "exact", value) + + @property + @pulumi.getter + def prefix(self) -> Optional[pulumi.Input[str]]: + """ + The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + """ + return pulumi.get(self, "prefix") + + @prefix.setter + def prefix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "prefix", value) + + @property + @pulumi.getter + def range(self) -> Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']]: + """ + The object that specifies the range of numbers that the value sent by the client must be included in. + """ + return pulumi.get(self, "range") + + @range.setter + def range(self, value: Optional[pulumi.Input['RouteSpecHttpRouteMatchHeaderMatchRangeArgs']]): + pulumi.set(self, "range", value) + + @property + @pulumi.getter + def regex(self) -> Optional[pulumi.Input[str]]: + """ + The value sent by the client must include the specified characters. + """ + return pulumi.get(self, "regex") + + @regex.setter + def regex(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "regex", value) + + @property + @pulumi.getter + def suffix(self) -> Optional[pulumi.Input[str]]: + """ + The value sent by the client must end with the specified characters. + """ + return pulumi.get(self, "suffix") + + @suffix.setter + def suffix(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "suffix", value) + + +@pulumi.input_type +class RouteSpecHttpRouteMatchHeaderMatchRangeArgs: + def __init__(__self__, *, + end: pulumi.Input[int], + start: pulumi.Input[int]): + """ + :param pulumi.Input[int] end: The end of the range. + :param pulumi.Input[int] start: The start of the range. + """ + pulumi.set(__self__, "end", end) + pulumi.set(__self__, "start", start) + + @property + @pulumi.getter + def end(self) -> pulumi.Input[int]: + """ + The end of the range. + """ + return pulumi.get(self, "end") + + @end.setter + def end(self, value: pulumi.Input[int]): + pulumi.set(self, "end", value) + + @property + @pulumi.getter + def start(self) -> pulumi.Input[int]: + """ + The start of the range. + """ + return pulumi.get(self, "start") + + @start.setter + def start(self, value: pulumi.Input[int]): + pulumi.set(self, "start", value) + + +@pulumi.input_type +class RouteSpecHttpRouteRetryPolicyArgs: + def __init__(__self__, *, + max_retries: pulumi.Input[int], + per_retry_timeout: pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs'], + http_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, + tcp_retry_events: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None): + """ + :param pulumi.Input[int] max_retries: The maximum number of retries. + :param pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs'] per_retry_timeout: The per-retry timeout. + :param pulumi.Input[Sequence[pulumi.Input[str]]] http_retry_events: List of HTTP retry events. + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + :param pulumi.Input[Sequence[pulumi.Input[str]]] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. + """ + pulumi.set(__self__, "max_retries", max_retries) + pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + if http_retry_events is not None: + pulumi.set(__self__, "http_retry_events", http_retry_events) + if tcp_retry_events is not None: + pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + + @property + @pulumi.getter(name="maxRetries") + def max_retries(self) -> pulumi.Input[int]: + """ + The maximum number of retries. + """ + return pulumi.get(self, "max_retries") + + @max_retries.setter + def max_retries(self, value: pulumi.Input[int]): + pulumi.set(self, "max_retries", value) + + @property + @pulumi.getter(name="perRetryTimeout") + def per_retry_timeout(self) -> pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs']: + """ + The per-retry timeout. + """ + return pulumi.get(self, "per_retry_timeout") + + @per_retry_timeout.setter + def per_retry_timeout(self, value: pulumi.Input['RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs']): + pulumi.set(self, "per_retry_timeout", value) + + @property + @pulumi.getter(name="httpRetryEvents") + def http_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of HTTP retry events. + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + """ + return pulumi.get(self, "http_retry_events") + + @http_retry_events.setter + def http_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "http_retry_events", value) + + @property + @pulumi.getter(name="tcpRetryEvents") + def tcp_retry_events(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]: + """ + List of TCP retry events. The only valid value is `connection-error`. + """ + return pulumi.get(self, "tcp_retry_events") + + @tcp_retry_events.setter + def tcp_retry_events(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]]): + pulumi.set(self, "tcp_retry_events", value) + + +@pulumi.input_type +class RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs: + def __init__(__self__, *, + unit: pulumi.Input[str], + value: pulumi.Input[int]): + """ + :param pulumi.Input[str] unit: Retry unit. Valid values: `ms`, `s`. + :param pulumi.Input[int] value: Retry value. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input[str]: + """ + Retry unit. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input[str]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + Retry value. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class RouteSpecHttpRouteTimeoutArgs: + def __init__(__self__, *, + idle: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs']] = None, + per_request: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs']] = None): + """ + :param pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs'] per_request: The per request timeout. + """ + if idle is not None: + pulumi.set(__self__, "idle", idle) + if per_request is not None: + pulumi.set(__self__, "per_request", per_request) + + @property + @pulumi.getter + def idle(self) -> Optional[pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs']]: + """ + The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + """ + return pulumi.get(self, "idle") + + @idle.setter + def idle(self, value: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs']]): + pulumi.set(self, "idle", value) + + @property + @pulumi.getter(name="perRequest") + def per_request(self) -> Optional[pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs']]: + """ + The per request timeout. + """ + return pulumi.get(self, "per_request") + + @per_request.setter + def per_request(self, value: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs']]): + pulumi.set(self, "per_request", value) + + +@pulumi.input_type +class RouteSpecHttpRouteTimeoutIdleArgs: + def __init__(__self__, *, + unit: pulumi.Input[str], + value: pulumi.Input[int]): + """ + :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. + :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input[str]: + """ + The unit of time. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input[str]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The number of time units. Minimum value of `0`. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class RouteSpecHttpRouteTimeoutPerRequestArgs: + def __init__(__self__, *, + unit: pulumi.Input[str], + value: pulumi.Input[int]): + """ + :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. + :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input[str]: + """ + The unit of time. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input[str]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The number of time units. Minimum value of `0`. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class RouteSpecTcpRouteArgs: + def __init__(__self__, *, + action: pulumi.Input['RouteSpecTcpRouteActionArgs'], + timeout: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutArgs']] = None): + """ + :param pulumi.Input['RouteSpecTcpRouteActionArgs'] action: The action to take if a match is determined. + :param pulumi.Input['RouteSpecTcpRouteTimeoutArgs'] timeout: The types of timeouts. + """ + pulumi.set(__self__, "action", action) + if timeout is not None: + pulumi.set(__self__, "timeout", timeout) + + @property + @pulumi.getter + def action(self) -> pulumi.Input['RouteSpecTcpRouteActionArgs']: + """ + The action to take if a match is determined. + """ + return pulumi.get(self, "action") + + @action.setter + def action(self, value: pulumi.Input['RouteSpecTcpRouteActionArgs']): + pulumi.set(self, "action", value) + + @property + @pulumi.getter + def timeout(self) -> Optional[pulumi.Input['RouteSpecTcpRouteTimeoutArgs']]: + """ + The types of timeouts. + """ + return pulumi.get(self, "timeout") + + @timeout.setter + def timeout(self, value: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutArgs']]): + pulumi.set(self, "timeout", value) + + +@pulumi.input_type +class RouteSpecTcpRouteActionArgs: + def __init__(__self__, *, + weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]]): + """ + :param pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + pulumi.set(__self__, "weighted_targets", weighted_targets) + + @property + @pulumi.getter(name="weightedTargets") + def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]]: + """ + The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + return pulumi.get(self, "weighted_targets") + + @weighted_targets.setter + def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]]): + pulumi.set(self, "weighted_targets", value) + + +@pulumi.input_type +class RouteSpecTcpRouteActionWeightedTargetArgs: + def __init__(__self__, *, + virtual_node: pulumi.Input[str], + weight: pulumi.Input[int]): + """ + :param pulumi.Input[str] virtual_node: The virtual node to associate with the weighted target. + :param pulumi.Input[int] weight: The relative weight of the weighted target. An integer between 0 and 100. + """ + pulumi.set(__self__, "virtual_node", virtual_node) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter(name="virtualNode") + def virtual_node(self) -> pulumi.Input[str]: + """ + The virtual node to associate with the weighted target. + """ + return pulumi.get(self, "virtual_node") + + @virtual_node.setter + def virtual_node(self, value: pulumi.Input[str]): + pulumi.set(self, "virtual_node", value) + + @property + @pulumi.getter + def weight(self) -> pulumi.Input[int]: + """ + The relative weight of the weighted target. An integer between 0 and 100. + """ + return pulumi.get(self, "weight") + + @weight.setter + def weight(self, value: pulumi.Input[int]): + pulumi.set(self, "weight", value) + + +@pulumi.input_type +class RouteSpecTcpRouteTimeoutArgs: + def __init__(__self__, *, + idle: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs']] = None): + """ + :param pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + """ + if idle is not None: + pulumi.set(__self__, "idle", idle) + + @property + @pulumi.getter + def idle(self) -> Optional[pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs']]: + """ + The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + """ + return pulumi.get(self, "idle") + + @idle.setter + def idle(self, value: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs']]): + pulumi.set(self, "idle", value) + + +@pulumi.input_type +class RouteSpecTcpRouteTimeoutIdleArgs: + def __init__(__self__, *, + unit: pulumi.Input[str], + value: pulumi.Input[int]): + """ + :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. + :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> pulumi.Input[str]: + """ + The unit of time. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @unit.setter + def unit(self, value: pulumi.Input[str]): + pulumi.set(self, "unit", value) + + @property + @pulumi.getter + def value(self) -> pulumi.Input[int]: + """ + The number of time units. Minimum value of `0`. + """ + return pulumi.get(self, "value") + + @value.setter + def value(self, value: pulumi.Input[int]): + pulumi.set(self, "value", value) + + +@pulumi.input_type +class VirtualGatewaySpecArgs: + def __init__(__self__, *, + listener: pulumi.Input['VirtualGatewaySpecListenerArgs'], + backend_defaults: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsArgs']] = None, + logging: Optional[pulumi.Input['VirtualGatewaySpecLoggingArgs']] = None): + """ + :param pulumi.Input['VirtualGatewaySpecListenerArgs'] listener: The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + :param pulumi.Input['VirtualGatewaySpecBackendDefaultsArgs'] backend_defaults: The defaults for backends. + :param pulumi.Input['VirtualGatewaySpecLoggingArgs'] logging: The inbound and outbound access logging information for the virtual gateway. + """ + pulumi.set(__self__, "listener", listener) + if backend_defaults is not None: + pulumi.set(__self__, "backend_defaults", backend_defaults) + if logging is not None: + pulumi.set(__self__, "logging", logging) + + @property + @pulumi.getter + def listener(self) -> pulumi.Input['VirtualGatewaySpecListenerArgs']: + """ + The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + """ + return pulumi.get(self, "listener") + + @listener.setter + def listener(self, value: pulumi.Input['VirtualGatewaySpecListenerArgs']): + pulumi.set(self, "listener", value) + + @property + @pulumi.getter(name="backendDefaults") + def backend_defaults(self) -> Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsArgs']]: + """ + The defaults for backends. + """ + return pulumi.get(self, "backend_defaults") + + @backend_defaults.setter + def backend_defaults(self, value: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsArgs']]): + pulumi.set(self, "backend_defaults", value) + + @property + @pulumi.getter + def logging(self) -> Optional[pulumi.Input['VirtualGatewaySpecLoggingArgs']]: + """ + The inbound and outbound access logging information for the virtual gateway. + """ + return pulumi.get(self, "logging") + + @logging.setter + def logging(self, value: Optional[pulumi.Input['VirtualGatewaySpecLoggingArgs']]): + pulumi.set(self, "logging", value) + + +@pulumi.input_type +class VirtualGatewaySpecBackendDefaultsArgs: + def __init__(__self__, *, + client_policy: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyArgs']] = None): + """ + :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyArgs'] client_policy: The default client policy for virtual gateway backends. + """ + if client_policy is not None: + pulumi.set(__self__, "client_policy", client_policy) + + @property + @pulumi.getter(name="clientPolicy") + def client_policy(self) -> Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyArgs']]: + """ + The default client policy for virtual gateway backends. + """ + return pulumi.get(self, "client_policy") + + @client_policy.setter + def client_policy(self, value: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyArgs']]): + pulumi.set(self, "client_policy", value) + + +@pulumi.input_type +class VirtualGatewaySpecBackendDefaultsClientPolicyArgs: + def __init__(__self__, *, + tls: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs']] = None): + """ + :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs'] tls: The Transport Layer Security (TLS) client policy. + """ + if tls is not None: + pulumi.set(__self__, "tls", tls) + + @property + @pulumi.getter + def tls(self) -> Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs']]: + """ + The Transport Layer Security (TLS) client policy. + """ + return pulumi.get(self, "tls") + + @tls.setter + def tls(self, value: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs']]): + pulumi.set(self, "tls", value) + + +@pulumi.input_type +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs: + def __init__(__self__, *, + validation: pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs'], + enforce: Optional[pulumi.Input[bool]] = None, + ports: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]] = None): + """ + :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs'] validation: The TLS validation context. + :param pulumi.Input[Sequence[pulumi.Input[int]]] ports: One or more ports that the policy is enforced for. + """ + pulumi.set(__self__, "validation", validation) + if enforce is not None: + pulumi.set(__self__, "enforce", enforce) + if ports is not None: + pulumi.set(__self__, "ports", ports) + + @property + @pulumi.getter + def validation(self) -> pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs']: + """ + The TLS validation context. + """ + return pulumi.get(self, "validation") + + @validation.setter + def validation(self, value: pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs']): + pulumi.set(self, "validation", value) + + @property + @pulumi.getter + def enforce(self) -> Optional[pulumi.Input[bool]]: + return pulumi.get(self, "enforce") + + @enforce.setter + def enforce(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enforce", value) + + @property + @pulumi.getter + def ports(self) -> Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]: + """ + One or more ports that the policy is enforced for. + """ + return pulumi.get(self, "ports") + + @ports.setter + def ports(self, value: Optional[pulumi.Input[Sequence[pulumi.Input[int]]]]): + pulumi.set(self, "ports", value) + + +@pulumi.input_type +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs: + def __init__(__self__, *, + trust: pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs']): + """ + :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs'] trust: The TLS validation context trust. + """ + pulumi.set(__self__, "trust", trust) + + @property + @pulumi.getter + def trust(self) -> pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs']: + """ + The TLS validation context trust. + """ + return pulumi.get(self, "trust") + + @trust.setter + def trust(self, value: pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs']): + pulumi.set(self, "trust", value) + + +@pulumi.input_type +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs: + def __init__(__self__, *, + acm: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs']] = None, + file: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs']] = None): + """ + :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs'] acm: The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + :param pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs'] file: The TLS validation context trust for a local file. + """ + if acm is not None: + pulumi.set(__self__, "acm", acm) + if file is not None: + pulumi.set(__self__, "file", file) + + @property + @pulumi.getter + def acm(self) -> Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs']]: + """ + The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + """ + return pulumi.get(self, "acm") + + @acm.setter + def acm(self, value: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs']]): + pulumi.set(self, "acm", value) + + @property + @pulumi.getter + def file(self) -> Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs']]: + """ + The TLS validation context trust for a local file. + """ + return pulumi.get(self, "file") + + @file.setter + def file(self, value: Optional[pulumi.Input['VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs']]): + pulumi.set(self, "file", value) + + +@pulumi.input_type +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs: + def __init__(__self__, *, + certificate_authority_arns: pulumi.Input[Sequence[pulumi.Input[str]]]): + """ + :param pulumi.Input[Sequence[pulumi.Input[str]]] certificate_authority_arns: One or more ACM Amazon Resource Name (ARN)s. + """ + pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) + + @property + @pulumi.getter(name="certificateAuthorityArns") + def certificate_authority_arns(self) -> pulumi.Input[Sequence[pulumi.Input[str]]]: + """ + One or more ACM Amazon Resource Name (ARN)s. + """ + return pulumi.get(self, "certificate_authority_arns") + + @certificate_authority_arns.setter + def certificate_authority_arns(self, value: pulumi.Input[Sequence[pulumi.Input[str]]]): + pulumi.set(self, "certificate_authority_arns", value) + + +@pulumi.input_type +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs: + def __init__(__self__, *, + certificate_chain: pulumi.Input[str]): + """ + :param pulumi.Input[str] certificate_chain: The certificate chain for the certificate. + """ + pulumi.set(__self__, "certificate_chain", certificate_chain) + + @property + @pulumi.getter(name="certificateChain") + def certificate_chain(self) -> pulumi.Input[str]: + """ + The certificate chain for the certificate. + """ + return pulumi.get(self, "certificate_chain") + + @certificate_chain.setter + def certificate_chain(self, value: pulumi.Input[str]): + pulumi.set(self, "certificate_chain", value) + + +@pulumi.input_type +class VirtualGatewaySpecListenerArgs: + def __init__(__self__, *, + port_mapping: pulumi.Input['VirtualGatewaySpecListenerPortMappingArgs'], + health_check: Optional[pulumi.Input['VirtualGatewaySpecListenerHealthCheckArgs']] = None, + tls: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsArgs']] = None): + """ + :param pulumi.Input['VirtualGatewaySpecListenerPortMappingArgs'] port_mapping: The port mapping information for the listener. + :param pulumi.Input['VirtualGatewaySpecListenerHealthCheckArgs'] health_check: The health check information for the listener. + :param pulumi.Input['VirtualGatewaySpecListenerTlsArgs'] tls: The Transport Layer Security (TLS) properties for the listener + """ + pulumi.set(__self__, "port_mapping", port_mapping) + if health_check is not None: + pulumi.set(__self__, "health_check", health_check) + if tls is not None: + pulumi.set(__self__, "tls", tls) + + @property + @pulumi.getter(name="portMapping") + def port_mapping(self) -> pulumi.Input['VirtualGatewaySpecListenerPortMappingArgs']: + """ + The port mapping information for the listener. + """ + return pulumi.get(self, "port_mapping") + + @port_mapping.setter + def port_mapping(self, value: pulumi.Input['VirtualGatewaySpecListenerPortMappingArgs']): + pulumi.set(self, "port_mapping", value) + + @property + @pulumi.getter(name="healthCheck") + def health_check(self) -> Optional[pulumi.Input['VirtualGatewaySpecListenerHealthCheckArgs']]: + """ + The health check information for the listener. + """ + return pulumi.get(self, "health_check") + + @health_check.setter + def health_check(self, value: Optional[pulumi.Input['VirtualGatewaySpecListenerHealthCheckArgs']]): + pulumi.set(self, "health_check", value) + + @property + @pulumi.getter + def tls(self) -> Optional[pulumi.Input['VirtualGatewaySpecListenerTlsArgs']]: + """ + The Transport Layer Security (TLS) properties for the listener + """ + return pulumi.get(self, "tls") + + @tls.setter + def tls(self, value: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsArgs']]): + pulumi.set(self, "tls", value) + + +@pulumi.input_type +class VirtualGatewaySpecListenerHealthCheckArgs: + def __init__(__self__, *, + healthy_threshold: pulumi.Input[int], + interval_millis: pulumi.Input[int], + protocol: pulumi.Input[str], + timeout_millis: pulumi.Input[int], + unhealthy_threshold: pulumi.Input[int], + path: Optional[pulumi.Input[str]] = None, + port: Optional[pulumi.Input[int]] = None): + """ + :param pulumi.Input[int] healthy_threshold: The number of consecutive successful health checks that must occur before declaring listener healthy. + :param pulumi.Input[int] interval_millis: The time period in milliseconds between each health check execution. + :param pulumi.Input[str] protocol: The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + :param pulumi.Input[int] timeout_millis: The amount of time to wait when receiving a response from the health check, in milliseconds. + :param pulumi.Input[int] unhealthy_threshold: The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + :param pulumi.Input[str] path: The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + :param pulumi.Input[int] port: The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. + """ + pulumi.set(__self__, "healthy_threshold", healthy_threshold) + pulumi.set(__self__, "interval_millis", interval_millis) + pulumi.set(__self__, "protocol", protocol) + pulumi.set(__self__, "timeout_millis", timeout_millis) + pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + if path is not None: + pulumi.set(__self__, "path", path) + if port is not None: + pulumi.set(__self__, "port", port) + + @property + @pulumi.getter(name="healthyThreshold") + def healthy_threshold(self) -> pulumi.Input[int]: + """ + The number of consecutive successful health checks that must occur before declaring listener healthy. + """ + return pulumi.get(self, "healthy_threshold") + + @healthy_threshold.setter + def healthy_threshold(self, value: pulumi.Input[int]): + pulumi.set(self, "healthy_threshold", value) + + @property + @pulumi.getter(name="intervalMillis") + def interval_millis(self) -> pulumi.Input[int]: + """ + The time period in milliseconds between each health check execution. + """ + return pulumi.get(self, "interval_millis") + + @interval_millis.setter + def interval_millis(self, value: pulumi.Input[int]): + pulumi.set(self, "interval_millis", value) + + @property + @pulumi.getter + def protocol(self) -> pulumi.Input[str]: + """ + The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + """ + return pulumi.get(self, "protocol") + + @protocol.setter + def protocol(self, value: pulumi.Input[str]): + pulumi.set(self, "protocol", value) + + @property + @pulumi.getter(name="timeoutMillis") + def timeout_millis(self) -> pulumi.Input[int]: + """ + The amount of time to wait when receiving a response from the health check, in milliseconds. + """ + return pulumi.get(self, "timeout_millis") + + @timeout_millis.setter + def timeout_millis(self, value: pulumi.Input[int]): + pulumi.set(self, "timeout_millis", value) + + @property + @pulumi.getter(name="unhealthyThreshold") + def unhealthy_threshold(self) -> pulumi.Input[int]: + """ + The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. """ - if idle is not None: - pulumi.set(__self__, "idle", idle) - if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + return pulumi.get(self, "unhealthy_threshold") + + @unhealthy_threshold.setter + def unhealthy_threshold(self, value: pulumi.Input[int]): + pulumi.set(self, "unhealthy_threshold", value) @property @pulumi.getter - def idle(self) -> Optional[pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs']]: + def path(self) -> Optional[pulumi.Input[str]]: """ - The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. """ - return pulumi.get(self, "idle") + return pulumi.get(self, "path") - @idle.setter - def idle(self, value: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutIdleArgs']]): - pulumi.set(self, "idle", value) + @path.setter + def path(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "path", value) @property - @pulumi.getter(name="perRequest") - def per_request(self) -> Optional[pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs']]: + @pulumi.getter + def port(self) -> Optional[pulumi.Input[int]]: """ - The per request timeout. + The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. """ - return pulumi.get(self, "per_request") + return pulumi.get(self, "port") - @per_request.setter - def per_request(self, value: Optional[pulumi.Input['RouteSpecHttpRouteTimeoutPerRequestArgs']]): - pulumi.set(self, "per_request", value) + @port.setter + def port(self, value: Optional[pulumi.Input[int]]): + pulumi.set(self, "port", value) @pulumi.input_type -class RouteSpecHttpRouteTimeoutIdleArgs: +class VirtualGatewaySpecListenerPortMappingArgs: def __init__(__self__, *, - unit: pulumi.Input[str], - value: pulumi.Input[int]): + port: pulumi.Input[int], + protocol: pulumi.Input[str]): """ - :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + :param pulumi.Input[int] port: The port used for the port mapping. + :param pulumi.Input[str] protocol: The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + pulumi.set(__self__, "port", port) + pulumi.set(__self__, "protocol", protocol) @property @pulumi.getter - def unit(self) -> pulumi.Input[str]: + def port(self) -> pulumi.Input[int]: """ - The unit of time. Valid values: `ms`, `s`. + The port used for the port mapping. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "port") - @unit.setter - def unit(self, value: pulumi.Input[str]): - pulumi.set(self, "unit", value) + @port.setter + def port(self, value: pulumi.Input[int]): + pulumi.set(self, "port", value) @property @pulumi.getter - def value(self) -> pulumi.Input[int]: + def protocol(self) -> pulumi.Input[str]: """ - The number of time units. Minimum value of `0`. + The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - return pulumi.get(self, "value") + return pulumi.get(self, "protocol") - @value.setter - def value(self, value: pulumi.Input[int]): - pulumi.set(self, "value", value) + @protocol.setter + def protocol(self, value: pulumi.Input[str]): + pulumi.set(self, "protocol", value) @pulumi.input_type -class RouteSpecHttpRouteTimeoutPerRequestArgs: +class VirtualGatewaySpecListenerTlsArgs: def __init__(__self__, *, - unit: pulumi.Input[str], - value: pulumi.Input[int]): + certificate: pulumi.Input['VirtualGatewaySpecListenerTlsCertificateArgs'], + mode: pulumi.Input[str]): """ - :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + :param pulumi.Input['VirtualGatewaySpecListenerTlsCertificateArgs'] certificate: The listener's TLS certificate. + :param pulumi.Input[str] mode: The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + pulumi.set(__self__, "certificate", certificate) + pulumi.set(__self__, "mode", mode) @property @pulumi.getter - def unit(self) -> pulumi.Input[str]: + def certificate(self) -> pulumi.Input['VirtualGatewaySpecListenerTlsCertificateArgs']: """ - The unit of time. Valid values: `ms`, `s`. + The listener's TLS certificate. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "certificate") - @unit.setter - def unit(self, value: pulumi.Input[str]): - pulumi.set(self, "unit", value) + @certificate.setter + def certificate(self, value: pulumi.Input['VirtualGatewaySpecListenerTlsCertificateArgs']): + pulumi.set(self, "certificate", value) @property @pulumi.getter - def value(self) -> pulumi.Input[int]: + def mode(self) -> pulumi.Input[str]: """ - The number of time units. Minimum value of `0`. + The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. """ - return pulumi.get(self, "value") + return pulumi.get(self, "mode") - @value.setter - def value(self, value: pulumi.Input[int]): - pulumi.set(self, "value", value) + @mode.setter + def mode(self, value: pulumi.Input[str]): + pulumi.set(self, "mode", value) @pulumi.input_type -class RouteSpecTcpRouteArgs: +class VirtualGatewaySpecListenerTlsCertificateArgs: def __init__(__self__, *, - action: pulumi.Input['RouteSpecTcpRouteActionArgs'], - timeout: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutArgs']] = None): + acm: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateAcmArgs']] = None, + file: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateFileArgs']] = None): """ - :param pulumi.Input['RouteSpecTcpRouteActionArgs'] action: The action to take if a match is determined. - :param pulumi.Input['RouteSpecTcpRouteTimeoutArgs'] timeout: The types of timeouts. + :param pulumi.Input['VirtualGatewaySpecListenerTlsCertificateAcmArgs'] acm: An AWS Certificate Manager (ACM) certificate. + :param pulumi.Input['VirtualGatewaySpecListenerTlsCertificateFileArgs'] file: A local file certificate. """ - pulumi.set(__self__, "action", action) - if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + if acm is not None: + pulumi.set(__self__, "acm", acm) + if file is not None: + pulumi.set(__self__, "file", file) @property @pulumi.getter - def action(self) -> pulumi.Input['RouteSpecTcpRouteActionArgs']: + def acm(self) -> Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateAcmArgs']]: """ - The action to take if a match is determined. + An AWS Certificate Manager (ACM) certificate. """ - return pulumi.get(self, "action") + return pulumi.get(self, "acm") - @action.setter - def action(self, value: pulumi.Input['RouteSpecTcpRouteActionArgs']): - pulumi.set(self, "action", value) + @acm.setter + def acm(self, value: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateAcmArgs']]): + pulumi.set(self, "acm", value) @property @pulumi.getter - def timeout(self) -> Optional[pulumi.Input['RouteSpecTcpRouteTimeoutArgs']]: + def file(self) -> Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateFileArgs']]: """ - The types of timeouts. + A local file certificate. """ - return pulumi.get(self, "timeout") + return pulumi.get(self, "file") - @timeout.setter - def timeout(self, value: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutArgs']]): - pulumi.set(self, "timeout", value) + @file.setter + def file(self, value: Optional[pulumi.Input['VirtualGatewaySpecListenerTlsCertificateFileArgs']]): + pulumi.set(self, "file", value) @pulumi.input_type -class RouteSpecTcpRouteActionArgs: +class VirtualGatewaySpecListenerTlsCertificateAcmArgs: def __init__(__self__, *, - weighted_targets: pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]]): + certificate_arn: pulumi.Input[str]): """ - :param pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]] weighted_targets: The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + :param pulumi.Input[str] certificate_arn: The Amazon Resource Name (ARN) for the certificate. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + pulumi.set(__self__, "certificate_arn", certificate_arn) @property - @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]]: + @pulumi.getter(name="certificateArn") + def certificate_arn(self) -> pulumi.Input[str]: """ - The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + The Amazon Resource Name (ARN) for the certificate. """ - return pulumi.get(self, "weighted_targets") + return pulumi.get(self, "certificate_arn") - @weighted_targets.setter - def weighted_targets(self, value: pulumi.Input[Sequence[pulumi.Input['RouteSpecTcpRouteActionWeightedTargetArgs']]]): - pulumi.set(self, "weighted_targets", value) + @certificate_arn.setter + def certificate_arn(self, value: pulumi.Input[str]): + pulumi.set(self, "certificate_arn", value) @pulumi.input_type -class RouteSpecTcpRouteActionWeightedTargetArgs: +class VirtualGatewaySpecListenerTlsCertificateFileArgs: def __init__(__self__, *, - virtual_node: pulumi.Input[str], - weight: pulumi.Input[int]): + certificate_chain: pulumi.Input[str], + private_key: pulumi.Input[str]): """ - :param pulumi.Input[str] virtual_node: The virtual node to associate with the weighted target. - :param pulumi.Input[int] weight: The relative weight of the weighted target. An integer between 0 and 100. + :param pulumi.Input[str] certificate_chain: The certificate chain for the certificate. + :param pulumi.Input[str] private_key: The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + pulumi.set(__self__, "certificate_chain", certificate_chain) + pulumi.set(__self__, "private_key", private_key) @property - @pulumi.getter(name="virtualNode") - def virtual_node(self) -> pulumi.Input[str]: + @pulumi.getter(name="certificateChain") + def certificate_chain(self) -> pulumi.Input[str]: """ - The virtual node to associate with the weighted target. + The certificate chain for the certificate. """ - return pulumi.get(self, "virtual_node") + return pulumi.get(self, "certificate_chain") - @virtual_node.setter - def virtual_node(self, value: pulumi.Input[str]): - pulumi.set(self, "virtual_node", value) + @certificate_chain.setter + def certificate_chain(self, value: pulumi.Input[str]): + pulumi.set(self, "certificate_chain", value) @property - @pulumi.getter - def weight(self) -> pulumi.Input[int]: + @pulumi.getter(name="privateKey") + def private_key(self) -> pulumi.Input[str]: """ - The relative weight of the weighted target. An integer between 0 and 100. + The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. """ - return pulumi.get(self, "weight") + return pulumi.get(self, "private_key") - @weight.setter - def weight(self, value: pulumi.Input[int]): - pulumi.set(self, "weight", value) + @private_key.setter + def private_key(self, value: pulumi.Input[str]): + pulumi.set(self, "private_key", value) @pulumi.input_type -class RouteSpecTcpRouteTimeoutArgs: +class VirtualGatewaySpecLoggingArgs: def __init__(__self__, *, - idle: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs']] = None): + access_log: Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogArgs']] = None): """ - :param pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs'] idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param pulumi.Input['VirtualGatewaySpecLoggingAccessLogArgs'] access_log: The access log configuration for a virtual gateway. """ - if idle is not None: - pulumi.set(__self__, "idle", idle) + if access_log is not None: + pulumi.set(__self__, "access_log", access_log) @property - @pulumi.getter - def idle(self) -> Optional[pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs']]: + @pulumi.getter(name="accessLog") + def access_log(self) -> Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogArgs']]: """ - The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + The access log configuration for a virtual gateway. """ - return pulumi.get(self, "idle") + return pulumi.get(self, "access_log") - @idle.setter - def idle(self, value: Optional[pulumi.Input['RouteSpecTcpRouteTimeoutIdleArgs']]): - pulumi.set(self, "idle", value) + @access_log.setter + def access_log(self, value: Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogArgs']]): + pulumi.set(self, "access_log", value) @pulumi.input_type -class RouteSpecTcpRouteTimeoutIdleArgs: +class VirtualGatewaySpecLoggingAccessLogArgs: def __init__(__self__, *, - unit: pulumi.Input[str], - value: pulumi.Input[int]): + file: Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileArgs']] = None): """ - :param pulumi.Input[str] unit: The unit of time. Valid values: `ms`, `s`. - :param pulumi.Input[int] value: The number of time units. Minimum value of `0`. + :param pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileArgs'] file: The file object to send virtual gateway access logs to. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + if file is not None: + pulumi.set(__self__, "file", file) @property @pulumi.getter - def unit(self) -> pulumi.Input[str]: + def file(self) -> Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileArgs']]: """ - The unit of time. Valid values: `ms`, `s`. + The file object to send virtual gateway access logs to. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "file") - @unit.setter - def unit(self, value: pulumi.Input[str]): - pulumi.set(self, "unit", value) + @file.setter + def file(self, value: Optional[pulumi.Input['VirtualGatewaySpecLoggingAccessLogFileArgs']]): + pulumi.set(self, "file", value) + + +@pulumi.input_type +class VirtualGatewaySpecLoggingAccessLogFileArgs: + def __init__(__self__, *, + path: pulumi.Input[str]): + """ + :param pulumi.Input[str] path: The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + """ + pulumi.set(__self__, "path", path) @property @pulumi.getter - def value(self) -> pulumi.Input[int]: + def path(self) -> pulumi.Input[str]: """ - The number of time units. Minimum value of `0`. + The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. """ - return pulumi.get(self, "value") + return pulumi.get(self, "path") - @value.setter - def value(self, value: pulumi.Input[int]): - pulumi.set(self, "value", value) + @path.setter + def path(self, value: pulumi.Input[str]): + pulumi.set(self, "path", value) @pulumi.input_type diff --git a/sdk/python/pulumi_aws/appmesh/gateway_route.py b/sdk/python/pulumi_aws/appmesh/gateway_route.py new file mode 100644 index 00000000000..e28b41ee895 --- /dev/null +++ b/sdk/python/pulumi_aws/appmesh/gateway_route.py @@ -0,0 +1,241 @@ +# 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 warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = ['GatewayRoute'] + + +class GatewayRoute(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input[pulumi.InputType['GatewayRouteSpecArgs']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_gateway_name: Optional[pulumi.Input[str]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Provides an AWS App Mesh gateway route resource. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.appmesh.GatewayRoute("example", + mesh_name="example-service-mesh", + virtual_gateway_name=aws_appmesh_virtual_gateway["example"]["name"], + spec=aws.appmesh.GatewayRouteSpecArgs( + http_route=aws.appmesh.GatewayRouteSpecHttpRouteArgs( + action=aws.appmesh.GatewayRouteSpecHttpRouteActionArgs( + target=aws.appmesh.GatewayRouteSpecHttpRouteActionTargetArgs( + virtual_service=aws.appmesh.GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs( + virtual_service_name=aws_appmesh_virtual_service["example"]["name"], + ), + ), + ), + match=aws.appmesh.GatewayRouteSpecHttpRouteMatchArgs( + prefix="/", + ), + ), + ), + tags={ + "Environment": "test", + }) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] mesh_name: The name of the service mesh in which to create the gateway route. + :param pulumi.Input[str] mesh_owner: The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + :param pulumi.Input[str] name: The name to use for the gateway route. + :param pulumi.Input[pulumi.InputType['GatewayRouteSpecArgs']] spec: The gateway route specification to apply. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + :param pulumi.Input[str] virtual_gateway_name: The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + 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__ = dict() + + if mesh_name is None: + raise TypeError("Missing required property 'mesh_name'") + __props__['mesh_name'] = mesh_name + __props__['mesh_owner'] = mesh_owner + __props__['name'] = name + if spec is None: + raise TypeError("Missing required property 'spec'") + __props__['spec'] = spec + __props__['tags'] = tags + if virtual_gateway_name is None: + raise TypeError("Missing required property 'virtual_gateway_name'") + __props__['virtual_gateway_name'] = virtual_gateway_name + __props__['arn'] = None + __props__['created_date'] = None + __props__['last_updated_date'] = None + __props__['resource_owner'] = None + super(GatewayRoute, __self__).__init__( + 'aws:appmesh/gatewayRoute:GatewayRoute', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input[pulumi.InputType['GatewayRouteSpecArgs']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + virtual_gateway_name: Optional[pulumi.Input[str]] = None) -> 'GatewayRoute': + """ + Get an existing GatewayRoute 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] arn: The ARN of the gateway route. + :param pulumi.Input[str] created_date: The creation date of the gateway route. + :param pulumi.Input[str] last_updated_date: The last update date of the gateway route. + :param pulumi.Input[str] mesh_name: The name of the service mesh in which to create the gateway route. + :param pulumi.Input[str] mesh_owner: The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + :param pulumi.Input[str] name: The name to use for the gateway route. + :param pulumi.Input[str] resource_owner: The resource owner's AWS account ID. + :param pulumi.Input[pulumi.InputType['GatewayRouteSpecArgs']] spec: The gateway route specification to apply. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + :param pulumi.Input[str] virtual_gateway_name: The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["arn"] = arn + __props__["created_date"] = created_date + __props__["last_updated_date"] = last_updated_date + __props__["mesh_name"] = mesh_name + __props__["mesh_owner"] = mesh_owner + __props__["name"] = name + __props__["resource_owner"] = resource_owner + __props__["spec"] = spec + __props__["tags"] = tags + __props__["virtual_gateway_name"] = virtual_gateway_name + return GatewayRoute(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN of the gateway route. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="createdDate") + def created_date(self) -> pulumi.Output[str]: + """ + The creation date of the gateway route. + """ + return pulumi.get(self, "created_date") + + @property + @pulumi.getter(name="lastUpdatedDate") + def last_updated_date(self) -> pulumi.Output[str]: + """ + The last update date of the gateway route. + """ + return pulumi.get(self, "last_updated_date") + + @property + @pulumi.getter(name="meshName") + def mesh_name(self) -> pulumi.Output[str]: + """ + The name of the service mesh in which to create the gateway route. + """ + return pulumi.get(self, "mesh_name") + + @property + @pulumi.getter(name="meshOwner") + def mesh_owner(self) -> pulumi.Output[str]: + """ + The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + """ + return pulumi.get(self, "mesh_owner") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name to use for the gateway route. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="resourceOwner") + def resource_owner(self) -> pulumi.Output[str]: + """ + The resource owner's AWS account ID. + """ + return pulumi.get(self, "resource_owner") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.GatewayRouteSpec']: + """ + The gateway route specification to apply. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + @property + @pulumi.getter(name="virtualGatewayName") + def virtual_gateway_name(self) -> pulumi.Output[str]: + """ + The name of the [virtual gateway](https://www.terraform.io/docs/providers/aws/r/appmesh_virtual_gateway.html) to associate the gateway route with. + """ + return pulumi.get(self, "virtual_gateway_name") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/appmesh/outputs.py b/sdk/python/pulumi_aws/appmesh/outputs.py index 32c0ee79752..1d80d891c26 100644 --- a/sdk/python/pulumi_aws/appmesh/outputs.py +++ b/sdk/python/pulumi_aws/appmesh/outputs.py @@ -10,6 +10,22 @@ from . import outputs __all__ = [ + 'GatewayRouteSpec', + 'GatewayRouteSpecGrpcRoute', + 'GatewayRouteSpecGrpcRouteAction', + 'GatewayRouteSpecGrpcRouteActionTarget', + 'GatewayRouteSpecGrpcRouteActionTargetVirtualService', + 'GatewayRouteSpecGrpcRouteMatch', + 'GatewayRouteSpecHttp2Route', + 'GatewayRouteSpecHttp2RouteAction', + 'GatewayRouteSpecHttp2RouteActionTarget', + 'GatewayRouteSpecHttp2RouteActionTargetVirtualService', + 'GatewayRouteSpecHttp2RouteMatch', + 'GatewayRouteSpecHttpRoute', + 'GatewayRouteSpecHttpRouteAction', + 'GatewayRouteSpecHttpRouteActionTarget', + 'GatewayRouteSpecHttpRouteActionTargetVirtualService', + 'GatewayRouteSpecHttpRouteMatch', 'MeshSpec', 'MeshSpecEgressFilter', 'RouteSpec', @@ -54,6 +70,24 @@ 'RouteSpecTcpRouteActionWeightedTarget', 'RouteSpecTcpRouteTimeout', 'RouteSpecTcpRouteTimeoutIdle', + 'VirtualGatewaySpec', + 'VirtualGatewaySpecBackendDefaults', + 'VirtualGatewaySpecBackendDefaultsClientPolicy', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTls', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm', + 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile', + 'VirtualGatewaySpecListener', + 'VirtualGatewaySpecListenerHealthCheck', + 'VirtualGatewaySpecListenerPortMapping', + 'VirtualGatewaySpecListenerTls', + 'VirtualGatewaySpecListenerTlsCertificate', + 'VirtualGatewaySpecListenerTlsCertificateAcm', + 'VirtualGatewaySpecListenerTlsCertificateFile', + 'VirtualGatewaySpecLogging', + 'VirtualGatewaySpecLoggingAccessLog', + 'VirtualGatewaySpecLoggingAccessLogFile', 'VirtualNodeSpec', 'VirtualNodeSpecBackend', 'VirtualNodeSpecBackendDefaults', @@ -105,146 +139,182 @@ ] @pulumi.output_type -class MeshSpec(dict): +class GatewayRouteSpec(dict): def __init__(__self__, *, - egress_filter: Optional['outputs.MeshSpecEgressFilter'] = None): + grpc_route: Optional['outputs.GatewayRouteSpecGrpcRoute'] = None, + http2_route: Optional['outputs.GatewayRouteSpecHttp2Route'] = None, + http_route: Optional['outputs.GatewayRouteSpecHttpRoute'] = None): """ - :param 'MeshSpecEgressFilterArgs' egress_filter: The egress filter rules for the service mesh. + :param 'GatewayRouteSpecGrpcRouteArgs' grpc_route: The specification of a gRPC gateway route. + :param 'GatewayRouteSpecHttp2RouteArgs' http2_route: The specification of an HTTP/2 gateway route. + :param 'GatewayRouteSpecHttpRouteArgs' http_route: The specification of an HTTP gateway route. """ - if egress_filter is not None: - pulumi.set(__self__, "egress_filter", egress_filter) + if grpc_route is not None: + pulumi.set(__self__, "grpc_route", grpc_route) + if http2_route is not None: + pulumi.set(__self__, "http2_route", http2_route) + if http_route is not None: + pulumi.set(__self__, "http_route", http_route) @property - @pulumi.getter(name="egressFilter") - def egress_filter(self) -> Optional['outputs.MeshSpecEgressFilter']: + @pulumi.getter(name="grpcRoute") + def grpc_route(self) -> Optional['outputs.GatewayRouteSpecGrpcRoute']: """ - The egress filter rules for the service mesh. + The specification of a gRPC gateway route. """ - return pulumi.get(self, "egress_filter") + return pulumi.get(self, "grpc_route") + + @property + @pulumi.getter(name="http2Route") + def http2_route(self) -> Optional['outputs.GatewayRouteSpecHttp2Route']: + """ + The specification of an HTTP/2 gateway route. + """ + return pulumi.get(self, "http2_route") + + @property + @pulumi.getter(name="httpRoute") + def http_route(self) -> Optional['outputs.GatewayRouteSpecHttpRoute']: + """ + The specification of an HTTP gateway route. + """ + return pulumi.get(self, "http_route") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class MeshSpecEgressFilter(dict): +class GatewayRouteSpecGrpcRoute(dict): def __init__(__self__, *, - type: Optional[str] = None): + action: 'outputs.GatewayRouteSpecGrpcRouteAction', + match: 'outputs.GatewayRouteSpecGrpcRouteMatch'): """ - :param str type: The egress filter type. By default, the type is `DROP_ALL`. - Valid values are `ALLOW_ALL` and `DROP_ALL`. + :param 'GatewayRouteSpecGrpcRouteActionArgs' action: The action to take if a match is determined. + :param 'GatewayRouteSpecGrpcRouteMatchArgs' match: The criteria for determining a request match. """ - if type is not None: - pulumi.set(__self__, "type", type) + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "match", match) @property @pulumi.getter - def type(self) -> Optional[str]: + def action(self) -> 'outputs.GatewayRouteSpecGrpcRouteAction': """ - The egress filter type. By default, the type is `DROP_ALL`. - Valid values are `ALLOW_ALL` and `DROP_ALL`. + The action to take if a match is determined. """ - return pulumi.get(self, "type") + return pulumi.get(self, "action") + + @property + @pulumi.getter + def match(self) -> 'outputs.GatewayRouteSpecGrpcRouteMatch': + """ + The criteria for determining a request match. + """ + return pulumi.get(self, "match") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpec(dict): +class GatewayRouteSpecGrpcRouteAction(dict): def __init__(__self__, *, - grpc_route: Optional['outputs.RouteSpecGrpcRoute'] = None, - http2_route: Optional['outputs.RouteSpecHttp2Route'] = None, - http_route: Optional['outputs.RouteSpecHttpRoute'] = None, - priority: Optional[int] = None, - tcp_route: Optional['outputs.RouteSpecTcpRoute'] = None): + target: 'outputs.GatewayRouteSpecGrpcRouteActionTarget'): """ - :param 'RouteSpecGrpcRouteArgs' grpc_route: The gRPC routing information for the route. - :param 'RouteSpecHttp2RouteArgs' http2_route: The HTTP/2 routing information for the route. - :param 'RouteSpecHttpRouteArgs' http_route: The HTTP routing information for the route. - :param int priority: The priority for the route, between `0` and `1000`. - Routes are matched based on the specified value, where `0` is the highest priority. - :param 'RouteSpecTcpRouteArgs' tcp_route: The TCP routing information for the route. + :param 'GatewayRouteSpecGrpcRouteActionTargetArgs' target: The target that traffic is routed to when a request matches the gateway route. """ - if grpc_route is not None: - pulumi.set(__self__, "grpc_route", grpc_route) - if http2_route is not None: - pulumi.set(__self__, "http2_route", http2_route) - if http_route is not None: - pulumi.set(__self__, "http_route", http_route) - if priority is not None: - pulumi.set(__self__, "priority", priority) - if tcp_route is not None: - pulumi.set(__self__, "tcp_route", tcp_route) + pulumi.set(__self__, "target", target) @property - @pulumi.getter(name="grpcRoute") - def grpc_route(self) -> Optional['outputs.RouteSpecGrpcRoute']: + @pulumi.getter + def target(self) -> 'outputs.GatewayRouteSpecGrpcRouteActionTarget': """ - The gRPC routing information for the route. + The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "grpc_route") + return pulumi.get(self, "target") - @property - @pulumi.getter(name="http2Route") - def http2_route(self) -> Optional['outputs.RouteSpecHttp2Route']: + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecGrpcRouteActionTarget(dict): + def __init__(__self__, *, + virtual_service: 'outputs.GatewayRouteSpecGrpcRouteActionTargetVirtualService'): """ - The HTTP/2 routing information for the route. + :param 'GatewayRouteSpecGrpcRouteActionTargetVirtualServiceArgs' virtual_service: The virtual service gateway route target. """ - return pulumi.get(self, "http2_route") + pulumi.set(__self__, "virtual_service", virtual_service) @property - @pulumi.getter(name="httpRoute") - def http_route(self) -> Optional['outputs.RouteSpecHttpRoute']: + @pulumi.getter(name="virtualService") + def virtual_service(self) -> 'outputs.GatewayRouteSpecGrpcRouteActionTargetVirtualService': """ - The HTTP routing information for the route. + The virtual service gateway route target. """ - return pulumi.get(self, "http_route") + return pulumi.get(self, "virtual_service") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecGrpcRouteActionTargetVirtualService(dict): + def __init__(__self__, *, + virtual_service_name: str): + """ + :param str virtual_service_name: The name of the virtual service that traffic is routed to. + """ + pulumi.set(__self__, "virtual_service_name", virtual_service_name) @property - @pulumi.getter - def priority(self) -> Optional[int]: + @pulumi.getter(name="virtualServiceName") + def virtual_service_name(self) -> str: """ - The priority for the route, between `0` and `1000`. - Routes are matched based on the specified value, where `0` is the highest priority. + The name of the virtual service that traffic is routed to. """ - return pulumi.get(self, "priority") + return pulumi.get(self, "virtual_service_name") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecGrpcRouteMatch(dict): + def __init__(__self__, *, + service_name: str): + """ + :param str service_name: The fully qualified domain name for the service to match from the request. + """ + pulumi.set(__self__, "service_name", service_name) @property - @pulumi.getter(name="tcpRoute") - def tcp_route(self) -> Optional['outputs.RouteSpecTcpRoute']: + @pulumi.getter(name="serviceName") + def service_name(self) -> str: """ - The TCP routing information for the route. + The fully qualified domain name for the service to match from the request. """ - return pulumi.get(self, "tcp_route") + return pulumi.get(self, "service_name") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecGrpcRoute(dict): +class GatewayRouteSpecHttp2Route(dict): def __init__(__self__, *, - action: 'outputs.RouteSpecGrpcRouteAction', - match: 'outputs.RouteSpecGrpcRouteMatch', - retry_policy: Optional['outputs.RouteSpecGrpcRouteRetryPolicy'] = None, - timeout: Optional['outputs.RouteSpecGrpcRouteTimeout'] = None): + action: 'outputs.GatewayRouteSpecHttp2RouteAction', + match: 'outputs.GatewayRouteSpecHttp2RouteMatch'): """ - :param 'RouteSpecGrpcRouteActionArgs' action: The action to take if a match is determined. - :param 'RouteSpecGrpcRouteMatchArgs' match: The criteria for determining an gRPC request match. - :param 'RouteSpecGrpcRouteRetryPolicyArgs' retry_policy: The retry policy. - :param 'RouteSpecGrpcRouteTimeoutArgs' timeout: The types of timeouts. + :param 'GatewayRouteSpecHttp2RouteActionArgs' action: The action to take if a match is determined. + :param 'GatewayRouteSpecHttp2RouteMatchArgs' match: The criteria for determining a request match. """ pulumi.set(__self__, "action", action) pulumi.set(__self__, "match", match) - if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) - if timeout is not None: - pulumi.set(__self__, "timeout", timeout) @property @pulumi.getter - def action(self) -> 'outputs.RouteSpecGrpcRouteAction': + def action(self) -> 'outputs.GatewayRouteSpecHttp2RouteAction': """ The action to take if a match is determined. """ @@ -252,153 +322,511 @@ def action(self) -> 'outputs.RouteSpecGrpcRouteAction': @property @pulumi.getter - def match(self) -> 'outputs.RouteSpecGrpcRouteMatch': + def match(self) -> 'outputs.GatewayRouteSpecHttp2RouteMatch': """ - The criteria for determining an gRPC request match. + The criteria for determining a request match. """ return pulumi.get(self, "match") - @property - @pulumi.getter(name="retryPolicy") - def retry_policy(self) -> Optional['outputs.RouteSpecGrpcRouteRetryPolicy']: + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecHttp2RouteAction(dict): + def __init__(__self__, *, + target: 'outputs.GatewayRouteSpecHttp2RouteActionTarget'): """ - The retry policy. + :param 'GatewayRouteSpecHttp2RouteActionTargetArgs' target: The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "retry_policy") + pulumi.set(__self__, "target", target) @property @pulumi.getter - def timeout(self) -> Optional['outputs.RouteSpecGrpcRouteTimeout']: + def target(self) -> 'outputs.GatewayRouteSpecHttp2RouteActionTarget': """ - The types of timeouts. + The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "timeout") + return pulumi.get(self, "target") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecGrpcRouteAction(dict): +class GatewayRouteSpecHttp2RouteActionTarget(dict): def __init__(__self__, *, - weighted_targets: Sequence['outputs.RouteSpecGrpcRouteActionWeightedTarget']): + virtual_service: 'outputs.GatewayRouteSpecHttp2RouteActionTargetVirtualService'): """ - :param Sequence['RouteSpecGrpcRouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + :param 'GatewayRouteSpecHttp2RouteActionTargetVirtualServiceArgs' virtual_service: The virtual service gateway route target. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + pulumi.set(__self__, "virtual_service", virtual_service) @property - @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> Sequence['outputs.RouteSpecGrpcRouteActionWeightedTarget']: + @pulumi.getter(name="virtualService") + def virtual_service(self) -> 'outputs.GatewayRouteSpecHttp2RouteActionTargetVirtualService': """ - The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + The virtual service gateway route target. """ - return pulumi.get(self, "weighted_targets") + return pulumi.get(self, "virtual_service") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecGrpcRouteActionWeightedTarget(dict): +class GatewayRouteSpecHttp2RouteActionTargetVirtualService(dict): def __init__(__self__, *, - virtual_node: str, - weight: int): + virtual_service_name: str): """ - :param str virtual_node: The virtual node to associate with the weighted target. - :param int weight: The relative weight of the weighted target. An integer between 0 and 100. + :param str virtual_service_name: The name of the virtual service that traffic is routed to. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + pulumi.set(__self__, "virtual_service_name", virtual_service_name) @property - @pulumi.getter(name="virtualNode") - def virtual_node(self) -> str: + @pulumi.getter(name="virtualServiceName") + def virtual_service_name(self) -> str: """ - The virtual node to associate with the weighted target. + The name of the virtual service that traffic is routed to. """ - return pulumi.get(self, "virtual_node") + return pulumi.get(self, "virtual_service_name") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecHttp2RouteMatch(dict): + def __init__(__self__, *, + prefix: str): + """ + :param str prefix: Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + """ + pulumi.set(__self__, "prefix", prefix) @property @pulumi.getter - def weight(self) -> int: + def prefix(self) -> str: """ - The relative weight of the weighted target. An integer between 0 and 100. + Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. """ - return pulumi.get(self, "weight") + return pulumi.get(self, "prefix") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecGrpcRouteMatch(dict): +class GatewayRouteSpecHttpRoute(dict): def __init__(__self__, *, - metadatas: Optional[Sequence['outputs.RouteSpecGrpcRouteMatchMetadata']] = None, - method_name: Optional[str] = None, - prefix: Optional[str] = None, - service_name: Optional[str] = None): + action: 'outputs.GatewayRouteSpecHttpRouteAction', + match: 'outputs.GatewayRouteSpecHttpRouteMatch'): """ - :param Sequence['RouteSpecGrpcRouteMatchMetadataArgs'] metadatas: The data to match from the gRPC request. - :param str method_name: The method name to match from the request. If you specify a name, you must also specify a `service_name`. - :param str prefix: The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param str service_name: The fully qualified domain name for the service to match from the request. + :param 'GatewayRouteSpecHttpRouteActionArgs' action: The action to take if a match is determined. + :param 'GatewayRouteSpecHttpRouteMatchArgs' match: The criteria for determining a request match. """ - if metadatas is not None: - pulumi.set(__self__, "metadatas", metadatas) - if method_name is not None: - pulumi.set(__self__, "method_name", method_name) - if prefix is not None: - pulumi.set(__self__, "prefix", prefix) - if service_name is not None: - pulumi.set(__self__, "service_name", service_name) + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "match", match) @property @pulumi.getter - def metadatas(self) -> Optional[Sequence['outputs.RouteSpecGrpcRouteMatchMetadata']]: + def action(self) -> 'outputs.GatewayRouteSpecHttpRouteAction': """ - The data to match from the gRPC request. + The action to take if a match is determined. """ - return pulumi.get(self, "metadatas") + return pulumi.get(self, "action") @property - @pulumi.getter(name="methodName") - def method_name(self) -> Optional[str]: + @pulumi.getter + def match(self) -> 'outputs.GatewayRouteSpecHttpRouteMatch': """ - The method name to match from the request. If you specify a name, you must also specify a `service_name`. + The criteria for determining a request match. """ - return pulumi.get(self, "method_name") + return pulumi.get(self, "match") - @property - @pulumi.getter - def prefix(self) -> Optional[str]: + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecHttpRouteAction(dict): + def __init__(__self__, *, + target: 'outputs.GatewayRouteSpecHttpRouteActionTarget'): """ - The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param 'GatewayRouteSpecHttpRouteActionTargetArgs' target: The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "prefix") + pulumi.set(__self__, "target", target) @property - @pulumi.getter(name="serviceName") - def service_name(self) -> Optional[str]: + @pulumi.getter + def target(self) -> 'outputs.GatewayRouteSpecHttpRouteActionTarget': """ - The fully qualified domain name for the service to match from the request. + The target that traffic is routed to when a request matches the gateway route. """ - return pulumi.get(self, "service_name") + return pulumi.get(self, "target") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecGrpcRouteMatchMetadata(dict): +class GatewayRouteSpecHttpRouteActionTarget(dict): def __init__(__self__, *, - name: str, - invert: Optional[bool] = None, - match: Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatch'] = None): + virtual_service: 'outputs.GatewayRouteSpecHttpRouteActionTargetVirtualService'): + """ + :param 'GatewayRouteSpecHttpRouteActionTargetVirtualServiceArgs' virtual_service: The virtual service gateway route target. + """ + pulumi.set(__self__, "virtual_service", virtual_service) + + @property + @pulumi.getter(name="virtualService") + def virtual_service(self) -> 'outputs.GatewayRouteSpecHttpRouteActionTargetVirtualService': + """ + The virtual service gateway route target. + """ + return pulumi.get(self, "virtual_service") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecHttpRouteActionTargetVirtualService(dict): + def __init__(__self__, *, + virtual_service_name: str): + """ + :param str virtual_service_name: The name of the virtual service that traffic is routed to. + """ + pulumi.set(__self__, "virtual_service_name", virtual_service_name) + + @property + @pulumi.getter(name="virtualServiceName") + def virtual_service_name(self) -> str: + """ + The name of the virtual service that traffic is routed to. + """ + return pulumi.get(self, "virtual_service_name") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class GatewayRouteSpecHttpRouteMatch(dict): + def __init__(__self__, *, + prefix: str): + """ + :param str prefix: Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + """ + pulumi.set(__self__, "prefix", prefix) + + @property + @pulumi.getter + def prefix(self) -> str: + """ + Specifies the path to match requests with. This parameter must always start with `/`, which by itself matches all requests to the virtual service name. + """ + return pulumi.get(self, "prefix") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class MeshSpec(dict): + def __init__(__self__, *, + egress_filter: Optional['outputs.MeshSpecEgressFilter'] = None): + """ + :param 'MeshSpecEgressFilterArgs' egress_filter: The egress filter rules for the service mesh. + """ + if egress_filter is not None: + pulumi.set(__self__, "egress_filter", egress_filter) + + @property + @pulumi.getter(name="egressFilter") + def egress_filter(self) -> Optional['outputs.MeshSpecEgressFilter']: + """ + The egress filter rules for the service mesh. + """ + return pulumi.get(self, "egress_filter") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class MeshSpecEgressFilter(dict): + def __init__(__self__, *, + type: Optional[str] = None): + """ + :param str type: The egress filter type. By default, the type is `DROP_ALL`. + Valid values are `ALLOW_ALL` and `DROP_ALL`. + """ + if type is not None: + pulumi.set(__self__, "type", type) + + @property + @pulumi.getter + def type(self) -> Optional[str]: + """ + The egress filter type. By default, the type is `DROP_ALL`. + Valid values are `ALLOW_ALL` and `DROP_ALL`. + """ + return pulumi.get(self, "type") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpec(dict): + def __init__(__self__, *, + grpc_route: Optional['outputs.RouteSpecGrpcRoute'] = None, + http2_route: Optional['outputs.RouteSpecHttp2Route'] = None, + http_route: Optional['outputs.RouteSpecHttpRoute'] = None, + priority: Optional[int] = None, + tcp_route: Optional['outputs.RouteSpecTcpRoute'] = None): + """ + :param 'RouteSpecGrpcRouteArgs' grpc_route: The gRPC routing information for the route. + :param 'RouteSpecHttp2RouteArgs' http2_route: The HTTP/2 routing information for the route. + :param 'RouteSpecHttpRouteArgs' http_route: The HTTP routing information for the route. + :param int priority: The priority for the route, between `0` and `1000`. + Routes are matched based on the specified value, where `0` is the highest priority. + :param 'RouteSpecTcpRouteArgs' tcp_route: The TCP routing information for the route. + """ + if grpc_route is not None: + pulumi.set(__self__, "grpc_route", grpc_route) + if http2_route is not None: + pulumi.set(__self__, "http2_route", http2_route) + if http_route is not None: + pulumi.set(__self__, "http_route", http_route) + if priority is not None: + pulumi.set(__self__, "priority", priority) + if tcp_route is not None: + pulumi.set(__self__, "tcp_route", tcp_route) + + @property + @pulumi.getter(name="grpcRoute") + def grpc_route(self) -> Optional['outputs.RouteSpecGrpcRoute']: + """ + The gRPC routing information for the route. + """ + return pulumi.get(self, "grpc_route") + + @property + @pulumi.getter(name="http2Route") + def http2_route(self) -> Optional['outputs.RouteSpecHttp2Route']: + """ + The HTTP/2 routing information for the route. + """ + return pulumi.get(self, "http2_route") + + @property + @pulumi.getter(name="httpRoute") + def http_route(self) -> Optional['outputs.RouteSpecHttpRoute']: + """ + The HTTP routing information for the route. + """ + return pulumi.get(self, "http_route") + + @property + @pulumi.getter + def priority(self) -> Optional[int]: + """ + The priority for the route, between `0` and `1000`. + Routes are matched based on the specified value, where `0` is the highest priority. + """ + return pulumi.get(self, "priority") + + @property + @pulumi.getter(name="tcpRoute") + def tcp_route(self) -> Optional['outputs.RouteSpecTcpRoute']: + """ + The TCP routing information for the route. + """ + return pulumi.get(self, "tcp_route") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRoute(dict): + def __init__(__self__, *, + action: 'outputs.RouteSpecGrpcRouteAction', + match: 'outputs.RouteSpecGrpcRouteMatch', + retry_policy: Optional['outputs.RouteSpecGrpcRouteRetryPolicy'] = None, + timeout: Optional['outputs.RouteSpecGrpcRouteTimeout'] = None): + """ + :param 'RouteSpecGrpcRouteActionArgs' action: The action to take if a match is determined. + :param 'RouteSpecGrpcRouteMatchArgs' match: The criteria for determining an gRPC request match. + :param 'RouteSpecGrpcRouteRetryPolicyArgs' retry_policy: The retry policy. + :param 'RouteSpecGrpcRouteTimeoutArgs' timeout: The types of timeouts. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "match", match) + if retry_policy is not None: + pulumi.set(__self__, "retry_policy", retry_policy) + if timeout is not None: + pulumi.set(__self__, "timeout", timeout) + + @property + @pulumi.getter + def action(self) -> 'outputs.RouteSpecGrpcRouteAction': + """ + The action to take if a match is determined. + """ + return pulumi.get(self, "action") + + @property + @pulumi.getter + def match(self) -> 'outputs.RouteSpecGrpcRouteMatch': + """ + The criteria for determining an gRPC request match. + """ + return pulumi.get(self, "match") + + @property + @pulumi.getter(name="retryPolicy") + def retry_policy(self) -> Optional['outputs.RouteSpecGrpcRouteRetryPolicy']: + """ + The retry policy. + """ + return pulumi.get(self, "retry_policy") + + @property + @pulumi.getter + def timeout(self) -> Optional['outputs.RouteSpecGrpcRouteTimeout']: + """ + The types of timeouts. + """ + return pulumi.get(self, "timeout") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteAction(dict): + def __init__(__self__, *, + weighted_targets: Sequence['outputs.RouteSpecGrpcRouteActionWeightedTarget']): + """ + :param Sequence['RouteSpecGrpcRouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + pulumi.set(__self__, "weighted_targets", weighted_targets) + + @property + @pulumi.getter(name="weightedTargets") + def weighted_targets(self) -> Sequence['outputs.RouteSpecGrpcRouteActionWeightedTarget']: + """ + The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + return pulumi.get(self, "weighted_targets") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteActionWeightedTarget(dict): + def __init__(__self__, *, + virtual_node: str, + weight: int): + """ + :param str virtual_node: The virtual node to associate with the weighted target. + :param int weight: The relative weight of the weighted target. An integer between 0 and 100. + """ + pulumi.set(__self__, "virtual_node", virtual_node) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter(name="virtualNode") + def virtual_node(self) -> str: + """ + The virtual node to associate with the weighted target. + """ + return pulumi.get(self, "virtual_node") + + @property + @pulumi.getter + def weight(self) -> int: + """ + The relative weight of the weighted target. An integer between 0 and 100. + """ + return pulumi.get(self, "weight") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteMatch(dict): + def __init__(__self__, *, + metadatas: Optional[Sequence['outputs.RouteSpecGrpcRouteMatchMetadata']] = None, + method_name: Optional[str] = None, + prefix: Optional[str] = None, + service_name: Optional[str] = None): + """ + :param Sequence['RouteSpecGrpcRouteMatchMetadataArgs'] metadatas: The data to match from the gRPC request. + :param str method_name: The method name to match from the request. If you specify a name, you must also specify a `service_name`. + :param str prefix: The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param str service_name: The fully qualified domain name for the service to match from the request. + """ + if metadatas is not None: + pulumi.set(__self__, "metadatas", metadatas) + if method_name is not None: + pulumi.set(__self__, "method_name", method_name) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + if service_name is not None: + pulumi.set(__self__, "service_name", service_name) + + @property + @pulumi.getter + def metadatas(self) -> Optional[Sequence['outputs.RouteSpecGrpcRouteMatchMetadata']]: + """ + The data to match from the gRPC request. + """ + return pulumi.get(self, "metadatas") + + @property + @pulumi.getter(name="methodName") + def method_name(self) -> Optional[str]: + """ + The method name to match from the request. If you specify a name, you must also specify a `service_name`. + """ + return pulumi.get(self, "method_name") + + @property + @pulumi.getter + def prefix(self) -> Optional[str]: + """ + The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + """ + return pulumi.get(self, "prefix") + + @property + @pulumi.getter(name="serviceName") + def service_name(self) -> Optional[str]: + """ + The fully qualified domain name for the service to match from the request. + """ + return pulumi.get(self, "service_name") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteMatchMetadata(dict): + def __init__(__self__, *, + name: str, + invert: Optional[bool] = None, + match: Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatch'] = None): """ :param str name: The name of the route. :param bool invert: If `true`, the match is on the opposite of the `match` criteria. Default is `false`. @@ -414,7 +842,530 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> str: """ - The name of the route. + The name of the route. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter + def invert(self) -> Optional[bool]: + """ + If `true`, the match is on the opposite of the `match` criteria. Default is `false`. + """ + return pulumi.get(self, "invert") + + @property + @pulumi.getter + def match(self) -> Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatch']: + """ + The data to match from the request. + """ + return pulumi.get(self, "match") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteMatchMetadataMatch(dict): + def __init__(__self__, *, + exact: Optional[str] = None, + prefix: Optional[str] = None, + range: Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatchRange'] = None, + regex: Optional[str] = None, + suffix: Optional[str] = None): + """ + :param str exact: The value sent by the client must match the specified value exactly. + :param str prefix: The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param 'RouteSpecGrpcRouteMatchMetadataMatchRangeArgs' range: The object that specifies the range of numbers that the value sent by the client must be included in. + :param str regex: The value sent by the client must include the specified characters. + :param str suffix: The value sent by the client must end with the specified characters. + """ + if exact is not None: + pulumi.set(__self__, "exact", exact) + if prefix is not None: + pulumi.set(__self__, "prefix", prefix) + if range is not None: + pulumi.set(__self__, "range", range) + if regex is not None: + pulumi.set(__self__, "regex", regex) + if suffix is not None: + pulumi.set(__self__, "suffix", suffix) + + @property + @pulumi.getter + def exact(self) -> Optional[str]: + """ + The value sent by the client must match the specified value exactly. + """ + return pulumi.get(self, "exact") + + @property + @pulumi.getter + def prefix(self) -> Optional[str]: + """ + The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + """ + return pulumi.get(self, "prefix") + + @property + @pulumi.getter + def range(self) -> Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatchRange']: + """ + The object that specifies the range of numbers that the value sent by the client must be included in. + """ + return pulumi.get(self, "range") + + @property + @pulumi.getter + def regex(self) -> Optional[str]: + """ + The value sent by the client must include the specified characters. + """ + return pulumi.get(self, "regex") + + @property + @pulumi.getter + def suffix(self) -> Optional[str]: + """ + The value sent by the client must end with the specified characters. + """ + return pulumi.get(self, "suffix") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteMatchMetadataMatchRange(dict): + def __init__(__self__, *, + end: int, + start: int): + """ + :param int end: The end of the range. + :param int start: The start of the range. + """ + pulumi.set(__self__, "end", end) + pulumi.set(__self__, "start", start) + + @property + @pulumi.getter + def end(self) -> int: + """ + The end of the range. + """ + return pulumi.get(self, "end") + + @property + @pulumi.getter + def start(self) -> int: + """ + The start of the range. + """ + return pulumi.get(self, "start") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteRetryPolicy(dict): + def __init__(__self__, *, + max_retries: int, + per_retry_timeout: 'outputs.RouteSpecGrpcRouteRetryPolicyPerRetryTimeout', + grpc_retry_events: Optional[Sequence[str]] = None, + http_retry_events: Optional[Sequence[str]] = None, + tcp_retry_events: Optional[Sequence[str]] = None): + """ + :param int max_retries: The maximum number of retries. + :param 'RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: The per-retry timeout. + :param Sequence[str] grpc_retry_events: List of gRPC retry events. + Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. + :param Sequence[str] http_retry_events: List of HTTP retry events. + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + :param Sequence[str] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. + """ + pulumi.set(__self__, "max_retries", max_retries) + pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) + if grpc_retry_events is not None: + pulumi.set(__self__, "grpc_retry_events", grpc_retry_events) + if http_retry_events is not None: + pulumi.set(__self__, "http_retry_events", http_retry_events) + if tcp_retry_events is not None: + pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + + @property + @pulumi.getter(name="maxRetries") + def max_retries(self) -> int: + """ + The maximum number of retries. + """ + return pulumi.get(self, "max_retries") + + @property + @pulumi.getter(name="perRetryTimeout") + def per_retry_timeout(self) -> 'outputs.RouteSpecGrpcRouteRetryPolicyPerRetryTimeout': + """ + The per-retry timeout. + """ + return pulumi.get(self, "per_retry_timeout") + + @property + @pulumi.getter(name="grpcRetryEvents") + def grpc_retry_events(self) -> Optional[Sequence[str]]: + """ + List of gRPC retry events. + Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. + """ + return pulumi.get(self, "grpc_retry_events") + + @property + @pulumi.getter(name="httpRetryEvents") + def http_retry_events(self) -> Optional[Sequence[str]]: + """ + List of HTTP retry events. + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + """ + return pulumi.get(self, "http_retry_events") + + @property + @pulumi.getter(name="tcpRetryEvents") + def tcp_retry_events(self) -> Optional[Sequence[str]]: + """ + List of TCP retry events. The only valid value is `connection-error`. + """ + return pulumi.get(self, "tcp_retry_events") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteRetryPolicyPerRetryTimeout(dict): + def __init__(__self__, *, + unit: str, + value: int): + """ + :param str unit: Retry unit. Valid values: `ms`, `s`. + :param int value: Retry value. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + """ + Retry unit. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> int: + """ + Retry value. + """ + return pulumi.get(self, "value") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteTimeout(dict): + def __init__(__self__, *, + idle: Optional['outputs.RouteSpecGrpcRouteTimeoutIdle'] = None, + per_request: Optional['outputs.RouteSpecGrpcRouteTimeoutPerRequest'] = None): + """ + :param 'RouteSpecGrpcRouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param 'RouteSpecGrpcRouteTimeoutPerRequestArgs' per_request: The per request timeout. + """ + if idle is not None: + pulumi.set(__self__, "idle", idle) + if per_request is not None: + pulumi.set(__self__, "per_request", per_request) + + @property + @pulumi.getter + def idle(self) -> Optional['outputs.RouteSpecGrpcRouteTimeoutIdle']: + """ + The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + """ + return pulumi.get(self, "idle") + + @property + @pulumi.getter(name="perRequest") + def per_request(self) -> Optional['outputs.RouteSpecGrpcRouteTimeoutPerRequest']: + """ + The per request timeout. + """ + return pulumi.get(self, "per_request") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteTimeoutIdle(dict): + def __init__(__self__, *, + unit: str, + value: int): + """ + :param str unit: The unit of time. Valid values: `ms`, `s`. + :param int value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + """ + The unit of time. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> int: + """ + The number of time units. Minimum value of `0`. + """ + return pulumi.get(self, "value") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecGrpcRouteTimeoutPerRequest(dict): + def __init__(__self__, *, + unit: str, + value: int): + """ + :param str unit: The unit of time. Valid values: `ms`, `s`. + :param int value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + """ + The unit of time. Valid values: `ms`, `s`. + """ + return pulumi.get(self, "unit") + + @property + @pulumi.getter + def value(self) -> int: + """ + The number of time units. Minimum value of `0`. + """ + return pulumi.get(self, "value") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecHttp2Route(dict): + def __init__(__self__, *, + action: 'outputs.RouteSpecHttp2RouteAction', + match: 'outputs.RouteSpecHttp2RouteMatch', + retry_policy: Optional['outputs.RouteSpecHttp2RouteRetryPolicy'] = None, + timeout: Optional['outputs.RouteSpecHttp2RouteTimeout'] = None): + """ + :param 'RouteSpecHttp2RouteActionArgs' action: The action to take if a match is determined. + :param 'RouteSpecHttp2RouteMatchArgs' match: The criteria for determining an gRPC request match. + :param 'RouteSpecHttp2RouteRetryPolicyArgs' retry_policy: The retry policy. + :param 'RouteSpecHttp2RouteTimeoutArgs' timeout: The types of timeouts. + """ + pulumi.set(__self__, "action", action) + pulumi.set(__self__, "match", match) + if retry_policy is not None: + pulumi.set(__self__, "retry_policy", retry_policy) + if timeout is not None: + pulumi.set(__self__, "timeout", timeout) + + @property + @pulumi.getter + def action(self) -> 'outputs.RouteSpecHttp2RouteAction': + """ + The action to take if a match is determined. + """ + return pulumi.get(self, "action") + + @property + @pulumi.getter + def match(self) -> 'outputs.RouteSpecHttp2RouteMatch': + """ + The criteria for determining an gRPC request match. + """ + return pulumi.get(self, "match") + + @property + @pulumi.getter(name="retryPolicy") + def retry_policy(self) -> Optional['outputs.RouteSpecHttp2RouteRetryPolicy']: + """ + The retry policy. + """ + return pulumi.get(self, "retry_policy") + + @property + @pulumi.getter + def timeout(self) -> Optional['outputs.RouteSpecHttp2RouteTimeout']: + """ + The types of timeouts. + """ + return pulumi.get(self, "timeout") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecHttp2RouteAction(dict): + def __init__(__self__, *, + weighted_targets: Sequence['outputs.RouteSpecHttp2RouteActionWeightedTarget']): + """ + :param Sequence['RouteSpecHttp2RouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + pulumi.set(__self__, "weighted_targets", weighted_targets) + + @property + @pulumi.getter(name="weightedTargets") + def weighted_targets(self) -> Sequence['outputs.RouteSpecHttp2RouteActionWeightedTarget']: + """ + The targets that traffic is routed to when a request matches the route. + You can specify one or more targets and their relative weights with which to distribute traffic. + """ + return pulumi.get(self, "weighted_targets") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecHttp2RouteActionWeightedTarget(dict): + def __init__(__self__, *, + virtual_node: str, + weight: int): + """ + :param str virtual_node: The virtual node to associate with the weighted target. + :param int weight: The relative weight of the weighted target. An integer between 0 and 100. + """ + pulumi.set(__self__, "virtual_node", virtual_node) + pulumi.set(__self__, "weight", weight) + + @property + @pulumi.getter(name="virtualNode") + def virtual_node(self) -> str: + """ + The virtual node to associate with the weighted target. + """ + return pulumi.get(self, "virtual_node") + + @property + @pulumi.getter + def weight(self) -> int: + """ + The relative weight of the weighted target. An integer between 0 and 100. + """ + return pulumi.get(self, "weight") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecHttp2RouteMatch(dict): + def __init__(__self__, *, + prefix: str, + headers: Optional[Sequence['outputs.RouteSpecHttp2RouteMatchHeader']] = None, + method: Optional[str] = None, + scheme: Optional[str] = None): + """ + :param str prefix: The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param Sequence['RouteSpecHttp2RouteMatchHeaderArgs'] headers: The client request headers to match on. + :param str method: The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + :param str scheme: The client request header scheme to match on. Valid values: `http`, `https`. + """ + pulumi.set(__self__, "prefix", prefix) + if headers is not None: + pulumi.set(__self__, "headers", headers) + if method is not None: + pulumi.set(__self__, "method", method) + if scheme is not None: + pulumi.set(__self__, "scheme", scheme) + + @property + @pulumi.getter + def prefix(self) -> str: + """ + The value sent by the client must begin with the specified characters. + This parameter must always start with /, which by itself matches all requests to the virtual router service name. + """ + return pulumi.get(self, "prefix") + + @property + @pulumi.getter + def headers(self) -> Optional[Sequence['outputs.RouteSpecHttp2RouteMatchHeader']]: + """ + The client request headers to match on. + """ + return pulumi.get(self, "headers") + + @property + @pulumi.getter + def method(self) -> Optional[str]: + """ + The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + """ + return pulumi.get(self, "method") + + @property + @pulumi.getter + def scheme(self) -> Optional[str]: + """ + The client request header scheme to match on. Valid values: `http`, `https`. + """ + return pulumi.get(self, "scheme") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecHttp2RouteMatchHeader(dict): + def __init__(__self__, *, + name: str, + invert: Optional[bool] = None, + match: Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatch'] = None): + """ + :param str name: A name for the HTTP header in the client request that will be matched on. + :param bool invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + :param 'RouteSpecHttp2RouteMatchHeaderMatchArgs' match: The method and value to match the header value sent with a request. Specify one match method. + """ + pulumi.set(__self__, "name", name) + if invert is not None: + pulumi.set(__self__, "invert", invert) + if match is not None: + pulumi.set(__self__, "match", match) + + @property + @pulumi.getter + def name(self) -> str: + """ + A name for the HTTP header in the client request that will be matched on. """ return pulumi.get(self, "name") @@ -422,15 +1373,15 @@ def name(self) -> str: @pulumi.getter def invert(self) -> Optional[bool]: """ - If `true`, the match is on the opposite of the `match` criteria. Default is `false`. + If `true`, the match is on the opposite of the `match` method and value. Default is `false`. """ return pulumi.get(self, "invert") @property @pulumi.getter - def match(self) -> Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatch']: + def match(self) -> Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatch']: """ - The data to match from the request. + The method and value to match the header value sent with a request. Specify one match method. """ return pulumi.get(self, "match") @@ -439,18 +1390,18 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecGrpcRouteMatchMetadataMatch(dict): +class RouteSpecHttp2RouteMatchHeaderMatch(dict): def __init__(__self__, *, exact: Optional[str] = None, prefix: Optional[str] = None, - range: Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatchRange'] = None, + range: Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatchRange'] = None, regex: Optional[str] = None, suffix: Optional[str] = None): """ :param str exact: The value sent by the client must match the specified value exactly. :param str prefix: The value sent by the client must begin with the specified characters. This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param 'RouteSpecGrpcRouteMatchMetadataMatchRangeArgs' range: The object that specifies the range of numbers that the value sent by the client must be included in. + :param 'RouteSpecHttp2RouteMatchHeaderMatchRangeArgs' range: The object that specifies the range of numbers that the value sent by the client must be included in. :param str regex: The value sent by the client must include the specified characters. :param str suffix: The value sent by the client must end with the specified characters. """ @@ -484,7 +1435,7 @@ def prefix(self) -> Optional[str]: @property @pulumi.getter - def range(self) -> Optional['outputs.RouteSpecGrpcRouteMatchMetadataMatchRange']: + def range(self) -> Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatchRange']: """ The object that specifies the range of numbers that the value sent by the client must be included in. """ @@ -511,7 +1462,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecGrpcRouteMatchMetadataMatchRange(dict): +class RouteSpecHttp2RouteMatchHeaderMatchRange(dict): def __init__(__self__, *, end: int, start: int): @@ -543,18 +1494,15 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecGrpcRouteRetryPolicy(dict): +class RouteSpecHttp2RouteRetryPolicy(dict): def __init__(__self__, *, max_retries: int, - per_retry_timeout: 'outputs.RouteSpecGrpcRouteRetryPolicyPerRetryTimeout', - grpc_retry_events: Optional[Sequence[str]] = None, + per_retry_timeout: 'outputs.RouteSpecHttp2RouteRetryPolicyPerRetryTimeout', http_retry_events: Optional[Sequence[str]] = None, tcp_retry_events: Optional[Sequence[str]] = None): """ :param int max_retries: The maximum number of retries. - :param 'RouteSpecGrpcRouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: The per-retry timeout. - :param Sequence[str] grpc_retry_events: List of gRPC retry events. - Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. + :param 'RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: The per-retry timeout. :param Sequence[str] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). @@ -562,8 +1510,6 @@ def __init__(__self__, *, """ pulumi.set(__self__, "max_retries", max_retries) pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) - if grpc_retry_events is not None: - pulumi.set(__self__, "grpc_retry_events", grpc_retry_events) if http_retry_events is not None: pulumi.set(__self__, "http_retry_events", http_retry_events) if tcp_retry_events is not None: @@ -579,21 +1525,12 @@ def max_retries(self) -> int: @property @pulumi.getter(name="perRetryTimeout") - def per_retry_timeout(self) -> 'outputs.RouteSpecGrpcRouteRetryPolicyPerRetryTimeout': + def per_retry_timeout(self) -> 'outputs.RouteSpecHttp2RouteRetryPolicyPerRetryTimeout': """ The per-retry timeout. """ return pulumi.get(self, "per_retry_timeout") - @property - @pulumi.getter(name="grpcRetryEvents") - def grpc_retry_events(self) -> Optional[Sequence[str]]: - """ - List of gRPC retry events. - Valid values: `cancelled`, `deadline-exceeded`, `internal`, `resource-exhausted`, `unavailable`. - """ - return pulumi.get(self, "grpc_retry_events") - @property @pulumi.getter(name="httpRetryEvents") def http_retry_events(self) -> Optional[Sequence[str]]: @@ -617,7 +1554,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecGrpcRouteRetryPolicyPerRetryTimeout(dict): +class RouteSpecHttp2RouteRetryPolicyPerRetryTimeout(dict): def __init__(__self__, *, unit: str, value: int): @@ -649,13 +1586,13 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecGrpcRouteTimeout(dict): +class RouteSpecHttp2RouteTimeout(dict): def __init__(__self__, *, - idle: Optional['outputs.RouteSpecGrpcRouteTimeoutIdle'] = None, - per_request: Optional['outputs.RouteSpecGrpcRouteTimeoutPerRequest'] = None): + idle: Optional['outputs.RouteSpecHttp2RouteTimeoutIdle'] = None, + per_request: Optional['outputs.RouteSpecHttp2RouteTimeoutPerRequest'] = None): """ - :param 'RouteSpecGrpcRouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - :param 'RouteSpecGrpcRouteTimeoutPerRequestArgs' per_request: The per request timeout. + :param 'RouteSpecHttp2RouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param 'RouteSpecHttp2RouteTimeoutPerRequestArgs' per_request: The per request timeout. """ if idle is not None: pulumi.set(__self__, "idle", idle) @@ -664,7 +1601,7 @@ def __init__(__self__, *, @property @pulumi.getter - def idle(self) -> Optional['outputs.RouteSpecGrpcRouteTimeoutIdle']: + def idle(self) -> Optional['outputs.RouteSpecHttp2RouteTimeoutIdle']: """ The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. """ @@ -672,7 +1609,7 @@ def idle(self) -> Optional['outputs.RouteSpecGrpcRouteTimeoutIdle']: @property @pulumi.getter(name="perRequest") - def per_request(self) -> Optional['outputs.RouteSpecGrpcRouteTimeoutPerRequest']: + def per_request(self) -> Optional['outputs.RouteSpecHttp2RouteTimeoutPerRequest']: """ The per request timeout. """ @@ -683,7 +1620,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecGrpcRouteTimeoutIdle(dict): +class RouteSpecHttp2RouteTimeoutIdle(dict): def __init__(__self__, *, unit: str, value: int): @@ -715,7 +1652,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecGrpcRouteTimeoutPerRequest(dict): +class RouteSpecHttp2RouteTimeoutPerRequest(dict): def __init__(__self__, *, unit: str, value: int): @@ -747,17 +1684,17 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2Route(dict): +class RouteSpecHttpRoute(dict): def __init__(__self__, *, - action: 'outputs.RouteSpecHttp2RouteAction', - match: 'outputs.RouteSpecHttp2RouteMatch', - retry_policy: Optional['outputs.RouteSpecHttp2RouteRetryPolicy'] = None, - timeout: Optional['outputs.RouteSpecHttp2RouteTimeout'] = None): + action: 'outputs.RouteSpecHttpRouteAction', + match: 'outputs.RouteSpecHttpRouteMatch', + retry_policy: Optional['outputs.RouteSpecHttpRouteRetryPolicy'] = None, + timeout: Optional['outputs.RouteSpecHttpRouteTimeout'] = None): """ - :param 'RouteSpecHttp2RouteActionArgs' action: The action to take if a match is determined. - :param 'RouteSpecHttp2RouteMatchArgs' match: The criteria for determining an gRPC request match. - :param 'RouteSpecHttp2RouteRetryPolicyArgs' retry_policy: The retry policy. - :param 'RouteSpecHttp2RouteTimeoutArgs' timeout: The types of timeouts. + :param 'RouteSpecHttpRouteActionArgs' action: The action to take if a match is determined. + :param 'RouteSpecHttpRouteMatchArgs' match: The criteria for determining an HTTP request match. + :param 'RouteSpecHttpRouteRetryPolicyArgs' retry_policy: The retry policy. + :param 'RouteSpecHttpRouteTimeoutArgs' timeout: The types of timeouts. """ pulumi.set(__self__, "action", action) pulumi.set(__self__, "match", match) @@ -768,7 +1705,7 @@ def __init__(__self__, *, @property @pulumi.getter - def action(self) -> 'outputs.RouteSpecHttp2RouteAction': + def action(self) -> 'outputs.RouteSpecHttpRouteAction': """ The action to take if a match is determined. """ @@ -776,15 +1713,15 @@ def action(self) -> 'outputs.RouteSpecHttp2RouteAction': @property @pulumi.getter - def match(self) -> 'outputs.RouteSpecHttp2RouteMatch': + def match(self) -> 'outputs.RouteSpecHttpRouteMatch': """ - The criteria for determining an gRPC request match. + The criteria for determining an HTTP request match. """ return pulumi.get(self, "match") @property @pulumi.getter(name="retryPolicy") - def retry_policy(self) -> Optional['outputs.RouteSpecHttp2RouteRetryPolicy']: + def retry_policy(self) -> Optional['outputs.RouteSpecHttpRouteRetryPolicy']: """ The retry policy. """ @@ -792,7 +1729,7 @@ def retry_policy(self) -> Optional['outputs.RouteSpecHttp2RouteRetryPolicy']: @property @pulumi.getter - def timeout(self) -> Optional['outputs.RouteSpecHttp2RouteTimeout']: + def timeout(self) -> Optional['outputs.RouteSpecHttpRouteTimeout']: """ The types of timeouts. """ @@ -803,18 +1740,18 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteAction(dict): +class RouteSpecHttpRouteAction(dict): def __init__(__self__, *, - weighted_targets: Sequence['outputs.RouteSpecHttp2RouteActionWeightedTarget']): + weighted_targets: Sequence['outputs.RouteSpecHttpRouteActionWeightedTarget']): """ - :param Sequence['RouteSpecHttp2RouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. + :param Sequence['RouteSpecHttpRouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ pulumi.set(__self__, "weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> Sequence['outputs.RouteSpecHttp2RouteActionWeightedTarget']: + def weighted_targets(self) -> Sequence['outputs.RouteSpecHttpRouteActionWeightedTarget']: """ The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. @@ -826,7 +1763,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteActionWeightedTarget(dict): +class RouteSpecHttpRouteActionWeightedTarget(dict): def __init__(__self__, *, virtual_node: str, weight: int): @@ -858,16 +1795,16 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteMatch(dict): +class RouteSpecHttpRouteMatch(dict): def __init__(__self__, *, prefix: str, - headers: Optional[Sequence['outputs.RouteSpecHttp2RouteMatchHeader']] = None, + headers: Optional[Sequence['outputs.RouteSpecHttpRouteMatchHeader']] = None, method: Optional[str] = None, scheme: Optional[str] = None): """ :param str prefix: The value sent by the client must begin with the specified characters. This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param Sequence['RouteSpecHttp2RouteMatchHeaderArgs'] headers: The client request headers to match on. + :param Sequence['RouteSpecHttpRouteMatchHeaderArgs'] headers: The client request headers to match on. :param str method: The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. :param str scheme: The client request header scheme to match on. Valid values: `http`, `https`. """ @@ -890,7 +1827,7 @@ def prefix(self) -> str: @property @pulumi.getter - def headers(self) -> Optional[Sequence['outputs.RouteSpecHttp2RouteMatchHeader']]: + def headers(self) -> Optional[Sequence['outputs.RouteSpecHttpRouteMatchHeader']]: """ The client request headers to match on. """ @@ -917,15 +1854,15 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteMatchHeader(dict): +class RouteSpecHttpRouteMatchHeader(dict): def __init__(__self__, *, name: str, invert: Optional[bool] = None, - match: Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatch'] = None): + match: Optional['outputs.RouteSpecHttpRouteMatchHeaderMatch'] = None): """ :param str name: A name for the HTTP header in the client request that will be matched on. :param bool invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - :param 'RouteSpecHttp2RouteMatchHeaderMatchArgs' match: The method and value to match the header value sent with a request. Specify one match method. + :param 'RouteSpecHttpRouteMatchHeaderMatchArgs' match: The method and value to match the header value sent with a request. Specify one match method. """ pulumi.set(__self__, "name", name) if invert is not None: @@ -951,7 +1888,7 @@ def invert(self) -> Optional[bool]: @property @pulumi.getter - def match(self) -> Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatch']: + def match(self) -> Optional['outputs.RouteSpecHttpRouteMatchHeaderMatch']: """ The method and value to match the header value sent with a request. Specify one match method. """ @@ -962,18 +1899,18 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteMatchHeaderMatch(dict): +class RouteSpecHttpRouteMatchHeaderMatch(dict): def __init__(__self__, *, exact: Optional[str] = None, prefix: Optional[str] = None, - range: Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatchRange'] = None, + range: Optional['outputs.RouteSpecHttpRouteMatchHeaderMatchRange'] = None, regex: Optional[str] = None, suffix: Optional[str] = None): """ :param str exact: The value sent by the client must match the specified value exactly. :param str prefix: The value sent by the client must begin with the specified characters. This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param 'RouteSpecHttp2RouteMatchHeaderMatchRangeArgs' range: The object that specifies the range of numbers that the value sent by the client must be included in. + :param 'RouteSpecHttpRouteMatchHeaderMatchRangeArgs' range: The object that specifies the range of numbers that the value sent by the client must be included in. :param str regex: The value sent by the client must include the specified characters. :param str suffix: The value sent by the client must end with the specified characters. """ @@ -1007,7 +1944,7 @@ def prefix(self) -> Optional[str]: @property @pulumi.getter - def range(self) -> Optional['outputs.RouteSpecHttp2RouteMatchHeaderMatchRange']: + def range(self) -> Optional['outputs.RouteSpecHttpRouteMatchHeaderMatchRange']: """ The object that specifies the range of numbers that the value sent by the client must be included in. """ @@ -1034,7 +1971,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteMatchHeaderMatchRange(dict): +class RouteSpecHttpRouteMatchHeaderMatchRange(dict): def __init__(__self__, *, end: int, start: int): @@ -1066,15 +2003,15 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteRetryPolicy(dict): +class RouteSpecHttpRouteRetryPolicy(dict): def __init__(__self__, *, max_retries: int, - per_retry_timeout: 'outputs.RouteSpecHttp2RouteRetryPolicyPerRetryTimeout', + per_retry_timeout: 'outputs.RouteSpecHttpRouteRetryPolicyPerRetryTimeout', http_retry_events: Optional[Sequence[str]] = None, tcp_retry_events: Optional[Sequence[str]] = None): """ :param int max_retries: The maximum number of retries. - :param 'RouteSpecHttp2RouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: The per-retry timeout. + :param 'RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: The per-retry timeout. :param Sequence[str] http_retry_events: List of HTTP retry events. Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). @@ -1097,7 +2034,7 @@ def max_retries(self) -> int: @property @pulumi.getter(name="perRetryTimeout") - def per_retry_timeout(self) -> 'outputs.RouteSpecHttp2RouteRetryPolicyPerRetryTimeout': + def per_retry_timeout(self) -> 'outputs.RouteSpecHttpRouteRetryPolicyPerRetryTimeout': """ The per-retry timeout. """ @@ -1126,7 +2063,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteRetryPolicyPerRetryTimeout(dict): +class RouteSpecHttpRouteRetryPolicyPerRetryTimeout(dict): def __init__(__self__, *, unit: str, value: int): @@ -1158,13 +2095,13 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteTimeout(dict): +class RouteSpecHttpRouteTimeout(dict): def __init__(__self__, *, - idle: Optional['outputs.RouteSpecHttp2RouteTimeoutIdle'] = None, - per_request: Optional['outputs.RouteSpecHttp2RouteTimeoutPerRequest'] = None): + idle: Optional['outputs.RouteSpecHttpRouteTimeoutIdle'] = None, + per_request: Optional['outputs.RouteSpecHttpRouteTimeoutPerRequest'] = None): """ - :param 'RouteSpecHttp2RouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - :param 'RouteSpecHttp2RouteTimeoutPerRequestArgs' per_request: The per request timeout. + :param 'RouteSpecHttpRouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param 'RouteSpecHttpRouteTimeoutPerRequestArgs' per_request: The per request timeout. """ if idle is not None: pulumi.set(__self__, "idle", idle) @@ -1173,7 +2110,7 @@ def __init__(__self__, *, @property @pulumi.getter - def idle(self) -> Optional['outputs.RouteSpecHttp2RouteTimeoutIdle']: + def idle(self) -> Optional['outputs.RouteSpecHttpRouteTimeoutIdle']: """ The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. """ @@ -1181,7 +2118,7 @@ def idle(self) -> Optional['outputs.RouteSpecHttp2RouteTimeoutIdle']: @property @pulumi.getter(name="perRequest") - def per_request(self) -> Optional['outputs.RouteSpecHttp2RouteTimeoutPerRequest']: + def per_request(self) -> Optional['outputs.RouteSpecHttpRouteTimeoutPerRequest']: """ The per request timeout. """ @@ -1192,7 +2129,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteTimeoutIdle(dict): +class RouteSpecHttpRouteTimeoutIdle(dict): def __init__(__self__, *, unit: str, value: int): @@ -1224,7 +2161,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttp2RouteTimeoutPerRequest(dict): +class RouteSpecHttpRouteTimeoutPerRequest(dict): def __init__(__self__, *, unit: str, value: int): @@ -1256,28 +2193,21 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttpRoute(dict): +class RouteSpecTcpRoute(dict): def __init__(__self__, *, - action: 'outputs.RouteSpecHttpRouteAction', - match: 'outputs.RouteSpecHttpRouteMatch', - retry_policy: Optional['outputs.RouteSpecHttpRouteRetryPolicy'] = None, - timeout: Optional['outputs.RouteSpecHttpRouteTimeout'] = None): + action: 'outputs.RouteSpecTcpRouteAction', + timeout: Optional['outputs.RouteSpecTcpRouteTimeout'] = None): """ - :param 'RouteSpecHttpRouteActionArgs' action: The action to take if a match is determined. - :param 'RouteSpecHttpRouteMatchArgs' match: The criteria for determining an HTTP request match. - :param 'RouteSpecHttpRouteRetryPolicyArgs' retry_policy: The retry policy. - :param 'RouteSpecHttpRouteTimeoutArgs' timeout: The types of timeouts. + :param 'RouteSpecTcpRouteActionArgs' action: The action to take if a match is determined. + :param 'RouteSpecTcpRouteTimeoutArgs' timeout: The types of timeouts. """ pulumi.set(__self__, "action", action) - pulumi.set(__self__, "match", match) - if retry_policy is not None: - pulumi.set(__self__, "retry_policy", retry_policy) if timeout is not None: pulumi.set(__self__, "timeout", timeout) @property @pulumi.getter - def action(self) -> 'outputs.RouteSpecHttpRouteAction': + def action(self) -> 'outputs.RouteSpecTcpRouteAction': """ The action to take if a match is determined. """ @@ -1285,23 +2215,7 @@ def action(self) -> 'outputs.RouteSpecHttpRouteAction': @property @pulumi.getter - def match(self) -> 'outputs.RouteSpecHttpRouteMatch': - """ - The criteria for determining an HTTP request match. - """ - return pulumi.get(self, "match") - - @property - @pulumi.getter(name="retryPolicy") - def retry_policy(self) -> Optional['outputs.RouteSpecHttpRouteRetryPolicy']: - """ - The retry policy. - """ - return pulumi.get(self, "retry_policy") - - @property - @pulumi.getter - def timeout(self) -> Optional['outputs.RouteSpecHttpRouteTimeout']: + def timeout(self) -> Optional['outputs.RouteSpecTcpRouteTimeout']: """ The types of timeouts. """ @@ -1312,18 +2226,18 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttpRouteAction(dict): +class RouteSpecTcpRouteAction(dict): def __init__(__self__, *, - weighted_targets: Sequence['outputs.RouteSpecHttpRouteActionWeightedTarget']): + weighted_targets: Sequence['outputs.RouteSpecTcpRouteActionWeightedTarget']): """ - :param Sequence['RouteSpecHttpRouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. + :param Sequence['RouteSpecTcpRouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. """ pulumi.set(__self__, "weighted_targets", weighted_targets) @property @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> Sequence['outputs.RouteSpecHttpRouteActionWeightedTarget']: + def weighted_targets(self) -> Sequence['outputs.RouteSpecTcpRouteActionWeightedTarget']: """ The targets that traffic is routed to when a request matches the route. You can specify one or more targets and their relative weights with which to distribute traffic. @@ -1335,7 +2249,7 @@ def _translate_property(self, prop): @pulumi.output_type -class RouteSpecHttpRouteActionWeightedTarget(dict): +class RouteSpecTcpRouteActionWeightedTarget(dict): def __init__(__self__, *, virtual_node: str, weight: int): @@ -1350,557 +2264,648 @@ def __init__(__self__, *, @pulumi.getter(name="virtualNode") def virtual_node(self) -> str: """ - The virtual node to associate with the weighted target. + The virtual node to associate with the weighted target. + """ + return pulumi.get(self, "virtual_node") + + @property + @pulumi.getter + def weight(self) -> int: + """ + The relative weight of the weighted target. An integer between 0 and 100. + """ + return pulumi.get(self, "weight") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecTcpRouteTimeout(dict): + def __init__(__self__, *, + idle: Optional['outputs.RouteSpecTcpRouteTimeoutIdle'] = None): + """ + :param 'RouteSpecTcpRouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + """ + if idle is not None: + pulumi.set(__self__, "idle", idle) + + @property + @pulumi.getter + def idle(self) -> Optional['outputs.RouteSpecTcpRouteTimeoutIdle']: + """ + The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + """ + return pulumi.get(self, "idle") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class RouteSpecTcpRouteTimeoutIdle(dict): + def __init__(__self__, *, + unit: str, + value: int): + """ + :param str unit: The unit of time. Valid values: `ms`, `s`. + :param int value: The number of time units. Minimum value of `0`. + """ + pulumi.set(__self__, "unit", unit) + pulumi.set(__self__, "value", value) + + @property + @pulumi.getter + def unit(self) -> str: + """ + The unit of time. Valid values: `ms`, `s`. """ - return pulumi.get(self, "virtual_node") + return pulumi.get(self, "unit") @property @pulumi.getter - def weight(self) -> int: + def value(self) -> int: """ - The relative weight of the weighted target. An integer between 0 and 100. + The number of time units. Minimum value of `0`. """ - return pulumi.get(self, "weight") + return pulumi.get(self, "value") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteMatch(dict): +class VirtualGatewaySpec(dict): def __init__(__self__, *, - prefix: str, - headers: Optional[Sequence['outputs.RouteSpecHttpRouteMatchHeader']] = None, - method: Optional[str] = None, - scheme: Optional[str] = None): - """ - :param str prefix: The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param Sequence['RouteSpecHttpRouteMatchHeaderArgs'] headers: The client request headers to match on. - :param str method: The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. - :param str scheme: The client request header scheme to match on. Valid values: `http`, `https`. - """ - pulumi.set(__self__, "prefix", prefix) - if headers is not None: - pulumi.set(__self__, "headers", headers) - if method is not None: - pulumi.set(__self__, "method", method) - if scheme is not None: - pulumi.set(__self__, "scheme", scheme) - - @property - @pulumi.getter - def prefix(self) -> str: + listener: 'outputs.VirtualGatewaySpecListener', + backend_defaults: Optional['outputs.VirtualGatewaySpecBackendDefaults'] = None, + logging: Optional['outputs.VirtualGatewaySpecLogging'] = None): """ - The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. + :param 'VirtualGatewaySpecListenerArgs' listener: The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. + :param 'VirtualGatewaySpecBackendDefaultsArgs' backend_defaults: The defaults for backends. + :param 'VirtualGatewaySpecLoggingArgs' logging: The inbound and outbound access logging information for the virtual gateway. """ - return pulumi.get(self, "prefix") + pulumi.set(__self__, "listener", listener) + if backend_defaults is not None: + pulumi.set(__self__, "backend_defaults", backend_defaults) + if logging is not None: + pulumi.set(__self__, "logging", logging) @property @pulumi.getter - def headers(self) -> Optional[Sequence['outputs.RouteSpecHttpRouteMatchHeader']]: + def listener(self) -> 'outputs.VirtualGatewaySpecListener': """ - The client request headers to match on. + The listeners that the mesh endpoint is expected to receive inbound traffic from. You can specify one listener. """ - return pulumi.get(self, "headers") + return pulumi.get(self, "listener") @property - @pulumi.getter - def method(self) -> Optional[str]: + @pulumi.getter(name="backendDefaults") + def backend_defaults(self) -> Optional['outputs.VirtualGatewaySpecBackendDefaults']: """ - The client request header method to match on. Valid values: `GET`, `HEAD`, `POST`, `PUT`, `DELETE`, `CONNECT`, `OPTIONS`, `TRACE`, `PATCH`. + The defaults for backends. """ - return pulumi.get(self, "method") + return pulumi.get(self, "backend_defaults") @property @pulumi.getter - def scheme(self) -> Optional[str]: + def logging(self) -> Optional['outputs.VirtualGatewaySpecLogging']: """ - The client request header scheme to match on. Valid values: `http`, `https`. + The inbound and outbound access logging information for the virtual gateway. """ - return pulumi.get(self, "scheme") + return pulumi.get(self, "logging") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteMatchHeader(dict): +class VirtualGatewaySpecBackendDefaults(dict): def __init__(__self__, *, - name: str, - invert: Optional[bool] = None, - match: Optional['outputs.RouteSpecHttpRouteMatchHeaderMatch'] = None): + client_policy: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicy'] = None): """ - :param str name: A name for the HTTP header in the client request that will be matched on. - :param bool invert: If `true`, the match is on the opposite of the `match` method and value. Default is `false`. - :param 'RouteSpecHttpRouteMatchHeaderMatchArgs' match: The method and value to match the header value sent with a request. Specify one match method. + :param 'VirtualGatewaySpecBackendDefaultsClientPolicyArgs' client_policy: The default client policy for virtual gateway backends. """ - pulumi.set(__self__, "name", name) - if invert is not None: - pulumi.set(__self__, "invert", invert) - if match is not None: - pulumi.set(__self__, "match", match) + if client_policy is not None: + pulumi.set(__self__, "client_policy", client_policy) @property - @pulumi.getter - def name(self) -> str: + @pulumi.getter(name="clientPolicy") + def client_policy(self) -> Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicy']: """ - A name for the HTTP header in the client request that will be matched on. + The default client policy for virtual gateway backends. """ - return pulumi.get(self, "name") + return pulumi.get(self, "client_policy") - @property - @pulumi.getter - def invert(self) -> Optional[bool]: + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class VirtualGatewaySpecBackendDefaultsClientPolicy(dict): + def __init__(__self__, *, + tls: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTls'] = None): """ - If `true`, the match is on the opposite of the `match` method and value. Default is `false`. + :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsArgs' tls: The Transport Layer Security (TLS) client policy. """ - return pulumi.get(self, "invert") + if tls is not None: + pulumi.set(__self__, "tls", tls) @property @pulumi.getter - def match(self) -> Optional['outputs.RouteSpecHttpRouteMatchHeaderMatch']: + def tls(self) -> Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTls']: """ - The method and value to match the header value sent with a request. Specify one match method. + The Transport Layer Security (TLS) client policy. """ - return pulumi.get(self, "match") + return pulumi.get(self, "tls") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteMatchHeaderMatch(dict): +class VirtualGatewaySpecBackendDefaultsClientPolicyTls(dict): def __init__(__self__, *, - exact: Optional[str] = None, - prefix: Optional[str] = None, - range: Optional['outputs.RouteSpecHttpRouteMatchHeaderMatchRange'] = None, - regex: Optional[str] = None, - suffix: Optional[str] = None): + validation: 'outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation', + enforce: Optional[bool] = None, + ports: Optional[Sequence[int]] = None): """ - :param str exact: The value sent by the client must match the specified value exactly. - :param str prefix: The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - :param 'RouteSpecHttpRouteMatchHeaderMatchRangeArgs' range: The object that specifies the range of numbers that the value sent by the client must be included in. - :param str regex: The value sent by the client must include the specified characters. - :param str suffix: The value sent by the client must end with the specified characters. + :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationArgs' validation: The TLS validation context. + :param Sequence[int] ports: One or more ports that the policy is enforced for. """ - if exact is not None: - pulumi.set(__self__, "exact", exact) - if prefix is not None: - pulumi.set(__self__, "prefix", prefix) - if range is not None: - pulumi.set(__self__, "range", range) - if regex is not None: - pulumi.set(__self__, "regex", regex) - if suffix is not None: - pulumi.set(__self__, "suffix", suffix) + pulumi.set(__self__, "validation", validation) + if enforce is not None: + pulumi.set(__self__, "enforce", enforce) + if ports is not None: + pulumi.set(__self__, "ports", ports) @property @pulumi.getter - def exact(self) -> Optional[str]: + def validation(self) -> 'outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation': """ - The value sent by the client must match the specified value exactly. + The TLS validation context. """ - return pulumi.get(self, "exact") + return pulumi.get(self, "validation") @property @pulumi.getter - def prefix(self) -> Optional[str]: - """ - The value sent by the client must begin with the specified characters. - This parameter must always start with /, which by itself matches all requests to the virtual router service name. - """ - return pulumi.get(self, "prefix") + def enforce(self) -> Optional[bool]: + return pulumi.get(self, "enforce") @property @pulumi.getter - def range(self) -> Optional['outputs.RouteSpecHttpRouteMatchHeaderMatchRange']: + def ports(self) -> Optional[Sequence[int]]: """ - The object that specifies the range of numbers that the value sent by the client must be included in. + One or more ports that the policy is enforced for. """ - return pulumi.get(self, "range") + return pulumi.get(self, "ports") - @property - @pulumi.getter - def regex(self) -> Optional[str]: + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidation(dict): + def __init__(__self__, *, + trust: 'outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust'): """ - The value sent by the client must include the specified characters. + :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustArgs' trust: The TLS validation context trust. """ - return pulumi.get(self, "regex") + pulumi.set(__self__, "trust", trust) @property @pulumi.getter - def suffix(self) -> Optional[str]: + def trust(self) -> 'outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust': """ - The value sent by the client must end with the specified characters. + The TLS validation context trust. """ - return pulumi.get(self, "suffix") + return pulumi.get(self, "trust") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteMatchHeaderMatchRange(dict): +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrust(dict): def __init__(__self__, *, - end: int, - start: int): + acm: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm'] = None, + file: Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile'] = None): """ - :param int end: The end of the range. - :param int start: The start of the range. + :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcmArgs' acm: The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. + :param 'VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFileArgs' file: The TLS validation context trust for a local file. """ - pulumi.set(__self__, "end", end) - pulumi.set(__self__, "start", start) + if acm is not None: + pulumi.set(__self__, "acm", acm) + if file is not None: + pulumi.set(__self__, "file", file) @property @pulumi.getter - def end(self) -> int: + def acm(self) -> Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm']: """ - The end of the range. + The TLS validation context trust for an AWS Certificate Manager (ACM) certificate. """ - return pulumi.get(self, "end") + return pulumi.get(self, "acm") @property @pulumi.getter - def start(self) -> int: + def file(self) -> Optional['outputs.VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile']: """ - The start of the range. + The TLS validation context trust for a local file. """ - return pulumi.get(self, "start") + return pulumi.get(self, "file") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteRetryPolicy(dict): +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustAcm(dict): def __init__(__self__, *, - max_retries: int, - per_retry_timeout: 'outputs.RouteSpecHttpRouteRetryPolicyPerRetryTimeout', - http_retry_events: Optional[Sequence[str]] = None, - tcp_retry_events: Optional[Sequence[str]] = None): + certificate_authority_arns: Sequence[str]): """ - :param int max_retries: The maximum number of retries. - :param 'RouteSpecHttpRouteRetryPolicyPerRetryTimeoutArgs' per_retry_timeout: The per-retry timeout. - :param Sequence[str] http_retry_events: List of HTTP retry events. - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - :param Sequence[str] tcp_retry_events: List of TCP retry events. The only valid value is `connection-error`. + :param Sequence[str] certificate_authority_arns: One or more ACM Amazon Resource Name (ARN)s. """ - pulumi.set(__self__, "max_retries", max_retries) - pulumi.set(__self__, "per_retry_timeout", per_retry_timeout) - if http_retry_events is not None: - pulumi.set(__self__, "http_retry_events", http_retry_events) - if tcp_retry_events is not None: - pulumi.set(__self__, "tcp_retry_events", tcp_retry_events) + pulumi.set(__self__, "certificate_authority_arns", certificate_authority_arns) @property - @pulumi.getter(name="maxRetries") - def max_retries(self) -> int: + @pulumi.getter(name="certificateAuthorityArns") + def certificate_authority_arns(self) -> Sequence[str]: """ - The maximum number of retries. + One or more ACM Amazon Resource Name (ARN)s. """ - return pulumi.get(self, "max_retries") + return pulumi.get(self, "certificate_authority_arns") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class VirtualGatewaySpecBackendDefaultsClientPolicyTlsValidationTrustFile(dict): + def __init__(__self__, *, + certificate_chain: str): + """ + :param str certificate_chain: The certificate chain for the certificate. + """ + pulumi.set(__self__, "certificate_chain", certificate_chain) @property - @pulumi.getter(name="perRetryTimeout") - def per_retry_timeout(self) -> 'outputs.RouteSpecHttpRouteRetryPolicyPerRetryTimeout': + @pulumi.getter(name="certificateChain") + def certificate_chain(self) -> str: """ - The per-retry timeout. + The certificate chain for the certificate. """ - return pulumi.get(self, "per_retry_timeout") + return pulumi.get(self, "certificate_chain") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class VirtualGatewaySpecListener(dict): + def __init__(__self__, *, + port_mapping: 'outputs.VirtualGatewaySpecListenerPortMapping', + health_check: Optional['outputs.VirtualGatewaySpecListenerHealthCheck'] = None, + tls: Optional['outputs.VirtualGatewaySpecListenerTls'] = None): + """ + :param 'VirtualGatewaySpecListenerPortMappingArgs' port_mapping: The port mapping information for the listener. + :param 'VirtualGatewaySpecListenerHealthCheckArgs' health_check: The health check information for the listener. + :param 'VirtualGatewaySpecListenerTlsArgs' tls: The Transport Layer Security (TLS) properties for the listener + """ + pulumi.set(__self__, "port_mapping", port_mapping) + if health_check is not None: + pulumi.set(__self__, "health_check", health_check) + if tls is not None: + pulumi.set(__self__, "tls", tls) @property - @pulumi.getter(name="httpRetryEvents") - def http_retry_events(self) -> Optional[Sequence[str]]: + @pulumi.getter(name="portMapping") + def port_mapping(self) -> 'outputs.VirtualGatewaySpecListenerPortMapping': """ - List of HTTP retry events. - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). - Valid values: `client-error` (HTTP status code 409), `gateway-error` (HTTP status codes 502, 503, and 504), `server-error` (HTTP status codes 500, 501, 502, 503, 504, 505, 506, 507, 508, 510, and 511), `stream-error` (retry on refused stream). + The port mapping information for the listener. + """ + return pulumi.get(self, "port_mapping") + + @property + @pulumi.getter(name="healthCheck") + def health_check(self) -> Optional['outputs.VirtualGatewaySpecListenerHealthCheck']: """ - return pulumi.get(self, "http_retry_events") + The health check information for the listener. + """ + return pulumi.get(self, "health_check") @property - @pulumi.getter(name="tcpRetryEvents") - def tcp_retry_events(self) -> Optional[Sequence[str]]: + @pulumi.getter + def tls(self) -> Optional['outputs.VirtualGatewaySpecListenerTls']: """ - List of TCP retry events. The only valid value is `connection-error`. + The Transport Layer Security (TLS) properties for the listener """ - return pulumi.get(self, "tcp_retry_events") + return pulumi.get(self, "tls") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteRetryPolicyPerRetryTimeout(dict): +class VirtualGatewaySpecListenerHealthCheck(dict): def __init__(__self__, *, - unit: str, - value: int): + healthy_threshold: int, + interval_millis: int, + protocol: str, + timeout_millis: int, + unhealthy_threshold: int, + path: Optional[str] = None, + port: Optional[int] = None): """ - :param str unit: Retry unit. Valid values: `ms`, `s`. - :param int value: Retry value. + :param int healthy_threshold: The number of consecutive successful health checks that must occur before declaring listener healthy. + :param int interval_millis: The time period in milliseconds between each health check execution. + :param str protocol: The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + :param int timeout_millis: The amount of time to wait when receiving a response from the health check, in milliseconds. + :param int unhealthy_threshold: The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. + :param str path: The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. + :param int port: The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + pulumi.set(__self__, "healthy_threshold", healthy_threshold) + pulumi.set(__self__, "interval_millis", interval_millis) + pulumi.set(__self__, "protocol", protocol) + pulumi.set(__self__, "timeout_millis", timeout_millis) + pulumi.set(__self__, "unhealthy_threshold", unhealthy_threshold) + if path is not None: + pulumi.set(__self__, "path", path) + if port is not None: + pulumi.set(__self__, "port", port) @property - @pulumi.getter - def unit(self) -> str: + @pulumi.getter(name="healthyThreshold") + def healthy_threshold(self) -> int: """ - Retry unit. Valid values: `ms`, `s`. + The number of consecutive successful health checks that must occur before declaring listener healthy. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "healthy_threshold") @property - @pulumi.getter - def value(self) -> int: + @pulumi.getter(name="intervalMillis") + def interval_millis(self) -> int: """ - Retry value. + The time period in milliseconds between each health check execution. """ - return pulumi.get(self, "value") + return pulumi.get(self, "interval_millis") - def _translate_property(self, prop): - return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + @property + @pulumi.getter + def protocol(self) -> str: + """ + The protocol for the health check request. Valid values are `http`, `http2`, and `grpc`. + """ + return pulumi.get(self, "protocol") + @property + @pulumi.getter(name="timeoutMillis") + def timeout_millis(self) -> int: + """ + The amount of time to wait when receiving a response from the health check, in milliseconds. + """ + return pulumi.get(self, "timeout_millis") -@pulumi.output_type -class RouteSpecHttpRouteTimeout(dict): - def __init__(__self__, *, - idle: Optional['outputs.RouteSpecHttpRouteTimeoutIdle'] = None, - per_request: Optional['outputs.RouteSpecHttpRouteTimeoutPerRequest'] = None): + @property + @pulumi.getter(name="unhealthyThreshold") + def unhealthy_threshold(self) -> int: """ - :param 'RouteSpecHttpRouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. - :param 'RouteSpecHttpRouteTimeoutPerRequestArgs' per_request: The per request timeout. + The number of consecutive failed health checks that must occur before declaring a virtual gateway unhealthy. """ - if idle is not None: - pulumi.set(__self__, "idle", idle) - if per_request is not None: - pulumi.set(__self__, "per_request", per_request) + return pulumi.get(self, "unhealthy_threshold") @property @pulumi.getter - def idle(self) -> Optional['outputs.RouteSpecHttpRouteTimeoutIdle']: + def path(self) -> Optional[str]: """ - The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + The destination path for the health check request. This is only required if the specified protocol is `http` or `http2`. """ - return pulumi.get(self, "idle") + return pulumi.get(self, "path") @property - @pulumi.getter(name="perRequest") - def per_request(self) -> Optional['outputs.RouteSpecHttpRouteTimeoutPerRequest']: + @pulumi.getter + def port(self) -> Optional[int]: """ - The per request timeout. + The destination port for the health check request. This port must match the port defined in the `port_mapping` for the listener. """ - return pulumi.get(self, "per_request") + return pulumi.get(self, "port") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteTimeoutIdle(dict): +class VirtualGatewaySpecListenerPortMapping(dict): def __init__(__self__, *, - unit: str, - value: int): + port: int, + protocol: str): """ - :param str unit: The unit of time. Valid values: `ms`, `s`. - :param int value: The number of time units. Minimum value of `0`. + :param int port: The port used for the port mapping. + :param str protocol: The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + pulumi.set(__self__, "port", port) + pulumi.set(__self__, "protocol", protocol) @property @pulumi.getter - def unit(self) -> str: + def port(self) -> int: """ - The unit of time. Valid values: `ms`, `s`. + The port used for the port mapping. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "port") @property @pulumi.getter - def value(self) -> int: + def protocol(self) -> str: """ - The number of time units. Minimum value of `0`. + The protocol used for the port mapping. Valid values are `http`, `http2`, `tcp` and `grpc`. """ - return pulumi.get(self, "value") + return pulumi.get(self, "protocol") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecHttpRouteTimeoutPerRequest(dict): +class VirtualGatewaySpecListenerTls(dict): def __init__(__self__, *, - unit: str, - value: int): + certificate: 'outputs.VirtualGatewaySpecListenerTlsCertificate', + mode: str): """ - :param str unit: The unit of time. Valid values: `ms`, `s`. - :param int value: The number of time units. Minimum value of `0`. + :param 'VirtualGatewaySpecListenerTlsCertificateArgs' certificate: The listener's TLS certificate. + :param str mode: The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + pulumi.set(__self__, "certificate", certificate) + pulumi.set(__self__, "mode", mode) @property @pulumi.getter - def unit(self) -> str: + def certificate(self) -> 'outputs.VirtualGatewaySpecListenerTlsCertificate': """ - The unit of time. Valid values: `ms`, `s`. + The listener's TLS certificate. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "certificate") @property @pulumi.getter - def value(self) -> int: + def mode(self) -> str: """ - The number of time units. Minimum value of `0`. + The listener's TLS mode. Valid values: `DISABLED`, `PERMISSIVE`, `STRICT`. """ - return pulumi.get(self, "value") + return pulumi.get(self, "mode") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecTcpRoute(dict): +class VirtualGatewaySpecListenerTlsCertificate(dict): def __init__(__self__, *, - action: 'outputs.RouteSpecTcpRouteAction', - timeout: Optional['outputs.RouteSpecTcpRouteTimeout'] = None): + acm: Optional['outputs.VirtualGatewaySpecListenerTlsCertificateAcm'] = None, + file: Optional['outputs.VirtualGatewaySpecListenerTlsCertificateFile'] = None): """ - :param 'RouteSpecTcpRouteActionArgs' action: The action to take if a match is determined. - :param 'RouteSpecTcpRouteTimeoutArgs' timeout: The types of timeouts. + :param 'VirtualGatewaySpecListenerTlsCertificateAcmArgs' acm: An AWS Certificate Manager (ACM) certificate. + :param 'VirtualGatewaySpecListenerTlsCertificateFileArgs' file: A local file certificate. """ - pulumi.set(__self__, "action", action) - if timeout is not None: - pulumi.set(__self__, "timeout", timeout) + if acm is not None: + pulumi.set(__self__, "acm", acm) + if file is not None: + pulumi.set(__self__, "file", file) @property @pulumi.getter - def action(self) -> 'outputs.RouteSpecTcpRouteAction': + def acm(self) -> Optional['outputs.VirtualGatewaySpecListenerTlsCertificateAcm']: """ - The action to take if a match is determined. + An AWS Certificate Manager (ACM) certificate. """ - return pulumi.get(self, "action") + return pulumi.get(self, "acm") @property @pulumi.getter - def timeout(self) -> Optional['outputs.RouteSpecTcpRouteTimeout']: + def file(self) -> Optional['outputs.VirtualGatewaySpecListenerTlsCertificateFile']: """ - The types of timeouts. + A local file certificate. """ - return pulumi.get(self, "timeout") + return pulumi.get(self, "file") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecTcpRouteAction(dict): +class VirtualGatewaySpecListenerTlsCertificateAcm(dict): def __init__(__self__, *, - weighted_targets: Sequence['outputs.RouteSpecTcpRouteActionWeightedTarget']): + certificate_arn: str): """ - :param Sequence['RouteSpecTcpRouteActionWeightedTargetArgs'] weighted_targets: The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + :param str certificate_arn: The Amazon Resource Name (ARN) for the certificate. """ - pulumi.set(__self__, "weighted_targets", weighted_targets) + pulumi.set(__self__, "certificate_arn", certificate_arn) @property - @pulumi.getter(name="weightedTargets") - def weighted_targets(self) -> Sequence['outputs.RouteSpecTcpRouteActionWeightedTarget']: + @pulumi.getter(name="certificateArn") + def certificate_arn(self) -> str: """ - The targets that traffic is routed to when a request matches the route. - You can specify one or more targets and their relative weights with which to distribute traffic. + The Amazon Resource Name (ARN) for the certificate. """ - return pulumi.get(self, "weighted_targets") + return pulumi.get(self, "certificate_arn") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecTcpRouteActionWeightedTarget(dict): +class VirtualGatewaySpecListenerTlsCertificateFile(dict): def __init__(__self__, *, - virtual_node: str, - weight: int): + certificate_chain: str, + private_key: str): """ - :param str virtual_node: The virtual node to associate with the weighted target. - :param int weight: The relative weight of the weighted target. An integer between 0 and 100. + :param str certificate_chain: The certificate chain for the certificate. + :param str private_key: The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. """ - pulumi.set(__self__, "virtual_node", virtual_node) - pulumi.set(__self__, "weight", weight) + pulumi.set(__self__, "certificate_chain", certificate_chain) + pulumi.set(__self__, "private_key", private_key) @property - @pulumi.getter(name="virtualNode") - def virtual_node(self) -> str: + @pulumi.getter(name="certificateChain") + def certificate_chain(self) -> str: """ - The virtual node to associate with the weighted target. + The certificate chain for the certificate. """ - return pulumi.get(self, "virtual_node") + return pulumi.get(self, "certificate_chain") @property - @pulumi.getter - def weight(self) -> int: + @pulumi.getter(name="privateKey") + def private_key(self) -> str: """ - The relative weight of the weighted target. An integer between 0 and 100. + The private key for a certificate stored on the file system of the mesh endpoint that the proxy is running on. """ - return pulumi.get(self, "weight") + return pulumi.get(self, "private_key") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecTcpRouteTimeout(dict): +class VirtualGatewaySpecLogging(dict): def __init__(__self__, *, - idle: Optional['outputs.RouteSpecTcpRouteTimeoutIdle'] = None): + access_log: Optional['outputs.VirtualGatewaySpecLoggingAccessLog'] = None): """ - :param 'RouteSpecTcpRouteTimeoutIdleArgs' idle: The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + :param 'VirtualGatewaySpecLoggingAccessLogArgs' access_log: The access log configuration for a virtual gateway. """ - if idle is not None: - pulumi.set(__self__, "idle", idle) + if access_log is not None: + pulumi.set(__self__, "access_log", access_log) @property - @pulumi.getter - def idle(self) -> Optional['outputs.RouteSpecTcpRouteTimeoutIdle']: + @pulumi.getter(name="accessLog") + def access_log(self) -> Optional['outputs.VirtualGatewaySpecLoggingAccessLog']: """ - The idle timeout. An idle timeout bounds the amount of time that a connection may be idle. + The access log configuration for a virtual gateway. """ - return pulumi.get(self, "idle") + return pulumi.get(self, "access_log") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop @pulumi.output_type -class RouteSpecTcpRouteTimeoutIdle(dict): +class VirtualGatewaySpecLoggingAccessLog(dict): def __init__(__self__, *, - unit: str, - value: int): + file: Optional['outputs.VirtualGatewaySpecLoggingAccessLogFile'] = None): """ - :param str unit: The unit of time. Valid values: `ms`, `s`. - :param int value: The number of time units. Minimum value of `0`. + :param 'VirtualGatewaySpecLoggingAccessLogFileArgs' file: The file object to send virtual gateway access logs to. """ - pulumi.set(__self__, "unit", unit) - pulumi.set(__self__, "value", value) + if file is not None: + pulumi.set(__self__, "file", file) @property @pulumi.getter - def unit(self) -> str: + def file(self) -> Optional['outputs.VirtualGatewaySpecLoggingAccessLogFile']: """ - The unit of time. Valid values: `ms`, `s`. + The file object to send virtual gateway access logs to. """ - return pulumi.get(self, "unit") + return pulumi.get(self, "file") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + +@pulumi.output_type +class VirtualGatewaySpecLoggingAccessLogFile(dict): + def __init__(__self__, *, + path: str): + """ + :param str path: The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. + """ + pulumi.set(__self__, "path", path) @property @pulumi.getter - def value(self) -> int: + def path(self) -> str: """ - The number of time units. Minimum value of `0`. + The file path to write access logs to. You can use `/dev/stdout` to send access logs to standard out. """ - return pulumi.get(self, "value") + return pulumi.get(self, "path") def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_aws/appmesh/virtual_gateway.py b/sdk/python/pulumi_aws/appmesh/virtual_gateway.py new file mode 100644 index 00000000000..f73d7be1a27 --- /dev/null +++ b/sdk/python/pulumi_aws/appmesh/virtual_gateway.py @@ -0,0 +1,251 @@ +# 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 warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables +from . import outputs +from ._inputs import * + +__all__ = ['VirtualGateway'] + + +class VirtualGateway(pulumi.CustomResource): + def __init__(__self__, + resource_name: str, + opts: Optional[pulumi.ResourceOptions] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input[pulumi.InputType['VirtualGatewaySpecArgs']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + __props__=None, + __name__=None, + __opts__=None): + """ + Provides an AWS App Mesh virtual gateway resource. + + ## Example Usage + ### Basic + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.appmesh.VirtualGateway("example", + mesh_name="example-service-mesh", + spec=aws.appmesh.VirtualGatewaySpecArgs( + listener=aws.appmesh.VirtualGatewaySpecListenerArgs( + port_mapping=aws.appmesh.VirtualGatewaySpecListenerPortMappingArgs( + port=8080, + protocol="http", + ), + ), + ), + tags={ + "Environment": "test", + }) + ``` + ### Access Logs and TLS + + ```python + import pulumi + import pulumi_aws as aws + + example = aws.appmesh.VirtualGateway("example", + mesh_name="example-service-mesh", + spec=aws.appmesh.VirtualGatewaySpecArgs( + listener=aws.appmesh.VirtualGatewaySpecListenerArgs( + port_mapping=aws.appmesh.VirtualGatewaySpecListenerPortMappingArgs( + port=8080, + protocol="http", + ), + tls=aws.appmesh.VirtualGatewaySpecListenerTlsArgs( + certificate=aws.appmesh.VirtualGatewaySpecListenerTlsCertificateArgs( + acm=aws.appmesh.VirtualGatewaySpecListenerTlsCertificateAcmArgs( + certificate_arn=aws_acm_certificate["example"]["arn"], + ), + ), + mode="STRICT", + ), + ), + logging=aws.appmesh.VirtualGatewaySpecLoggingArgs( + access_log=aws.appmesh.VirtualGatewaySpecLoggingAccessLogArgs( + file=aws.appmesh.VirtualGatewaySpecLoggingAccessLogFileArgs( + path="/var/log/access.log", + ), + ), + ), + )) + ``` + + :param str resource_name: The name of the resource. + :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] mesh_name: The name of the service mesh in which to create the virtual gateway. + :param pulumi.Input[str] mesh_owner: The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + :param pulumi.Input[str] name: The name to use for the virtual gateway. + :param pulumi.Input[pulumi.InputType['VirtualGatewaySpecArgs']] spec: The virtual gateway specification to apply. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + """ + if __name__ is not None: + warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) + resource_name = __name__ + if __opts__ is not None: + warnings.warn("explicit use of __opts__ is deprecated, use 'opts' instead", DeprecationWarning) + opts = __opts__ + if opts is None: + opts = pulumi.ResourceOptions() + if not isinstance(opts, pulumi.ResourceOptions): + raise TypeError('Expected resource options to be a ResourceOptions instance') + if opts.version is None: + opts.version = _utilities.get_version() + 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__ = dict() + + if mesh_name is None: + raise TypeError("Missing required property 'mesh_name'") + __props__['mesh_name'] = mesh_name + __props__['mesh_owner'] = mesh_owner + __props__['name'] = name + if spec is None: + raise TypeError("Missing required property 'spec'") + __props__['spec'] = spec + __props__['tags'] = tags + __props__['arn'] = None + __props__['created_date'] = None + __props__['last_updated_date'] = None + __props__['resource_owner'] = None + super(VirtualGateway, __self__).__init__( + 'aws:appmesh/virtualGateway:VirtualGateway', + resource_name, + __props__, + opts) + + @staticmethod + def get(resource_name: str, + id: pulumi.Input[str], + opts: Optional[pulumi.ResourceOptions] = None, + arn: Optional[pulumi.Input[str]] = None, + created_date: Optional[pulumi.Input[str]] = None, + last_updated_date: Optional[pulumi.Input[str]] = None, + mesh_name: Optional[pulumi.Input[str]] = None, + mesh_owner: Optional[pulumi.Input[str]] = None, + name: Optional[pulumi.Input[str]] = None, + resource_owner: Optional[pulumi.Input[str]] = None, + spec: Optional[pulumi.Input[pulumi.InputType['VirtualGatewaySpecArgs']]] = None, + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'VirtualGateway': + """ + Get an existing VirtualGateway 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] arn: The ARN of the virtual gateway. + :param pulumi.Input[str] created_date: The creation date of the virtual gateway. + :param pulumi.Input[str] last_updated_date: The last update date of the virtual gateway. + :param pulumi.Input[str] mesh_name: The name of the service mesh in which to create the virtual gateway. + :param pulumi.Input[str] mesh_owner: The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + :param pulumi.Input[str] name: The name to use for the virtual gateway. + :param pulumi.Input[str] resource_owner: The resource owner's AWS account ID. + :param pulumi.Input[pulumi.InputType['VirtualGatewaySpecArgs']] spec: The virtual gateway specification to apply. + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + """ + opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) + + __props__ = dict() + + __props__["arn"] = arn + __props__["created_date"] = created_date + __props__["last_updated_date"] = last_updated_date + __props__["mesh_name"] = mesh_name + __props__["mesh_owner"] = mesh_owner + __props__["name"] = name + __props__["resource_owner"] = resource_owner + __props__["spec"] = spec + __props__["tags"] = tags + return VirtualGateway(resource_name, opts=opts, __props__=__props__) + + @property + @pulumi.getter + def arn(self) -> pulumi.Output[str]: + """ + The ARN of the virtual gateway. + """ + return pulumi.get(self, "arn") + + @property + @pulumi.getter(name="createdDate") + def created_date(self) -> pulumi.Output[str]: + """ + The creation date of the virtual gateway. + """ + return pulumi.get(self, "created_date") + + @property + @pulumi.getter(name="lastUpdatedDate") + def last_updated_date(self) -> pulumi.Output[str]: + """ + The last update date of the virtual gateway. + """ + return pulumi.get(self, "last_updated_date") + + @property + @pulumi.getter(name="meshName") + def mesh_name(self) -> pulumi.Output[str]: + """ + The name of the service mesh in which to create the virtual gateway. + """ + return pulumi.get(self, "mesh_name") + + @property + @pulumi.getter(name="meshOwner") + def mesh_owner(self) -> pulumi.Output[str]: + """ + The AWS account ID of the service mesh's owner. Defaults to the account ID the [AWS provider](https://www.terraform.io/docs/providers/aws/index.html) is currently connected to. + """ + return pulumi.get(self, "mesh_owner") + + @property + @pulumi.getter + def name(self) -> pulumi.Output[str]: + """ + The name to use for the virtual gateway. + """ + return pulumi.get(self, "name") + + @property + @pulumi.getter(name="resourceOwner") + def resource_owner(self) -> pulumi.Output[str]: + """ + The resource owner's AWS account ID. + """ + return pulumi.get(self, "resource_owner") + + @property + @pulumi.getter + def spec(self) -> pulumi.Output['outputs.VirtualGatewaySpec']: + """ + The virtual gateway specification to apply. + """ + return pulumi.get(self, "spec") + + @property + @pulumi.getter + def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: + """ + A map of tags to assign to the resource. + """ + return pulumi.get(self, "tags") + + def translate_output_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + def translate_input_property(self, prop): + return _tables.SNAKE_TO_CAMEL_CASE_TABLE.get(prop) or prop + diff --git a/sdk/python/pulumi_aws/backup/_inputs.py b/sdk/python/pulumi_aws/backup/_inputs.py index e36f554eda5..52d5d8003c0 100644 --- a/sdk/python/pulumi_aws/backup/_inputs.py +++ b/sdk/python/pulumi_aws/backup/_inputs.py @@ -9,6 +9,7 @@ from .. import _utilities, _tables __all__ = [ + 'PlanAdvancedBackupSettingArgs', 'PlanRuleArgs', 'PlanRuleCopyActionArgs', 'PlanRuleCopyActionLifecycleArgs', @@ -16,6 +17,45 @@ 'SelectionSelectionTagArgs', ] +@pulumi.input_type +class PlanAdvancedBackupSettingArgs: + def __init__(__self__, *, + backup_options: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + resource_type: Optional[pulumi.Input[str]] = None): + """ + :param pulumi.Input[Mapping[str, pulumi.Input[str]]] backup_options: Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + :param pulumi.Input[str] resource_type: The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + """ + if backup_options is not None: + pulumi.set(__self__, "backup_options", backup_options) + if resource_type is not None: + pulumi.set(__self__, "resource_type", resource_type) + + @property + @pulumi.getter(name="backupOptions") + def backup_options(self) -> Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]: + """ + Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + """ + return pulumi.get(self, "backup_options") + + @backup_options.setter + def backup_options(self, value: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]]): + pulumi.set(self, "backup_options", value) + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> Optional[pulumi.Input[str]]: + """ + The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + """ + return pulumi.get(self, "resource_type") + + @resource_type.setter + def resource_type(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "resource_type", value) + + @pulumi.input_type class PlanRuleArgs: def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/backup/outputs.py b/sdk/python/pulumi_aws/backup/outputs.py index ca72135e52e..33baf4f6df7 100644 --- a/sdk/python/pulumi_aws/backup/outputs.py +++ b/sdk/python/pulumi_aws/backup/outputs.py @@ -10,6 +10,7 @@ from . import outputs __all__ = [ + 'PlanAdvancedBackupSetting', 'PlanRule', 'PlanRuleCopyAction', 'PlanRuleCopyActionLifecycle', @@ -17,6 +18,40 @@ 'SelectionSelectionTag', ] +@pulumi.output_type +class PlanAdvancedBackupSetting(dict): + def __init__(__self__, *, + backup_options: Optional[Mapping[str, str]] = None, + resource_type: Optional[str] = None): + """ + :param Mapping[str, str] backup_options: Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + :param str resource_type: The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + """ + if backup_options is not None: + pulumi.set(__self__, "backup_options", backup_options) + if resource_type is not None: + pulumi.set(__self__, "resource_type", resource_type) + + @property + @pulumi.getter(name="backupOptions") + def backup_options(self) -> Optional[Mapping[str, str]]: + """ + Specifies the backup option for a selected resource. This option is only available for Windows VSS backup jobs. Set to `{ WindowsVSS = "enabled" }` to enable Windows VSS backup option and create a VSS Windows backup. + """ + return pulumi.get(self, "backup_options") + + @property + @pulumi.getter(name="resourceType") + def resource_type(self) -> Optional[str]: + """ + The type of AWS resource to be backed up. For VSS Windows backups, the only supported resource type is Amazon EC2. Valid values: `EC2`. + """ + return pulumi.get(self, "resource_type") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class PlanRule(dict): def __init__(__self__, *, diff --git a/sdk/python/pulumi_aws/backup/plan.py b/sdk/python/pulumi_aws/backup/plan.py index e9c2883cec4..1d657998356 100644 --- a/sdk/python/pulumi_aws/backup/plan.py +++ b/sdk/python/pulumi_aws/backup/plan.py @@ -17,6 +17,7 @@ class Plan(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + advanced_backup_settings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PlanAdvancedBackupSettingArgs']]]]] = None, name: Optional[pulumi.Input[str]] = None, rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PlanRuleArgs']]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, @@ -32,15 +33,23 @@ def __init__(__self__, import pulumi import pulumi_aws as aws - example = aws.backup.Plan("example", rules=[aws.backup.PlanRuleArgs( - rule_name="tf_example_backup_rule", - target_vault_name=aws_backup_vault["test"]["name"], - schedule="cron(0 12 * * ? *)", - )]) + example = aws.backup.Plan("example", + rules=[aws.backup.PlanRuleArgs( + rule_name="tf_example_backup_rule", + target_vault_name=aws_backup_vault["test"]["name"], + schedule="cron(0 12 * * ? *)", + )], + advanced_backup_settings=[aws.backup.PlanAdvancedBackupSettingArgs( + backup_options={ + "WindowsVSS": "enabled", + }, + resource_type="EC2", + )]) ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PlanAdvancedBackupSettingArgs']]]] advanced_backup_settings: An object that specifies backup options for each resource type. :param pulumi.Input[str] name: The display name of a backup plan. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PlanRuleArgs']]]] rules: A rule object that specifies a scheduled task that is used to back up a selection of resources. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: Metadata that you can assign to help organize the plans you create. @@ -62,6 +71,7 @@ def __init__(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = dict() + __props__['advanced_backup_settings'] = advanced_backup_settings __props__['name'] = name if rules is None: raise TypeError("Missing required property 'rules'") @@ -79,6 +89,7 @@ def __init__(__self__, def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, + advanced_backup_settings: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PlanAdvancedBackupSettingArgs']]]]] = None, arn: Optional[pulumi.Input[str]] = None, name: Optional[pulumi.Input[str]] = None, rules: Optional[pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PlanRuleArgs']]]]] = None, @@ -91,6 +102,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[Sequence[pulumi.Input[pulumi.InputType['PlanAdvancedBackupSettingArgs']]]] advanced_backup_settings: An object that specifies backup options for each resource type. :param pulumi.Input[str] arn: The ARN of the backup plan. :param pulumi.Input[str] name: The display name of a backup plan. :param pulumi.Input[Sequence[pulumi.Input[pulumi.InputType['PlanRuleArgs']]]] rules: A rule object that specifies a scheduled task that is used to back up a selection of resources. @@ -101,6 +113,7 @@ def get(resource_name: str, __props__ = dict() + __props__["advanced_backup_settings"] = advanced_backup_settings __props__["arn"] = arn __props__["name"] = name __props__["rules"] = rules @@ -108,6 +121,14 @@ def get(resource_name: str, __props__["version"] = version return Plan(resource_name, opts=opts, __props__=__props__) + @property + @pulumi.getter(name="advancedBackupSettings") + def advanced_backup_settings(self) -> pulumi.Output[Optional[Sequence['outputs.PlanAdvancedBackupSetting']]]: + """ + An object that specifies backup options for each resource type. + """ + return pulumi.get(self, "advanced_backup_settings") + @property @pulumi.getter def arn(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/backup/vault_notifications.py b/sdk/python/pulumi_aws/backup/vault_notifications.py index 16a4844ba37..a84acdfe8a2 100644 --- a/sdk/python/pulumi_aws/backup/vault_notifications.py +++ b/sdk/python/pulumi_aws/backup/vault_notifications.py @@ -47,7 +47,7 @@ def __init__(__self__, policy=test_policy_document.json) test_vault_notifications = aws.backup.VaultNotifications("testVaultNotifications", backup_vault_name="example_backup_vault", - sns_topic_arn=sns_topic_arn["test"]["arn"], + sns_topic_arn=test_topic.arn, backup_vault_events=[ "BACKUP_JOB_STARTED", "RESTORE_JOB_COMPLETED", diff --git a/sdk/python/pulumi_aws/codeartifact/__init__.py b/sdk/python/pulumi_aws/codeartifact/__init__.py index dab352a72af..ab64081d476 100644 --- a/sdk/python/pulumi_aws/codeartifact/__init__.py +++ b/sdk/python/pulumi_aws/codeartifact/__init__.py @@ -6,6 +6,7 @@ from .domain import * from .domain_permissions import * from .get_authorization_token import * +from .get_repository_endpoint import * from .repository import * from .repository_permissions_policy import * from ._inputs import * diff --git a/sdk/python/pulumi_aws/codeartifact/get_repository_endpoint.py b/sdk/python/pulumi_aws/codeartifact/get_repository_endpoint.py new file mode 100644 index 00000000000..530e9e5d865 --- /dev/null +++ b/sdk/python/pulumi_aws/codeartifact/get_repository_endpoint.py @@ -0,0 +1,135 @@ +# 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 warnings +import pulumi +import pulumi.runtime +from typing import Any, Mapping, Optional, Sequence, Union +from .. import _utilities, _tables + +__all__ = [ + 'GetRepositoryEndpointResult', + 'AwaitableGetRepositoryEndpointResult', + 'get_repository_endpoint', +] + +@pulumi.output_type +class GetRepositoryEndpointResult: + """ + A collection of values returned by getRepositoryEndpoint. + """ + def __init__(__self__, domain=None, domain_owner=None, format=None, id=None, repository=None, repository_endpoint=None): + if domain and not isinstance(domain, str): + raise TypeError("Expected argument 'domain' to be a str") + pulumi.set(__self__, "domain", domain) + if domain_owner and not isinstance(domain_owner, str): + raise TypeError("Expected argument 'domain_owner' to be a str") + pulumi.set(__self__, "domain_owner", domain_owner) + if format and not isinstance(format, str): + raise TypeError("Expected argument 'format' to be a str") + pulumi.set(__self__, "format", format) + if id and not isinstance(id, str): + raise TypeError("Expected argument 'id' to be a str") + pulumi.set(__self__, "id", id) + if repository and not isinstance(repository, str): + raise TypeError("Expected argument 'repository' to be a str") + pulumi.set(__self__, "repository", repository) + if repository_endpoint and not isinstance(repository_endpoint, str): + raise TypeError("Expected argument 'repository_endpoint' to be a str") + pulumi.set(__self__, "repository_endpoint", repository_endpoint) + + @property + @pulumi.getter + def domain(self) -> str: + return pulumi.get(self, "domain") + + @property + @pulumi.getter(name="domainOwner") + def domain_owner(self) -> str: + return pulumi.get(self, "domain_owner") + + @property + @pulumi.getter + def format(self) -> str: + return pulumi.get(self, "format") + + @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 repository(self) -> str: + return pulumi.get(self, "repository") + + @property + @pulumi.getter(name="repositoryEndpoint") + def repository_endpoint(self) -> str: + """ + The URL of the returned endpoint. + """ + return pulumi.get(self, "repository_endpoint") + + +class AwaitableGetRepositoryEndpointResult(GetRepositoryEndpointResult): + # pylint: disable=using-constant-test + def __await__(self): + if False: + yield self + return GetRepositoryEndpointResult( + domain=self.domain, + domain_owner=self.domain_owner, + format=self.format, + id=self.id, + repository=self.repository, + repository_endpoint=self.repository_endpoint) + + +def get_repository_endpoint(domain: Optional[str] = None, + domain_owner: Optional[str] = None, + format: Optional[str] = None, + repository: Optional[str] = None, + opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetRepositoryEndpointResult: + """ + The CodeArtifact Repository Endpoint data source returns the endpoint of a repository for a specific package format. + + ## Example Usage + + ```python + import pulumi + import pulumi_aws as aws + + test = aws.codeartifact.get_repository_endpoint(domain=aws_codeartifact_domain["test"]["domain"], + repository=aws_codeartifact_repository["test"]["repository"], + format="npm") + ``` + + + :param str domain: The name of the domain that contains the repository. + :param str domain_owner: The account number of the AWS account that owns the domain. + :param str format: Which endpoint of a repository to return. A repository has one endpoint for each package format: `npm`, `pypi`, and `maven`. + :param str repository: The name of the repository. + """ + __args__ = dict() + __args__['domain'] = domain + __args__['domainOwner'] = domain_owner + __args__['format'] = format + __args__['repository'] = repository + if opts is None: + opts = pulumi.InvokeOptions() + if opts.version is None: + opts.version = _utilities.get_version() + __ret__ = pulumi.runtime.invoke('aws:codeartifact/getRepositoryEndpoint:getRepositoryEndpoint', __args__, opts=opts, typ=GetRepositoryEndpointResult).value + + return AwaitableGetRepositoryEndpointResult( + domain=__ret__.domain, + domain_owner=__ret__.domain_owner, + format=__ret__.format, + id=__ret__.id, + repository=__ret__.repository, + repository_endpoint=__ret__.repository_endpoint) diff --git a/sdk/python/pulumi_aws/config/outputs.py b/sdk/python/pulumi_aws/config/outputs.py index 4d064016e5b..d078deb6041 100644 --- a/sdk/python/pulumi_aws/config/outputs.py +++ b/sdk/python/pulumi_aws/config/outputs.py @@ -204,6 +204,7 @@ def __init__(__self__, *, route53resolver: Optional[str] = None, s3: Optional[str] = None, s3control: Optional[str] = None, + s3outposts: Optional[str] = None, sagemaker: Optional[str] = None, sdb: Optional[str] = None, secretsmanager: Optional[str] = None, @@ -462,6 +463,8 @@ def __init__(__self__, *, pulumi.set(__self__, "s3", s3) if s3control is not None: pulumi.set(__self__, "s3control", s3control) + if s3outposts is not None: + pulumi.set(__self__, "s3outposts", s3outposts) if sagemaker is not None: pulumi.set(__self__, "sagemaker", sagemaker) if sdb is not None: @@ -1094,6 +1097,11 @@ def s3(self) -> Optional[str]: def s3control(self) -> Optional[str]: return pulumi.get(self, "s3control") + @property + @pulumi.getter + def s3outposts(self) -> Optional[str]: + return pulumi.get(self, "s3outposts") + @property @pulumi.getter def sagemaker(self) -> Optional[str]: diff --git a/sdk/python/pulumi_aws/ec2/security_group_rule.py b/sdk/python/pulumi_aws/ec2/security_group_rule.py index 58512659cad..26c286992f7 100644 --- a/sdk/python/pulumi_aws/ec2/security_group_rule.py +++ b/sdk/python/pulumi_aws/ec2/security_group_rule.py @@ -62,7 +62,7 @@ def __init__(__self__, ``` ## Usage with prefix list IDs - Prefix list IDs are manged by AWS internally. Prefix list IDs + Prefix list IDs are managed by AWS internally. Prefix list IDs are associated with a prefix list name, or service name, that is linked to a specific region. Prefix list IDs are exported on VPC Endpoints, so you can use this format: diff --git a/sdk/python/pulumi_aws/ec2transitgateway/route.py b/sdk/python/pulumi_aws/ec2transitgateway/route.py index 949b4d2ff4f..5835b9c35e8 100644 --- a/sdk/python/pulumi_aws/ec2transitgateway/route.py +++ b/sdk/python/pulumi_aws/ec2transitgateway/route.py @@ -52,7 +52,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] blackhole: Indicates whether to drop traffic that matches this route (default to `false`). - :param pulumi.Input[str] destination_cidr_block: IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + :param pulumi.Input[str] destination_cidr_block: IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). :param pulumi.Input[str] transit_gateway_route_table_id: Identifier of EC2 Transit Gateway Route Table. """ @@ -103,7 +103,7 @@ 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[bool] blackhole: Indicates whether to drop traffic that matches this route (default to `false`). - :param pulumi.Input[str] destination_cidr_block: IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + :param pulumi.Input[str] destination_cidr_block: IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. :param pulumi.Input[str] transit_gateway_attachment_id: Identifier of EC2 Transit Gateway Attachment (required if `blackhole` is set to false). :param pulumi.Input[str] transit_gateway_route_table_id: Identifier of EC2 Transit Gateway Route Table. """ @@ -129,7 +129,7 @@ def blackhole(self) -> pulumi.Output[Optional[bool]]: @pulumi.getter(name="destinationCidrBlock") def destination_cidr_block(self) -> pulumi.Output[str]: """ - IPv4 CIDR range used for destination matches. Routing decisions are based on the most specific match. + IPv4 or IPv6 RFC1924 CIDR used for destination matches. Routing decisions are based on the most specific match. """ return pulumi.get(self, "destination_cidr_block") diff --git a/sdk/python/pulumi_aws/outputs.py b/sdk/python/pulumi_aws/outputs.py index 512612f743a..b9b933a97bd 100644 --- a/sdk/python/pulumi_aws/outputs.py +++ b/sdk/python/pulumi_aws/outputs.py @@ -214,6 +214,7 @@ def __init__(__self__, *, route53resolver: Optional[str] = None, s3: Optional[str] = None, s3control: Optional[str] = None, + s3outposts: Optional[str] = None, sagemaker: Optional[str] = None, sdb: Optional[str] = None, secretsmanager: Optional[str] = None, @@ -472,6 +473,8 @@ def __init__(__self__, *, pulumi.set(__self__, "s3", s3) if s3control is not None: pulumi.set(__self__, "s3control", s3control) + if s3outposts is not None: + pulumi.set(__self__, "s3outposts", s3outposts) if sagemaker is not None: pulumi.set(__self__, "sagemaker", sagemaker) if sdb is not None: @@ -1104,6 +1107,11 @@ def s3(self) -> Optional[str]: def s3control(self) -> Optional[str]: return pulumi.get(self, "s3control") + @property + @pulumi.getter + def s3outposts(self) -> Optional[str]: + return pulumi.get(self, "s3outposts") + @property @pulumi.getter def sagemaker(self) -> Optional[str]: diff --git a/sdk/python/pulumi_aws/rds/role_association.py b/sdk/python/pulumi_aws/rds/role_association.py index 232836cdc3b..ccc1de78df8 100644 --- a/sdk/python/pulumi_aws/rds/role_association.py +++ b/sdk/python/pulumi_aws/rds/role_association.py @@ -38,7 +38,7 @@ def __init__(__self__, example = aws.rds.RoleAssociation("example", db_instance_identifier=aws_db_instance["example"]["id"], feature_name="S3_INTEGRATION", - role_arn=aws_iam_role["example"]["id"]) + role_arn=aws_iam_role["example"]["arn"]) ``` :param str resource_name: The name of the resource. diff --git a/sdk/python/pulumi_aws/sagemaker/notebook_instance.py b/sdk/python/pulumi_aws/sagemaker/notebook_instance.py index a567b3d946b..f565b4cb7b7 100644 --- a/sdk/python/pulumi_aws/sagemaker/notebook_instance.py +++ b/sdk/python/pulumi_aws/sagemaker/notebook_instance.py @@ -15,6 +15,7 @@ class NotebookInstance(pulumi.CustomResource): def __init__(__self__, resource_name: str, opts: Optional[pulumi.ResourceOptions] = None, + default_code_repository: Optional[pulumi.Input[str]] = None, direct_internet_access: Optional[pulumi.Input[str]] = None, instance_type: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, @@ -25,6 +26,7 @@ def __init__(__self__, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, subnet_id: Optional[pulumi.Input[str]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + volume_size: Optional[pulumi.Input[int]] = None, __props__=None, __name__=None, __opts__=None): @@ -49,6 +51,7 @@ def __init__(__self__, :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. + :param pulumi.Input[str] default_code_repository: The Git repository associated with the notebook instance as its default code repository :param pulumi.Input[str] direct_internet_access: Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. :param pulumi.Input[str] instance_type: The name of ML compute instance type. :param pulumi.Input[str] kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. @@ -59,6 +62,7 @@ def __init__(__self__, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The associated security groups. :param pulumi.Input[str] subnet_id: The VPC subnet ID. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + :param pulumi.Input[int] volume_size: The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. """ if __name__ is not None: warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) @@ -77,6 +81,7 @@ def __init__(__self__, raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource') __props__ = dict() + __props__['default_code_repository'] = default_code_repository __props__['direct_internet_access'] = direct_internet_access if instance_type is None: raise TypeError("Missing required property 'instance_type'") @@ -91,6 +96,7 @@ def __init__(__self__, __props__['security_groups'] = security_groups __props__['subnet_id'] = subnet_id __props__['tags'] = tags + __props__['volume_size'] = volume_size __props__['arn'] = None super(NotebookInstance, __self__).__init__( 'aws:sagemaker/notebookInstance:NotebookInstance', @@ -103,6 +109,7 @@ def get(resource_name: str, id: pulumi.Input[str], opts: Optional[pulumi.ResourceOptions] = None, arn: Optional[pulumi.Input[str]] = None, + default_code_repository: Optional[pulumi.Input[str]] = None, direct_internet_access: Optional[pulumi.Input[str]] = None, instance_type: Optional[pulumi.Input[str]] = None, kms_key_id: Optional[pulumi.Input[str]] = None, @@ -112,7 +119,8 @@ def get(resource_name: str, root_access: Optional[pulumi.Input[str]] = None, security_groups: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, subnet_id: Optional[pulumi.Input[str]] = None, - tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None) -> 'NotebookInstance': + tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + volume_size: Optional[pulumi.Input[int]] = None) -> 'NotebookInstance': """ Get an existing NotebookInstance resource's state with the given name, id, and optional extra properties used to qualify the lookup. @@ -121,6 +129,7 @@ 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] arn: The Amazon Resource Name (ARN) assigned by AWS to this notebook instance. + :param pulumi.Input[str] default_code_repository: The Git repository associated with the notebook instance as its default code repository :param pulumi.Input[str] direct_internet_access: Set to `Disabled` to disable internet access to notebook. Requires `security_groups` and `subnet_id` to be set. Supported values: `Enabled` (Default) or `Disabled`. If set to `Disabled`, the notebook instance will be able to access resources only in your VPC, and will not be able to connect to Amazon SageMaker training and endpoint services unless your configure a NAT Gateway in your VPC. :param pulumi.Input[str] instance_type: The name of ML compute instance type. :param pulumi.Input[str] kms_key_id: The AWS Key Management Service (AWS KMS) key that Amazon SageMaker uses to encrypt the model artifacts at rest using Amazon S3 server-side encryption. @@ -131,12 +140,14 @@ def get(resource_name: str, :param pulumi.Input[Sequence[pulumi.Input[str]]] security_groups: The associated security groups. :param pulumi.Input[str] subnet_id: The VPC subnet ID. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags to assign to the resource. + :param pulumi.Input[int] volume_size: The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) __props__ = dict() __props__["arn"] = arn + __props__["default_code_repository"] = default_code_repository __props__["direct_internet_access"] = direct_internet_access __props__["instance_type"] = instance_type __props__["kms_key_id"] = kms_key_id @@ -147,6 +158,7 @@ def get(resource_name: str, __props__["security_groups"] = security_groups __props__["subnet_id"] = subnet_id __props__["tags"] = tags + __props__["volume_size"] = volume_size return NotebookInstance(resource_name, opts=opts, __props__=__props__) @property @@ -157,6 +169,14 @@ def arn(self) -> pulumi.Output[str]: """ return pulumi.get(self, "arn") + @property + @pulumi.getter(name="defaultCodeRepository") + def default_code_repository(self) -> pulumi.Output[Optional[str]]: + """ + The Git repository associated with the notebook instance as its default code repository + """ + return pulumi.get(self, "default_code_repository") + @property @pulumi.getter(name="directInternetAccess") def direct_internet_access(self) -> pulumi.Output[Optional[str]]: @@ -237,6 +257,14 @@ def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ return pulumi.get(self, "tags") + @property + @pulumi.getter(name="volumeSize") + def volume_size(self) -> pulumi.Output[Optional[int]]: + """ + The size, in GB, of the ML storage volume to attach to the notebook instance. The default value is 5 GB. + """ + return pulumi.get(self, "volume_size") + def translate_output_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop diff --git a/sdk/python/pulumi_aws/wafv2/_inputs.py b/sdk/python/pulumi_aws/wafv2/_inputs.py index 67826546c85..5b62aaf478c 100644 --- a/sdk/python/pulumi_aws/wafv2/_inputs.py +++ b/sdk/python/pulumi_aws/wafv2/_inputs.py @@ -50331,7 +50331,7 @@ class WebAclRuleStatementManagedRuleGroupStatementExcludedRuleArgs: def __init__(__self__, *, name: pulumi.Input[str]): """ - :param pulumi.Input[str] name: The name of the rule to exclude. + :param pulumi.Input[str] name: The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ pulumi.set(__self__, "name", name) @@ -50339,7 +50339,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> pulumi.Input[str]: """ - The name of the rule to exclude. + The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ return pulumi.get(self, "name") @@ -118454,7 +118454,7 @@ class WebAclRuleStatementRuleGroupReferenceStatementExcludedRuleArgs: def __init__(__self__, *, name: pulumi.Input[str]): """ - :param pulumi.Input[str] name: The name of the rule to exclude. + :param pulumi.Input[str] name: The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ pulumi.set(__self__, "name", name) @@ -118462,7 +118462,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> pulumi.Input[str]: """ - The name of the rule to exclude. + The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_aws/wafv2/outputs.py b/sdk/python/pulumi_aws/wafv2/outputs.py index 72c1b32bfaf..f69ddce0f73 100644 --- a/sdk/python/pulumi_aws/wafv2/outputs.py +++ b/sdk/python/pulumi_aws/wafv2/outputs.py @@ -45379,7 +45379,7 @@ class WebAclRuleStatementManagedRuleGroupStatementExcludedRule(dict): def __init__(__self__, *, name: str): """ - :param str name: The name of the rule to exclude. + :param str name: The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ pulumi.set(__self__, "name", name) @@ -45387,7 +45387,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> str: """ - The name of the rule to exclude. + The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ return pulumi.get(self, "name") @@ -106289,7 +106289,7 @@ class WebAclRuleStatementRuleGroupReferenceStatementExcludedRule(dict): def __init__(__self__, *, name: str): """ - :param str name: The name of the rule to exclude. + :param str name: The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ pulumi.set(__self__, "name", name) @@ -106297,7 +106297,7 @@ def __init__(__self__, *, @pulumi.getter def name(self) -> str: """ - The name of the rule to exclude. + The name of the rule to exclude. If the rule group is managed by AWS, see the [documentation](https://docs.aws.amazon.com/waf/latest/developerguide/aws-managed-rule-groups-list.html) for a list of names in the appropriate rule group in use. """ return pulumi.get(self, "name") diff --git a/sdk/python/pulumi_aws/workspaces/_inputs.py b/sdk/python/pulumi_aws/workspaces/_inputs.py index 30de3a84431..32cad07b72b 100644 --- a/sdk/python/pulumi_aws/workspaces/_inputs.py +++ b/sdk/python/pulumi_aws/workspaces/_inputs.py @@ -10,8 +10,10 @@ __all__ = [ 'DirectorySelfServicePermissionsArgs', + 'DirectoryWorkspaceCreationPropertiesArgs', 'IpGroupRuleArgs', 'WorkspaceWorkspacePropertiesArgs', + 'GetDirectoryWorkspaceCreationPropertiesArgs', ] @pulumi.input_type @@ -101,6 +103,93 @@ def switch_running_mode(self, value: Optional[pulumi.Input[bool]]): pulumi.set(self, "switch_running_mode", value) +@pulumi.input_type +class DirectoryWorkspaceCreationPropertiesArgs: + def __init__(__self__, *, + custom_security_group_id: Optional[pulumi.Input[str]] = None, + default_ou: Optional[pulumi.Input[str]] = None, + enable_internet_access: Optional[pulumi.Input[bool]] = None, + enable_maintenance_mode: Optional[pulumi.Input[bool]] = None, + user_enabled_as_local_administrator: Optional[pulumi.Input[bool]] = None): + """ + :param pulumi.Input[str] custom_security_group_id: The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + :param pulumi.Input[str] default_ou: The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + :param pulumi.Input[bool] enable_internet_access: Indicates whether internet access is enabled for your WorkSpaces. + :param pulumi.Input[bool] enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + :param pulumi.Input[bool] user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. + """ + if custom_security_group_id is not None: + pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) + if default_ou is not None: + pulumi.set(__self__, "default_ou", default_ou) + if enable_internet_access is not None: + pulumi.set(__self__, "enable_internet_access", enable_internet_access) + if enable_maintenance_mode is not None: + pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) + if user_enabled_as_local_administrator is not None: + pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + + @property + @pulumi.getter(name="customSecurityGroupId") + def custom_security_group_id(self) -> Optional[pulumi.Input[str]]: + """ + The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + """ + return pulumi.get(self, "custom_security_group_id") + + @custom_security_group_id.setter + def custom_security_group_id(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "custom_security_group_id", value) + + @property + @pulumi.getter(name="defaultOu") + def default_ou(self) -> Optional[pulumi.Input[str]]: + """ + The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + """ + return pulumi.get(self, "default_ou") + + @default_ou.setter + def default_ou(self, value: Optional[pulumi.Input[str]]): + pulumi.set(self, "default_ou", value) + + @property + @pulumi.getter(name="enableInternetAccess") + def enable_internet_access(self) -> Optional[pulumi.Input[bool]]: + """ + Indicates whether internet access is enabled for your WorkSpaces. + """ + return pulumi.get(self, "enable_internet_access") + + @enable_internet_access.setter + def enable_internet_access(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_internet_access", value) + + @property + @pulumi.getter(name="enableMaintenanceMode") + def enable_maintenance_mode(self) -> Optional[pulumi.Input[bool]]: + """ + Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + """ + return pulumi.get(self, "enable_maintenance_mode") + + @enable_maintenance_mode.setter + def enable_maintenance_mode(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "enable_maintenance_mode", value) + + @property + @pulumi.getter(name="userEnabledAsLocalAdministrator") + def user_enabled_as_local_administrator(self) -> Optional[pulumi.Input[bool]]: + """ + Indicates whether users are local administrators of their WorkSpaces. + """ + return pulumi.get(self, "user_enabled_as_local_administrator") + + @user_enabled_as_local_administrator.setter + def user_enabled_as_local_administrator(self, value: Optional[pulumi.Input[bool]]): + pulumi.set(self, "user_enabled_as_local_administrator", value) + + @pulumi.input_type class IpGroupRuleArgs: def __init__(__self__, *, @@ -226,3 +315,89 @@ def user_volume_size_gib(self, value: Optional[pulumi.Input[int]]): pulumi.set(self, "user_volume_size_gib", value) +@pulumi.input_type +class GetDirectoryWorkspaceCreationPropertiesArgs: + def __init__(__self__, *, + custom_security_group_id: str, + default_ou: Optional[str] = None, + enable_internet_access: Optional[bool] = None, + enable_maintenance_mode: Optional[bool] = None, + user_enabled_as_local_administrator: Optional[bool] = None): + """ + :param str custom_security_group_id: The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + :param str default_ou: The default organizational unit (OU) for your WorkSpace directories. + :param bool enable_internet_access: Indicates whether internet access is enabled for your WorkSpaces. + :param bool enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + :param bool user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. + """ + pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) + if default_ou is not None: + pulumi.set(__self__, "default_ou", default_ou) + if enable_internet_access is not None: + pulumi.set(__self__, "enable_internet_access", enable_internet_access) + if enable_maintenance_mode is not None: + pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) + if user_enabled_as_local_administrator is not None: + pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + + @property + @pulumi.getter(name="customSecurityGroupId") + def custom_security_group_id(self) -> str: + """ + The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + """ + return pulumi.get(self, "custom_security_group_id") + + @custom_security_group_id.setter + def custom_security_group_id(self, value: str): + pulumi.set(self, "custom_security_group_id", value) + + @property + @pulumi.getter(name="defaultOu") + def default_ou(self) -> Optional[str]: + """ + The default organizational unit (OU) for your WorkSpace directories. + """ + return pulumi.get(self, "default_ou") + + @default_ou.setter + def default_ou(self, value: Optional[str]): + pulumi.set(self, "default_ou", value) + + @property + @pulumi.getter(name="enableInternetAccess") + def enable_internet_access(self) -> Optional[bool]: + """ + Indicates whether internet access is enabled for your WorkSpaces. + """ + return pulumi.get(self, "enable_internet_access") + + @enable_internet_access.setter + def enable_internet_access(self, value: Optional[bool]): + pulumi.set(self, "enable_internet_access", value) + + @property + @pulumi.getter(name="enableMaintenanceMode") + def enable_maintenance_mode(self) -> Optional[bool]: + """ + Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + """ + return pulumi.get(self, "enable_maintenance_mode") + + @enable_maintenance_mode.setter + def enable_maintenance_mode(self, value: Optional[bool]): + pulumi.set(self, "enable_maintenance_mode", value) + + @property + @pulumi.getter(name="userEnabledAsLocalAdministrator") + def user_enabled_as_local_administrator(self) -> Optional[bool]: + """ + Indicates whether users are local administrators of their WorkSpaces. + """ + return pulumi.get(self, "user_enabled_as_local_administrator") + + @user_enabled_as_local_administrator.setter + def user_enabled_as_local_administrator(self, value: Optional[bool]): + pulumi.set(self, "user_enabled_as_local_administrator", value) + + diff --git a/sdk/python/pulumi_aws/workspaces/directory.py b/sdk/python/pulumi_aws/workspaces/directory.py index b9beba0df0e..6801afb1c21 100644 --- a/sdk/python/pulumi_aws/workspaces/directory.py +++ b/sdk/python/pulumi_aws/workspaces/directory.py @@ -21,11 +21,12 @@ def __init__(__self__, self_service_permissions: Optional[pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workspace_creation_properties: Optional[pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']]] = None, __props__=None, __name__=None, __opts__=None): """ - Provides a directory registration in AWS WorkSpaces Service + Provides a WorkSpaces directory in AWS WorkSpaces Service. ## Example Usage @@ -33,40 +34,66 @@ def __init__(__self__, import pulumi import pulumi_aws as aws - main_vpc = aws.ec2.Vpc("mainVpc", cidr_block="10.0.0.0/16") - private_a = aws.ec2.Subnet("private-a", - vpc_id=main_vpc.id, + example_vpc = aws.ec2.Vpc("exampleVpc", cidr_block="10.0.0.0/16") + example_a = aws.ec2.Subnet("exampleA", + vpc_id=example_vpc.id, availability_zone="us-east-1a", cidr_block="10.0.0.0/24") - private_b = aws.ec2.Subnet("private-b", - vpc_id=main_vpc.id, + example_b = aws.ec2.Subnet("exampleB", + vpc_id=example_vpc.id, availability_zone="us-east-1b", cidr_block="10.0.1.0/24") - main_directory = aws.directoryservice.Directory("mainDirectory", + example_c = aws.ec2.Subnet("exampleC", + vpc_id=example_vpc.id, + availability_zone="us-east-1c", + cidr_block="10.0.2.0/24") + example_d = aws.ec2.Subnet("exampleD", + vpc_id=example_vpc.id, + availability_zone="us-east-1d", + cidr_block="10.0.3.0/24") + example_directory = aws.directoryservice.Directory("exampleDirectory", name="corp.example.com", password="#S1ncerely", size="Small", vpc_settings=aws.directoryservice.DirectoryVpcSettingsArgs( - vpc_id=main_vpc.id, + vpc_id=example_vpc.id, subnet_ids=[ - private_a.id, - private_b.id, + example_a.id, + example_b.id, ], )) - main_workspaces_directory_directory = aws.workspaces.Directory("mainWorkspaces/directoryDirectory", - directory_id=main_directory.id, + example_workspaces_directory_directory = aws.workspaces.Directory("exampleWorkspaces/directoryDirectory", + directory_id=example_directory.id, + subnet_ids=[ + example_c.id, + example_d.id, + ], + tags={ + "Example": "true", + }, self_service_permissions=aws.workspaces.DirectorySelfServicePermissionsArgs( + change_compute_type=True, increase_volume_size=True, rebuild_workspace=True, + restart_workspace=True, + switch_running_mode=True, + ), + workspace_creation_properties=aws.workspaces.DirectoryWorkspaceCreationPropertiesArgs( + custom_security_group_id=aws_security_group["example"]["id"], + default_ou="OU=AWS,DC=Workgroup,DC=Example,DC=com", + enable_internet_access=True, + enable_maintenance_mode=True, + user_enabled_as_local_administrator=True, )) ``` :param str resource_name: The name of the resource. :param pulumi.ResourceOptions opts: Options for the resource. :param pulumi.Input[str] directory_id: The directory identifier for registration in WorkSpaces service. - :param pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']] self_service_permissions: The permissions to enable or disable self-service capabilities. - :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The identifiers of the subnets where the directory resides. + :param pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']] self_service_permissions: Permissions to enable or disable self-service capabilities. Defined below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The subnets identifiers where the workspaces are created. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces directory. + :param pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']] workspace_creation_properties: Default properties that are used for creating WorkSpaces. Defined below. """ if __name__ is not None: warnings.warn("explicit use of __name__ is deprecated", DeprecationWarning) @@ -91,6 +118,7 @@ def __init__(__self__, __props__['self_service_permissions'] = self_service_permissions __props__['subnet_ids'] = subnet_ids __props__['tags'] = tags + __props__['workspace_creation_properties'] = workspace_creation_properties __props__['alias'] = None __props__['customer_user_name'] = None __props__['directory_name'] = None @@ -122,6 +150,7 @@ def get(resource_name: str, self_service_permissions: Optional[pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']]] = None, subnet_ids: Optional[pulumi.Input[Sequence[pulumi.Input[str]]]] = None, tags: Optional[pulumi.Input[Mapping[str, pulumi.Input[str]]]] = None, + workspace_creation_properties: Optional[pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']]] = None, workspace_security_group_id: Optional[pulumi.Input[str]] = None) -> 'Directory': """ Get an existing Directory resource's state with the given name, id, and optional extra @@ -139,9 +168,10 @@ def get(resource_name: str, :param pulumi.Input[str] iam_role_id: The identifier of the IAM role. This is the role that allows Amazon WorkSpaces to make calls to other services, such as Amazon EC2, on your behalf. :param pulumi.Input[Sequence[pulumi.Input[str]]] ip_group_ids: The identifiers of the IP access control groups associated with the directory. :param pulumi.Input[str] registration_code: The registration code for the directory. This is the code that users enter in their Amazon WorkSpaces client application to connect to the directory. - :param pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']] self_service_permissions: The permissions to enable or disable self-service capabilities. - :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The identifiers of the subnets where the directory resides. + :param pulumi.Input[pulumi.InputType['DirectorySelfServicePermissionsArgs']] self_service_permissions: Permissions to enable or disable self-service capabilities. Defined below. + :param pulumi.Input[Sequence[pulumi.Input[str]]] subnet_ids: The subnets identifiers where the workspaces are created. :param pulumi.Input[Mapping[str, pulumi.Input[str]]] tags: A map of tags assigned to the WorkSpaces directory. + :param pulumi.Input[pulumi.InputType['DirectoryWorkspaceCreationPropertiesArgs']] workspace_creation_properties: Default properties that are used for creating WorkSpaces. Defined below. :param pulumi.Input[str] workspace_security_group_id: The identifier of the security group that is assigned to new WorkSpaces. """ opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id)) @@ -160,6 +190,7 @@ def get(resource_name: str, __props__["self_service_permissions"] = self_service_permissions __props__["subnet_ids"] = subnet_ids __props__["tags"] = tags + __props__["workspace_creation_properties"] = workspace_creation_properties __props__["workspace_security_group_id"] = workspace_security_group_id return Directory(resource_name, opts=opts, __props__=__props__) @@ -239,7 +270,7 @@ def registration_code(self) -> pulumi.Output[str]: @pulumi.getter(name="selfServicePermissions") def self_service_permissions(self) -> pulumi.Output['outputs.DirectorySelfServicePermissions']: """ - The permissions to enable or disable self-service capabilities. + Permissions to enable or disable self-service capabilities. Defined below. """ return pulumi.get(self, "self_service_permissions") @@ -247,7 +278,7 @@ def self_service_permissions(self) -> pulumi.Output['outputs.DirectorySelfServic @pulumi.getter(name="subnetIds") def subnet_ids(self) -> pulumi.Output[Sequence[str]]: """ - The identifiers of the subnets where the directory resides. + The subnets identifiers where the workspaces are created. """ return pulumi.get(self, "subnet_ids") @@ -259,6 +290,14 @@ def tags(self) -> pulumi.Output[Optional[Mapping[str, str]]]: """ return pulumi.get(self, "tags") + @property + @pulumi.getter(name="workspaceCreationProperties") + def workspace_creation_properties(self) -> pulumi.Output['outputs.DirectoryWorkspaceCreationProperties']: + """ + Default properties that are used for creating WorkSpaces. Defined below. + """ + return pulumi.get(self, "workspace_creation_properties") + @property @pulumi.getter(name="workspaceSecurityGroupId") def workspace_security_group_id(self) -> pulumi.Output[str]: diff --git a/sdk/python/pulumi_aws/workspaces/get_directory.py b/sdk/python/pulumi_aws/workspaces/get_directory.py index c8fe98d8728..78774690b1d 100644 --- a/sdk/python/pulumi_aws/workspaces/get_directory.py +++ b/sdk/python/pulumi_aws/workspaces/get_directory.py @@ -8,6 +8,7 @@ from typing import Any, Mapping, Optional, Sequence, Union from .. import _utilities, _tables from . import outputs +from ._inputs import * __all__ = [ 'GetDirectoryResult', @@ -20,7 +21,7 @@ class GetDirectoryResult: """ A collection of values returned by getDirectory. """ - def __init__(__self__, alias=None, customer_user_name=None, directory_id=None, directory_name=None, directory_type=None, dns_ip_addresses=None, iam_role_id=None, id=None, ip_group_ids=None, registration_code=None, self_service_permissions=None, subnet_ids=None, tags=None, workspace_security_group_id=None): + def __init__(__self__, alias=None, customer_user_name=None, directory_id=None, directory_name=None, directory_type=None, dns_ip_addresses=None, iam_role_id=None, id=None, ip_group_ids=None, registration_code=None, self_service_permissions=None, subnet_ids=None, tags=None, workspace_creation_properties=None, workspace_security_group_id=None): if alias and not isinstance(alias, str): raise TypeError("Expected argument 'alias' to be a str") pulumi.set(__self__, "alias", alias) @@ -60,6 +61,9 @@ def __init__(__self__, alias=None, customer_user_name=None, directory_id=None, d if tags and not isinstance(tags, dict): raise TypeError("Expected argument 'tags' to be a dict") pulumi.set(__self__, "tags", tags) + if workspace_creation_properties and not isinstance(workspace_creation_properties, dict): + raise TypeError("Expected argument 'workspace_creation_properties' to be a dict") + pulumi.set(__self__, "workspace_creation_properties", workspace_creation_properties) if workspace_security_group_id and not isinstance(workspace_security_group_id, str): raise TypeError("Expected argument 'workspace_security_group_id' to be a str") pulumi.set(__self__, "workspace_security_group_id", workspace_security_group_id) @@ -165,11 +169,19 @@ def tags(self) -> Optional[Mapping[str, str]]: """ return pulumi.get(self, "tags") + @property + @pulumi.getter(name="workspaceCreationProperties") + def workspace_creation_properties(self) -> 'outputs.GetDirectoryWorkspaceCreationPropertiesResult': + """ + The default properties that are used for creating WorkSpaces. Defined below. + """ + return pulumi.get(self, "workspace_creation_properties") + @property @pulumi.getter(name="workspaceSecurityGroupId") def workspace_security_group_id(self) -> str: """ - The identifier of the security group that is assigned to new WorkSpaces. + The identifier of the security group that is assigned to new WorkSpaces. Defined below. """ return pulumi.get(self, "workspace_security_group_id") @@ -193,11 +205,13 @@ def __await__(self): self_service_permissions=self.self_service_permissions, subnet_ids=self.subnet_ids, tags=self.tags, + workspace_creation_properties=self.workspace_creation_properties, workspace_security_group_id=self.workspace_security_group_id) def get_directory(directory_id: Optional[str] = None, tags: Optional[Mapping[str, str]] = None, + workspace_creation_properties: Optional[pulumi.InputType['GetDirectoryWorkspaceCreationPropertiesArgs']] = None, opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetDirectoryResult: """ Retrieve information about an AWS WorkSpaces directory. @@ -214,10 +228,12 @@ def get_directory(directory_id: Optional[str] = None, :param str directory_id: The directory identifier for registration in WorkSpaces service. :param Mapping[str, str] tags: A map of tags assigned to the WorkSpaces directory. + :param pulumi.InputType['GetDirectoryWorkspaceCreationPropertiesArgs'] workspace_creation_properties: The default properties that are used for creating WorkSpaces. Defined below. """ __args__ = dict() __args__['directoryId'] = directory_id __args__['tags'] = tags + __args__['workspaceCreationProperties'] = workspace_creation_properties if opts is None: opts = pulumi.InvokeOptions() if opts.version is None: @@ -238,4 +254,5 @@ def get_directory(directory_id: Optional[str] = None, self_service_permissions=__ret__.self_service_permissions, subnet_ids=__ret__.subnet_ids, tags=__ret__.tags, + workspace_creation_properties=__ret__.workspace_creation_properties, workspace_security_group_id=__ret__.workspace_security_group_id) diff --git a/sdk/python/pulumi_aws/workspaces/outputs.py b/sdk/python/pulumi_aws/workspaces/outputs.py index f8cb5e3c28e..63396ee0a8d 100644 --- a/sdk/python/pulumi_aws/workspaces/outputs.py +++ b/sdk/python/pulumi_aws/workspaces/outputs.py @@ -10,12 +10,14 @@ __all__ = [ 'DirectorySelfServicePermissions', + 'DirectoryWorkspaceCreationProperties', 'IpGroupRule', 'WorkspaceWorkspaceProperties', 'GetBundleComputeTypeResult', 'GetBundleRootStorageResult', 'GetBundleUserStorageResult', 'GetDirectorySelfServicePermissionResult', + 'GetDirectoryWorkspaceCreationPropertiesResult', ] @pulumi.output_type @@ -88,6 +90,76 @@ def _translate_property(self, prop): return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop +@pulumi.output_type +class DirectoryWorkspaceCreationProperties(dict): + def __init__(__self__, *, + custom_security_group_id: Optional[str] = None, + default_ou: Optional[str] = None, + enable_internet_access: Optional[bool] = None, + enable_maintenance_mode: Optional[bool] = None, + user_enabled_as_local_administrator: Optional[bool] = None): + """ + :param str custom_security_group_id: The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + :param str default_ou: The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + :param bool enable_internet_access: Indicates whether internet access is enabled for your WorkSpaces. + :param bool enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + :param bool user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. + """ + if custom_security_group_id is not None: + pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) + if default_ou is not None: + pulumi.set(__self__, "default_ou", default_ou) + if enable_internet_access is not None: + pulumi.set(__self__, "enable_internet_access", enable_internet_access) + if enable_maintenance_mode is not None: + pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) + if user_enabled_as_local_administrator is not None: + pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + + @property + @pulumi.getter(name="customSecurityGroupId") + def custom_security_group_id(self) -> Optional[str]: + """ + The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + """ + return pulumi.get(self, "custom_security_group_id") + + @property + @pulumi.getter(name="defaultOu") + def default_ou(self) -> Optional[str]: + """ + The default organizational unit (OU) for your WorkSpace directories. Should conform `"OU=,DC=,...,DC="` pattern. + """ + return pulumi.get(self, "default_ou") + + @property + @pulumi.getter(name="enableInternetAccess") + def enable_internet_access(self) -> Optional[bool]: + """ + Indicates whether internet access is enabled for your WorkSpaces. + """ + return pulumi.get(self, "enable_internet_access") + + @property + @pulumi.getter(name="enableMaintenanceMode") + def enable_maintenance_mode(self) -> Optional[bool]: + """ + Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html).. + """ + return pulumi.get(self, "enable_maintenance_mode") + + @property + @pulumi.getter(name="userEnabledAsLocalAdministrator") + def user_enabled_as_local_administrator(self) -> Optional[bool]: + """ + Indicates whether users are local administrators of their WorkSpaces. + """ + return pulumi.get(self, "user_enabled_as_local_administrator") + + def _translate_property(self, prop): + return _tables.CAMEL_TO_SNAKE_CASE_TABLE.get(prop) or prop + + @pulumi.output_type class IpGroupRule(dict): def __init__(__self__, *, @@ -307,3 +379,69 @@ def switch_running_mode(self) -> bool: return pulumi.get(self, "switch_running_mode") +@pulumi.output_type +class GetDirectoryWorkspaceCreationPropertiesResult(dict): + def __init__(__self__, *, + custom_security_group_id: str, + default_ou: Optional[str] = None, + enable_internet_access: Optional[bool] = None, + enable_maintenance_mode: Optional[bool] = None, + user_enabled_as_local_administrator: Optional[bool] = None): + """ + :param str custom_security_group_id: The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + :param str default_ou: The default organizational unit (OU) for your WorkSpace directories. + :param bool enable_internet_access: Indicates whether internet access is enabled for your WorkSpaces. + :param bool enable_maintenance_mode: Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + :param bool user_enabled_as_local_administrator: Indicates whether users are local administrators of their WorkSpaces. + """ + pulumi.set(__self__, "custom_security_group_id", custom_security_group_id) + if default_ou is not None: + pulumi.set(__self__, "default_ou", default_ou) + if enable_internet_access is not None: + pulumi.set(__self__, "enable_internet_access", enable_internet_access) + if enable_maintenance_mode is not None: + pulumi.set(__self__, "enable_maintenance_mode", enable_maintenance_mode) + if user_enabled_as_local_administrator is not None: + pulumi.set(__self__, "user_enabled_as_local_administrator", user_enabled_as_local_administrator) + + @property + @pulumi.getter(name="customSecurityGroupId") + def custom_security_group_id(self) -> str: + """ + The identifier of your custom security group. Should relate to the same VPC, where workspaces reside in. + """ + return pulumi.get(self, "custom_security_group_id") + + @property + @pulumi.getter(name="defaultOu") + def default_ou(self) -> Optional[str]: + """ + The default organizational unit (OU) for your WorkSpace directories. + """ + return pulumi.get(self, "default_ou") + + @property + @pulumi.getter(name="enableInternetAccess") + def enable_internet_access(self) -> Optional[bool]: + """ + Indicates whether internet access is enabled for your WorkSpaces. + """ + return pulumi.get(self, "enable_internet_access") + + @property + @pulumi.getter(name="enableMaintenanceMode") + def enable_maintenance_mode(self) -> Optional[bool]: + """ + Indicates whether maintenance mode is enabled for your WorkSpaces. For more information, see [WorkSpace Maintenance](https://docs.aws.amazon.com/workspaces/latest/adminguide/workspace-maintenance.html). + """ + return pulumi.get(self, "enable_maintenance_mode") + + @property + @pulumi.getter(name="userEnabledAsLocalAdministrator") + def user_enabled_as_local_administrator(self) -> Optional[bool]: + """ + Indicates whether users are local administrators of their WorkSpaces. + """ + return pulumi.get(self, "user_enabled_as_local_administrator") + +