1
1
package s3control
2
2
3
3
import (
4
- "fmt "
4
+ "context "
5
5
"log"
6
6
7
7
"github.com/aws/aws-sdk-go/aws"
8
8
"github.com/aws/aws-sdk-go/service/s3control"
9
9
"github.com/hashicorp/aws-sdk-go-base/v2/awsv1shim/v2/tfawserr"
10
+ "github.com/hashicorp/terraform-plugin-sdk/v2/diag"
10
11
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/resource"
11
12
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/schema"
12
13
"github.com/hashicorp/terraform-plugin-sdk/v2/helper/structure"
@@ -22,10 +23,10 @@ func init() {
22
23
23
24
func resourceObjectLambdaAccessPointPolicy () * schema.Resource {
24
25
return & schema.Resource {
25
- Create : resourceObjectLambdaAccessPointPolicyCreate ,
26
- Read : resourceObjectLambdaAccessPointPolicyRead ,
27
- Update : resourceObjectLambdaAccessPointPolicyUpdate ,
28
- Delete : resourceObjectLambdaAccessPointPolicyDelete ,
26
+ CreateWithoutTimeout : resourceObjectLambdaAccessPointPolicyCreate ,
27
+ ReadWithoutTimeout : resourceObjectLambdaAccessPointPolicyRead ,
28
+ UpdateWithoutTimeout : resourceObjectLambdaAccessPointPolicyUpdate ,
29
+ DeleteWithoutTimeout : resourceObjectLambdaAccessPointPolicyDelete ,
29
30
30
31
Importer : & schema.ResourceImporter {
31
32
State : schema .ImportStatePassthrough ,
@@ -62,7 +63,7 @@ func resourceObjectLambdaAccessPointPolicy() *schema.Resource {
62
63
}
63
64
}
64
65
65
- func resourceObjectLambdaAccessPointPolicyCreate (d * schema.ResourceData , meta interface {}) error {
66
+ func resourceObjectLambdaAccessPointPolicyCreate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
66
67
conn := meta .(* conns.AWSClient ).S3ControlConn ()
67
68
68
69
accountID := meta .(* conns.AWSClient ).AccountID
@@ -75,7 +76,7 @@ func resourceObjectLambdaAccessPointPolicyCreate(d *schema.ResourceData, meta in
75
76
policy , err := structure .NormalizeJsonString (d .Get ("policy" ).(string ))
76
77
77
78
if err != nil {
78
- return fmt .Errorf ("policy (%s) is invalid JSON: %w " , d .Get ("policy" ).(string ), err )
79
+ return diag .Errorf ("policy (%s) is invalid JSON: %s " , d .Get ("policy" ).(string ), err )
79
80
}
80
81
81
82
input := & s3control.PutAccessPointPolicyForObjectLambdaInput {
@@ -84,28 +85,27 @@ func resourceObjectLambdaAccessPointPolicyCreate(d *schema.ResourceData, meta in
84
85
Policy : aws .String (policy ),
85
86
}
86
87
87
- log .Printf ("[DEBUG] Creating S3 Object Lambda Access Point Policy: %s" , input )
88
- _ , err = conn .PutAccessPointPolicyForObjectLambda (input )
88
+ _ , err = conn .PutAccessPointPolicyForObjectLambdaWithContext (ctx , input )
89
89
90
90
if err != nil {
91
- return fmt .Errorf ("error creating S3 Object Lambda Access Point (%s) Policy: %w " , resourceID , err )
91
+ return diag .Errorf ("creating S3 Object Lambda Access Point (%s) Policy: %s " , resourceID , err )
92
92
}
93
93
94
94
d .SetId (resourceID )
95
95
96
- return resourceObjectLambdaAccessPointPolicyRead (d , meta )
96
+ return resourceObjectLambdaAccessPointPolicyRead (ctx , d , meta )
97
97
}
98
98
99
- func resourceObjectLambdaAccessPointPolicyRead (d * schema.ResourceData , meta interface {}) error {
99
+ func resourceObjectLambdaAccessPointPolicyRead (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
100
100
conn := meta .(* conns.AWSClient ).S3ControlConn ()
101
101
102
102
accountID , name , err := ObjectLambdaAccessPointParseResourceID (d .Id ())
103
103
104
104
if err != nil {
105
- return err
105
+ return diag . FromErr ( err )
106
106
}
107
107
108
- policy , status , err := FindObjectLambdaAccessPointPolicyAndStatusByAccountIDAndName ( conn , accountID , name )
108
+ policy , status , err := FindObjectLambdaAccessPointPolicyAndStatusByTwoPartKey ( ctx , conn , accountID , name )
109
109
110
110
if ! d .IsNewResource () && tfresource .NotFound (err ) {
111
111
log .Printf ("[WARN] S3 Object Lambda Access Point Policy (%s) not found, removing from state" , d .Id ())
@@ -114,7 +114,7 @@ func resourceObjectLambdaAccessPointPolicyRead(d *schema.ResourceData, meta inte
114
114
}
115
115
116
116
if err != nil {
117
- return fmt .Errorf ("error reading S3 Object Lambda Access Point Policy (%s): %w " , d .Id (), err )
117
+ return diag .Errorf ("reading S3 Object Lambda Access Point Policy (%s): %s " , d .Id (), err )
118
118
}
119
119
120
120
d .Set ("account_id" , accountID )
@@ -125,7 +125,7 @@ func resourceObjectLambdaAccessPointPolicyRead(d *schema.ResourceData, meta inte
125
125
policyToSet , err := verify .PolicyToSet (d .Get ("policy" ).(string ), policy )
126
126
127
127
if err != nil {
128
- return err
128
+ return diag . FromErr ( err )
129
129
}
130
130
131
131
d .Set ("policy" , policyToSet )
@@ -136,19 +136,19 @@ func resourceObjectLambdaAccessPointPolicyRead(d *schema.ResourceData, meta inte
136
136
return nil
137
137
}
138
138
139
- func resourceObjectLambdaAccessPointPolicyUpdate (d * schema.ResourceData , meta interface {}) error {
139
+ func resourceObjectLambdaAccessPointPolicyUpdate (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
140
140
conn := meta .(* conns.AWSClient ).S3ControlConn ()
141
141
142
142
accountID , name , err := ObjectLambdaAccessPointParseResourceID (d .Id ())
143
143
144
144
if err != nil {
145
- return err
145
+ return diag . FromErr ( err )
146
146
}
147
147
148
148
policy , err := structure .NormalizeJsonString (d .Get ("policy" ).(string ))
149
149
150
150
if err != nil {
151
- return fmt .Errorf ("policy (%s) is invalid JSON: %w " , d .Get ("policy" ).(string ), err )
151
+ return diag .Errorf ("policy (%s) is invalid JSON: %s " , d .Get ("policy" ).(string ), err )
152
152
}
153
153
154
154
input := & s3control.PutAccessPointPolicyForObjectLambdaInput {
@@ -157,27 +157,26 @@ func resourceObjectLambdaAccessPointPolicyUpdate(d *schema.ResourceData, meta in
157
157
Policy : aws .String (policy ),
158
158
}
159
159
160
- log .Printf ("[DEBUG] Updating S3 Object Lambda Access Point Policy: %s" , input )
161
- _ , err = conn .PutAccessPointPolicyForObjectLambda (input )
160
+ _ , err = conn .PutAccessPointPolicyForObjectLambdaWithContext (ctx , input )
162
161
163
162
if err != nil {
164
- return fmt .Errorf ("error updating S3 Object Lambda Access Point Policy (%s): %w " , d .Id (), err )
163
+ return diag .Errorf ("updating S3 Object Lambda Access Point Policy (%s): %s " , d .Id (), err )
165
164
}
166
165
167
- return resourceObjectLambdaAccessPointPolicyRead (d , meta )
166
+ return resourceObjectLambdaAccessPointPolicyRead (ctx , d , meta )
168
167
}
169
168
170
- func resourceObjectLambdaAccessPointPolicyDelete (d * schema.ResourceData , meta interface {}) error {
169
+ func resourceObjectLambdaAccessPointPolicyDelete (ctx context. Context , d * schema.ResourceData , meta interface {}) diag. Diagnostics {
171
170
conn := meta .(* conns.AWSClient ).S3ControlConn ()
172
171
173
172
accountID , name , err := ObjectLambdaAccessPointParseResourceID (d .Id ())
174
173
175
174
if err != nil {
176
- return err
175
+ return diag . FromErr ( err )
177
176
}
178
177
179
178
log .Printf ("[DEBUG] Deleting S3 Object Lambda Access Point Policy: %s" , d .Id ())
180
- _ , err = conn .DeleteAccessPointPolicyForObjectLambda ( & s3control.DeleteAccessPointPolicyForObjectLambdaInput {
179
+ _ , err = conn .DeleteAccessPointPolicyForObjectLambdaWithContext ( ctx , & s3control.DeleteAccessPointPolicyForObjectLambdaInput {
181
180
AccountId : aws .String (accountID ),
182
181
Name : aws .String (name ),
183
182
})
@@ -187,19 +186,19 @@ func resourceObjectLambdaAccessPointPolicyDelete(d *schema.ResourceData, meta in
187
186
}
188
187
189
188
if err != nil {
190
- return fmt .Errorf ("error deleting S3 Object Lambda Access Point Policy (%s): %w " , d .Id (), err )
189
+ return diag .Errorf ("deleting S3 Object Lambda Access Point Policy (%s): %s " , d .Id (), err )
191
190
}
192
191
193
192
return nil
194
193
}
195
194
196
- func FindObjectLambdaAccessPointPolicyAndStatusByAccountIDAndName ( conn * s3control.S3Control , accountID string , name string ) (string , * s3control.PolicyStatus , error ) {
195
+ func FindObjectLambdaAccessPointPolicyAndStatusByTwoPartKey ( ctx context. Context , conn * s3control.S3Control , accountID string , name string ) (string , * s3control.PolicyStatus , error ) {
197
196
input1 := & s3control.GetAccessPointPolicyForObjectLambdaInput {
198
197
AccountId : aws .String (accountID ),
199
198
Name : aws .String (name ),
200
199
}
201
200
202
- output1 , err := conn .GetAccessPointPolicyForObjectLambda ( input1 )
201
+ output1 , err := conn .GetAccessPointPolicyForObjectLambdaWithContext ( ctx , input1 )
203
202
204
203
if tfawserr .ErrCodeEquals (err , errCodeNoSuchAccessPoint , errCodeNoSuchAccessPointPolicy ) {
205
204
return "" , nil , & resource.NotFoundError {
@@ -227,7 +226,7 @@ func FindObjectLambdaAccessPointPolicyAndStatusByAccountIDAndName(conn *s3contro
227
226
Name : aws .String (name ),
228
227
}
229
228
230
- output2 , err := conn .GetAccessPointPolicyStatusForObjectLambda ( input2 )
229
+ output2 , err := conn .GetAccessPointPolicyStatusForObjectLambdaWithContext ( ctx , input2 )
231
230
232
231
if tfawserr .ErrCodeEquals (err , errCodeNoSuchAccessPoint , errCodeNoSuchAccessPointPolicy ) {
233
232
return "" , nil , & resource.NotFoundError {
0 commit comments