Skip to content

Commit b457f29

Browse files
committed
Implement response_transfer_mode for the resource
1 parent 9da37d3 commit b457f29

File tree

1 file changed

+27
-0
lines changed

1 file changed

+27
-0
lines changed

internal/service/apigateway/integration.go

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,12 @@ func resourceIntegration() *schema.Resource {
122122
Required: true,
123123
ForceNew: true,
124124
},
125+
"response_transfer_mode": {
126+
Type: schema.TypeString,
127+
Optional: true,
128+
Computed: true,
129+
ValidateDiagFunc: enum.Validate[types.ResponseTransferMode](),
130+
},
125131
"rest_api_id": {
126132
Type: schema.TypeString,
127133
Required: true,
@@ -213,6 +219,10 @@ func resourceIntegrationCreate(ctx context.Context, d *schema.ResourceData, meta
213219
input.RequestTemplates = flex.ExpandStringValueMap(v.(map[string]any))
214220
}
215221

222+
if v, ok := d.GetOk("response_transfer_mode"); ok {
223+
input.ResponseTransferMode = types.ResponseTransferMode(v.(string))
224+
}
225+
216226
if v, ok := d.GetOk("timeout_milliseconds"); ok {
217227
input.TimeoutInMillis = aws.Int32(int32(v.(int)))
218228
}
@@ -267,6 +277,11 @@ func resourceIntegrationRead(ctx context.Context, d *schema.ResourceData, meta a
267277
requestTemplates := make(map[string]string)
268278
maps.Copy(requestTemplates, integration.RequestTemplates)
269279
d.Set("request_templates", requestTemplates)
280+
if integration.ResponseTransferMode == "" {
281+
d.Set("response_transfer_mode", string(types.ResponseTransferModeBuffered))
282+
} else {
283+
d.Set("response_transfer_mode", integration.ResponseTransferMode)
284+
}
270285
d.Set("timeout_milliseconds", integration.TimeoutInMillis)
271286
d.Set(names.AttrType, integration.Type)
272287
d.Set(names.AttrURI, integration.Uri)
@@ -442,6 +457,18 @@ func resourceIntegrationUpdate(ctx context.Context, d *schema.ResourceData, meta
442457
})
443458
}
444459

460+
if d.HasChange("response_transfer_mode") {
461+
responseTransferMode := d.Get("response_transfer_mode").(string)
462+
if responseTransferMode == "" {
463+
responseTransferMode = string(types.ResponseTransferModeBuffered)
464+
}
465+
operations = append(operations, types.PatchOperation{
466+
Op: types.OpReplace,
467+
Path: aws.String("/responseTransferMode"),
468+
Value: aws.String(responseTransferMode),
469+
})
470+
}
471+
445472
if d.HasChange("timeout_milliseconds") {
446473
operations = append(operations, types.PatchOperation{
447474
Op: types.OpReplace,

0 commit comments

Comments
 (0)