github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/apigatewayv2/routeResponse.go (about) 1 // Code generated by the Pulumi Terraform Bridge (tfgen) Tool DO NOT EDIT. 2 // *** WARNING: Do not edit by hand unless you're certain you know what you are doing! *** 3 4 package apigatewayv2 5 6 import ( 7 "context" 8 "reflect" 9 10 "errors" 11 "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/internal" 12 "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 13 ) 14 15 // Manages an Amazon API Gateway Version 2 route response. 16 // More information can be found in the [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html). 17 // 18 // ## Example Usage 19 // 20 // ### Basic 21 // 22 // <!--Start PulumiCodeChooser --> 23 // ```go 24 // package main 25 // 26 // import ( 27 // 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigatewayv2" 29 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 30 // 31 // ) 32 // 33 // func main() { 34 // pulumi.Run(func(ctx *pulumi.Context) error { 35 // _, err := apigatewayv2.NewRouteResponse(ctx, "example", &apigatewayv2.RouteResponseArgs{ 36 // ApiId: pulumi.Any(exampleAwsApigatewayv2Api.Id), 37 // RouteId: pulumi.Any(exampleAwsApigatewayv2Route.Id), 38 // RouteResponseKey: pulumi.String("$default"), 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // return nil 44 // }) 45 // } 46 // 47 // ``` 48 // <!--End PulumiCodeChooser --> 49 // 50 // ## Enabling Two-Way Communication 51 // 52 // For websocket routes that require two-way communication enabled, an `apigatewayv2.RouteResponse` needs to be added to the route with `routeResponseKey = "$default"`. More information available is available in [Amazon API Gateway Developer Guide](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api.html). 53 // 54 // You can only define the $default route response for WebSocket APIs. You can use an integration response to manipulate the response from a backend service. For more information, see [Overview of integration responses](https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-responses.html#apigateway-websocket-api-integration-response-overview). 55 // 56 // ## Import 57 // 58 // Using `pulumi import`, import `aws_apigatewayv2_route_response` using the API identifier, route identifier and route response identifier. For example: 59 // 60 // ```sh 61 // $ pulumi import aws:apigatewayv2/routeResponse:RouteResponse example aabbccddee/1122334/998877 62 // ``` 63 type RouteResponse struct { 64 pulumi.CustomResourceState 65 66 // API identifier. 67 ApiId pulumi.StringOutput `pulumi:"apiId"` 68 // 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 response. 69 ModelSelectionExpression pulumi.StringPtrOutput `pulumi:"modelSelectionExpression"` 70 // Response models for the route response. 71 ResponseModels pulumi.StringMapOutput `pulumi:"responseModels"` 72 // Identifier of the `apigatewayv2.Route`. 73 RouteId pulumi.StringOutput `pulumi:"routeId"` 74 // Route response key. 75 RouteResponseKey pulumi.StringOutput `pulumi:"routeResponseKey"` 76 } 77 78 // NewRouteResponse registers a new resource with the given unique name, arguments, and options. 79 func NewRouteResponse(ctx *pulumi.Context, 80 name string, args *RouteResponseArgs, opts ...pulumi.ResourceOption) (*RouteResponse, error) { 81 if args == nil { 82 return nil, errors.New("missing one or more required arguments") 83 } 84 85 if args.ApiId == nil { 86 return nil, errors.New("invalid value for required argument 'ApiId'") 87 } 88 if args.RouteId == nil { 89 return nil, errors.New("invalid value for required argument 'RouteId'") 90 } 91 if args.RouteResponseKey == nil { 92 return nil, errors.New("invalid value for required argument 'RouteResponseKey'") 93 } 94 opts = internal.PkgResourceDefaultOpts(opts) 95 var resource RouteResponse 96 err := ctx.RegisterResource("aws:apigatewayv2/routeResponse:RouteResponse", name, args, &resource, opts...) 97 if err != nil { 98 return nil, err 99 } 100 return &resource, nil 101 } 102 103 // GetRouteResponse gets an existing RouteResponse resource's state with the given name, ID, and optional 104 // state properties that are used to uniquely qualify the lookup (nil if not required). 105 func GetRouteResponse(ctx *pulumi.Context, 106 name string, id pulumi.IDInput, state *RouteResponseState, opts ...pulumi.ResourceOption) (*RouteResponse, error) { 107 var resource RouteResponse 108 err := ctx.ReadResource("aws:apigatewayv2/routeResponse:RouteResponse", name, id, state, &resource, opts...) 109 if err != nil { 110 return nil, err 111 } 112 return &resource, nil 113 } 114 115 // Input properties used for looking up and filtering RouteResponse resources. 116 type routeResponseState struct { 117 // API identifier. 118 ApiId *string `pulumi:"apiId"` 119 // 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 response. 120 ModelSelectionExpression *string `pulumi:"modelSelectionExpression"` 121 // Response models for the route response. 122 ResponseModels map[string]string `pulumi:"responseModels"` 123 // Identifier of the `apigatewayv2.Route`. 124 RouteId *string `pulumi:"routeId"` 125 // Route response key. 126 RouteResponseKey *string `pulumi:"routeResponseKey"` 127 } 128 129 type RouteResponseState struct { 130 // API identifier. 131 ApiId pulumi.StringPtrInput 132 // 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 response. 133 ModelSelectionExpression pulumi.StringPtrInput 134 // Response models for the route response. 135 ResponseModels pulumi.StringMapInput 136 // Identifier of the `apigatewayv2.Route`. 137 RouteId pulumi.StringPtrInput 138 // Route response key. 139 RouteResponseKey pulumi.StringPtrInput 140 } 141 142 func (RouteResponseState) ElementType() reflect.Type { 143 return reflect.TypeOf((*routeResponseState)(nil)).Elem() 144 } 145 146 type routeResponseArgs struct { 147 // API identifier. 148 ApiId string `pulumi:"apiId"` 149 // 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 response. 150 ModelSelectionExpression *string `pulumi:"modelSelectionExpression"` 151 // Response models for the route response. 152 ResponseModels map[string]string `pulumi:"responseModels"` 153 // Identifier of the `apigatewayv2.Route`. 154 RouteId string `pulumi:"routeId"` 155 // Route response key. 156 RouteResponseKey string `pulumi:"routeResponseKey"` 157 } 158 159 // The set of arguments for constructing a RouteResponse resource. 160 type RouteResponseArgs struct { 161 // API identifier. 162 ApiId pulumi.StringInput 163 // 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 response. 164 ModelSelectionExpression pulumi.StringPtrInput 165 // Response models for the route response. 166 ResponseModels pulumi.StringMapInput 167 // Identifier of the `apigatewayv2.Route`. 168 RouteId pulumi.StringInput 169 // Route response key. 170 RouteResponseKey pulumi.StringInput 171 } 172 173 func (RouteResponseArgs) ElementType() reflect.Type { 174 return reflect.TypeOf((*routeResponseArgs)(nil)).Elem() 175 } 176 177 type RouteResponseInput interface { 178 pulumi.Input 179 180 ToRouteResponseOutput() RouteResponseOutput 181 ToRouteResponseOutputWithContext(ctx context.Context) RouteResponseOutput 182 } 183 184 func (*RouteResponse) ElementType() reflect.Type { 185 return reflect.TypeOf((**RouteResponse)(nil)).Elem() 186 } 187 188 func (i *RouteResponse) ToRouteResponseOutput() RouteResponseOutput { 189 return i.ToRouteResponseOutputWithContext(context.Background()) 190 } 191 192 func (i *RouteResponse) ToRouteResponseOutputWithContext(ctx context.Context) RouteResponseOutput { 193 return pulumi.ToOutputWithContext(ctx, i).(RouteResponseOutput) 194 } 195 196 // RouteResponseArrayInput is an input type that accepts RouteResponseArray and RouteResponseArrayOutput values. 197 // You can construct a concrete instance of `RouteResponseArrayInput` via: 198 // 199 // RouteResponseArray{ RouteResponseArgs{...} } 200 type RouteResponseArrayInput interface { 201 pulumi.Input 202 203 ToRouteResponseArrayOutput() RouteResponseArrayOutput 204 ToRouteResponseArrayOutputWithContext(context.Context) RouteResponseArrayOutput 205 } 206 207 type RouteResponseArray []RouteResponseInput 208 209 func (RouteResponseArray) ElementType() reflect.Type { 210 return reflect.TypeOf((*[]*RouteResponse)(nil)).Elem() 211 } 212 213 func (i RouteResponseArray) ToRouteResponseArrayOutput() RouteResponseArrayOutput { 214 return i.ToRouteResponseArrayOutputWithContext(context.Background()) 215 } 216 217 func (i RouteResponseArray) ToRouteResponseArrayOutputWithContext(ctx context.Context) RouteResponseArrayOutput { 218 return pulumi.ToOutputWithContext(ctx, i).(RouteResponseArrayOutput) 219 } 220 221 // RouteResponseMapInput is an input type that accepts RouteResponseMap and RouteResponseMapOutput values. 222 // You can construct a concrete instance of `RouteResponseMapInput` via: 223 // 224 // RouteResponseMap{ "key": RouteResponseArgs{...} } 225 type RouteResponseMapInput interface { 226 pulumi.Input 227 228 ToRouteResponseMapOutput() RouteResponseMapOutput 229 ToRouteResponseMapOutputWithContext(context.Context) RouteResponseMapOutput 230 } 231 232 type RouteResponseMap map[string]RouteResponseInput 233 234 func (RouteResponseMap) ElementType() reflect.Type { 235 return reflect.TypeOf((*map[string]*RouteResponse)(nil)).Elem() 236 } 237 238 func (i RouteResponseMap) ToRouteResponseMapOutput() RouteResponseMapOutput { 239 return i.ToRouteResponseMapOutputWithContext(context.Background()) 240 } 241 242 func (i RouteResponseMap) ToRouteResponseMapOutputWithContext(ctx context.Context) RouteResponseMapOutput { 243 return pulumi.ToOutputWithContext(ctx, i).(RouteResponseMapOutput) 244 } 245 246 type RouteResponseOutput struct{ *pulumi.OutputState } 247 248 func (RouteResponseOutput) ElementType() reflect.Type { 249 return reflect.TypeOf((**RouteResponse)(nil)).Elem() 250 } 251 252 func (o RouteResponseOutput) ToRouteResponseOutput() RouteResponseOutput { 253 return o 254 } 255 256 func (o RouteResponseOutput) ToRouteResponseOutputWithContext(ctx context.Context) RouteResponseOutput { 257 return o 258 } 259 260 // API identifier. 261 func (o RouteResponseOutput) ApiId() pulumi.StringOutput { 262 return o.ApplyT(func(v *RouteResponse) pulumi.StringOutput { return v.ApiId }).(pulumi.StringOutput) 263 } 264 265 // 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 response. 266 func (o RouteResponseOutput) ModelSelectionExpression() pulumi.StringPtrOutput { 267 return o.ApplyT(func(v *RouteResponse) pulumi.StringPtrOutput { return v.ModelSelectionExpression }).(pulumi.StringPtrOutput) 268 } 269 270 // Response models for the route response. 271 func (o RouteResponseOutput) ResponseModels() pulumi.StringMapOutput { 272 return o.ApplyT(func(v *RouteResponse) pulumi.StringMapOutput { return v.ResponseModels }).(pulumi.StringMapOutput) 273 } 274 275 // Identifier of the `apigatewayv2.Route`. 276 func (o RouteResponseOutput) RouteId() pulumi.StringOutput { 277 return o.ApplyT(func(v *RouteResponse) pulumi.StringOutput { return v.RouteId }).(pulumi.StringOutput) 278 } 279 280 // Route response key. 281 func (o RouteResponseOutput) RouteResponseKey() pulumi.StringOutput { 282 return o.ApplyT(func(v *RouteResponse) pulumi.StringOutput { return v.RouteResponseKey }).(pulumi.StringOutput) 283 } 284 285 type RouteResponseArrayOutput struct{ *pulumi.OutputState } 286 287 func (RouteResponseArrayOutput) ElementType() reflect.Type { 288 return reflect.TypeOf((*[]*RouteResponse)(nil)).Elem() 289 } 290 291 func (o RouteResponseArrayOutput) ToRouteResponseArrayOutput() RouteResponseArrayOutput { 292 return o 293 } 294 295 func (o RouteResponseArrayOutput) ToRouteResponseArrayOutputWithContext(ctx context.Context) RouteResponseArrayOutput { 296 return o 297 } 298 299 func (o RouteResponseArrayOutput) Index(i pulumi.IntInput) RouteResponseOutput { 300 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RouteResponse { 301 return vs[0].([]*RouteResponse)[vs[1].(int)] 302 }).(RouteResponseOutput) 303 } 304 305 type RouteResponseMapOutput struct{ *pulumi.OutputState } 306 307 func (RouteResponseMapOutput) ElementType() reflect.Type { 308 return reflect.TypeOf((*map[string]*RouteResponse)(nil)).Elem() 309 } 310 311 func (o RouteResponseMapOutput) ToRouteResponseMapOutput() RouteResponseMapOutput { 312 return o 313 } 314 315 func (o RouteResponseMapOutput) ToRouteResponseMapOutputWithContext(ctx context.Context) RouteResponseMapOutput { 316 return o 317 } 318 319 func (o RouteResponseMapOutput) MapIndex(k pulumi.StringInput) RouteResponseOutput { 320 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RouteResponse { 321 return vs[0].(map[string]*RouteResponse)[vs[1].(string)] 322 }).(RouteResponseOutput) 323 } 324 325 func init() { 326 pulumi.RegisterInputType(reflect.TypeOf((*RouteResponseInput)(nil)).Elem(), &RouteResponse{}) 327 pulumi.RegisterInputType(reflect.TypeOf((*RouteResponseArrayInput)(nil)).Elem(), RouteResponseArray{}) 328 pulumi.RegisterInputType(reflect.TypeOf((*RouteResponseMapInput)(nil)).Elem(), RouteResponseMap{}) 329 pulumi.RegisterOutputType(RouteResponseOutput{}) 330 pulumi.RegisterOutputType(RouteResponseArrayOutput{}) 331 pulumi.RegisterOutputType(RouteResponseMapOutput{}) 332 }