github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/apigateway/restApiPolicy.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 apigateway 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 // Provides an API Gateway REST API Policy. 16 // 17 // > **Note:** Amazon API Gateway Version 1 resources are used for creating and deploying REST APIs. To create and deploy WebSocket and HTTP APIs, use Amazon API Gateway Version 2 resources. 18 // 19 // ## Example Usage 20 // 21 // ### Basic 22 // 23 // <!--Start PulumiCodeChooser --> 24 // ```go 25 // package main 26 // 27 // import ( 28 // 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/apigateway" 30 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/iam" 31 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 32 // 33 // ) 34 // 35 // func main() { 36 // pulumi.Run(func(ctx *pulumi.Context) error { 37 // testRestApi, err := apigateway.NewRestApi(ctx, "test", &apigateway.RestApiArgs{ 38 // Name: pulumi.String("example-rest-api"), 39 // }) 40 // if err != nil { 41 // return err 42 // } 43 // test := iam.GetPolicyDocumentOutput(ctx, iam.GetPolicyDocumentOutputArgs{ 44 // Statements: iam.GetPolicyDocumentStatementArray{ 45 // &iam.GetPolicyDocumentStatementArgs{ 46 // Effect: pulumi.String("Allow"), 47 // Principals: iam.GetPolicyDocumentStatementPrincipalArray{ 48 // &iam.GetPolicyDocumentStatementPrincipalArgs{ 49 // Type: pulumi.String("AWS"), 50 // Identifiers: pulumi.StringArray{ 51 // pulumi.String("*"), 52 // }, 53 // }, 54 // }, 55 // Actions: pulumi.StringArray{ 56 // pulumi.String("execute-api:Invoke"), 57 // }, 58 // Resources: pulumi.StringArray{ 59 // testRestApi.ExecutionArn, 60 // }, 61 // Conditions: iam.GetPolicyDocumentStatementConditionArray{ 62 // &iam.GetPolicyDocumentStatementConditionArgs{ 63 // Test: pulumi.String("IpAddress"), 64 // Variable: pulumi.String("aws:SourceIp"), 65 // Values: pulumi.StringArray{ 66 // pulumi.String("123.123.123.123/32"), 67 // }, 68 // }, 69 // }, 70 // }, 71 // }, 72 // }, nil) 73 // _, err = apigateway.NewRestApiPolicy(ctx, "test", &apigateway.RestApiPolicyArgs{ 74 // RestApiId: testRestApi.ID(), 75 // Policy: test.ApplyT(func(test iam.GetPolicyDocumentResult) (*string, error) { 76 // return &test.Json, nil 77 // }).(pulumi.StringPtrOutput), 78 // }) 79 // if err != nil { 80 // return err 81 // } 82 // return nil 83 // }) 84 // } 85 // 86 // ``` 87 // <!--End PulumiCodeChooser --> 88 // 89 // ## Import 90 // 91 // Using `pulumi import`, import `aws_api_gateway_rest_api_policy` using the REST API ID. For example: 92 // 93 // ```sh 94 // $ pulumi import aws:apigateway/restApiPolicy:RestApiPolicy example 12345abcde 95 // ``` 96 type RestApiPolicy struct { 97 pulumi.CustomResourceState 98 99 // JSON formatted policy document that controls access to the API Gateway. 100 Policy pulumi.StringOutput `pulumi:"policy"` 101 // ID of the REST API. 102 RestApiId pulumi.StringOutput `pulumi:"restApiId"` 103 } 104 105 // NewRestApiPolicy registers a new resource with the given unique name, arguments, and options. 106 func NewRestApiPolicy(ctx *pulumi.Context, 107 name string, args *RestApiPolicyArgs, opts ...pulumi.ResourceOption) (*RestApiPolicy, error) { 108 if args == nil { 109 return nil, errors.New("missing one or more required arguments") 110 } 111 112 if args.Policy == nil { 113 return nil, errors.New("invalid value for required argument 'Policy'") 114 } 115 if args.RestApiId == nil { 116 return nil, errors.New("invalid value for required argument 'RestApiId'") 117 } 118 opts = internal.PkgResourceDefaultOpts(opts) 119 var resource RestApiPolicy 120 err := ctx.RegisterResource("aws:apigateway/restApiPolicy:RestApiPolicy", name, args, &resource, opts...) 121 if err != nil { 122 return nil, err 123 } 124 return &resource, nil 125 } 126 127 // GetRestApiPolicy gets an existing RestApiPolicy resource's state with the given name, ID, and optional 128 // state properties that are used to uniquely qualify the lookup (nil if not required). 129 func GetRestApiPolicy(ctx *pulumi.Context, 130 name string, id pulumi.IDInput, state *RestApiPolicyState, opts ...pulumi.ResourceOption) (*RestApiPolicy, error) { 131 var resource RestApiPolicy 132 err := ctx.ReadResource("aws:apigateway/restApiPolicy:RestApiPolicy", name, id, state, &resource, opts...) 133 if err != nil { 134 return nil, err 135 } 136 return &resource, nil 137 } 138 139 // Input properties used for looking up and filtering RestApiPolicy resources. 140 type restApiPolicyState struct { 141 // JSON formatted policy document that controls access to the API Gateway. 142 Policy *string `pulumi:"policy"` 143 // ID of the REST API. 144 RestApiId *string `pulumi:"restApiId"` 145 } 146 147 type RestApiPolicyState struct { 148 // JSON formatted policy document that controls access to the API Gateway. 149 Policy pulumi.StringPtrInput 150 // ID of the REST API. 151 RestApiId pulumi.StringPtrInput 152 } 153 154 func (RestApiPolicyState) ElementType() reflect.Type { 155 return reflect.TypeOf((*restApiPolicyState)(nil)).Elem() 156 } 157 158 type restApiPolicyArgs struct { 159 // JSON formatted policy document that controls access to the API Gateway. 160 Policy string `pulumi:"policy"` 161 // ID of the REST API. 162 RestApiId string `pulumi:"restApiId"` 163 } 164 165 // The set of arguments for constructing a RestApiPolicy resource. 166 type RestApiPolicyArgs struct { 167 // JSON formatted policy document that controls access to the API Gateway. 168 Policy pulumi.StringInput 169 // ID of the REST API. 170 RestApiId pulumi.StringInput 171 } 172 173 func (RestApiPolicyArgs) ElementType() reflect.Type { 174 return reflect.TypeOf((*restApiPolicyArgs)(nil)).Elem() 175 } 176 177 type RestApiPolicyInput interface { 178 pulumi.Input 179 180 ToRestApiPolicyOutput() RestApiPolicyOutput 181 ToRestApiPolicyOutputWithContext(ctx context.Context) RestApiPolicyOutput 182 } 183 184 func (*RestApiPolicy) ElementType() reflect.Type { 185 return reflect.TypeOf((**RestApiPolicy)(nil)).Elem() 186 } 187 188 func (i *RestApiPolicy) ToRestApiPolicyOutput() RestApiPolicyOutput { 189 return i.ToRestApiPolicyOutputWithContext(context.Background()) 190 } 191 192 func (i *RestApiPolicy) ToRestApiPolicyOutputWithContext(ctx context.Context) RestApiPolicyOutput { 193 return pulumi.ToOutputWithContext(ctx, i).(RestApiPolicyOutput) 194 } 195 196 // RestApiPolicyArrayInput is an input type that accepts RestApiPolicyArray and RestApiPolicyArrayOutput values. 197 // You can construct a concrete instance of `RestApiPolicyArrayInput` via: 198 // 199 // RestApiPolicyArray{ RestApiPolicyArgs{...} } 200 type RestApiPolicyArrayInput interface { 201 pulumi.Input 202 203 ToRestApiPolicyArrayOutput() RestApiPolicyArrayOutput 204 ToRestApiPolicyArrayOutputWithContext(context.Context) RestApiPolicyArrayOutput 205 } 206 207 type RestApiPolicyArray []RestApiPolicyInput 208 209 func (RestApiPolicyArray) ElementType() reflect.Type { 210 return reflect.TypeOf((*[]*RestApiPolicy)(nil)).Elem() 211 } 212 213 func (i RestApiPolicyArray) ToRestApiPolicyArrayOutput() RestApiPolicyArrayOutput { 214 return i.ToRestApiPolicyArrayOutputWithContext(context.Background()) 215 } 216 217 func (i RestApiPolicyArray) ToRestApiPolicyArrayOutputWithContext(ctx context.Context) RestApiPolicyArrayOutput { 218 return pulumi.ToOutputWithContext(ctx, i).(RestApiPolicyArrayOutput) 219 } 220 221 // RestApiPolicyMapInput is an input type that accepts RestApiPolicyMap and RestApiPolicyMapOutput values. 222 // You can construct a concrete instance of `RestApiPolicyMapInput` via: 223 // 224 // RestApiPolicyMap{ "key": RestApiPolicyArgs{...} } 225 type RestApiPolicyMapInput interface { 226 pulumi.Input 227 228 ToRestApiPolicyMapOutput() RestApiPolicyMapOutput 229 ToRestApiPolicyMapOutputWithContext(context.Context) RestApiPolicyMapOutput 230 } 231 232 type RestApiPolicyMap map[string]RestApiPolicyInput 233 234 func (RestApiPolicyMap) ElementType() reflect.Type { 235 return reflect.TypeOf((*map[string]*RestApiPolicy)(nil)).Elem() 236 } 237 238 func (i RestApiPolicyMap) ToRestApiPolicyMapOutput() RestApiPolicyMapOutput { 239 return i.ToRestApiPolicyMapOutputWithContext(context.Background()) 240 } 241 242 func (i RestApiPolicyMap) ToRestApiPolicyMapOutputWithContext(ctx context.Context) RestApiPolicyMapOutput { 243 return pulumi.ToOutputWithContext(ctx, i).(RestApiPolicyMapOutput) 244 } 245 246 type RestApiPolicyOutput struct{ *pulumi.OutputState } 247 248 func (RestApiPolicyOutput) ElementType() reflect.Type { 249 return reflect.TypeOf((**RestApiPolicy)(nil)).Elem() 250 } 251 252 func (o RestApiPolicyOutput) ToRestApiPolicyOutput() RestApiPolicyOutput { 253 return o 254 } 255 256 func (o RestApiPolicyOutput) ToRestApiPolicyOutputWithContext(ctx context.Context) RestApiPolicyOutput { 257 return o 258 } 259 260 // JSON formatted policy document that controls access to the API Gateway. 261 func (o RestApiPolicyOutput) Policy() pulumi.StringOutput { 262 return o.ApplyT(func(v *RestApiPolicy) pulumi.StringOutput { return v.Policy }).(pulumi.StringOutput) 263 } 264 265 // ID of the REST API. 266 func (o RestApiPolicyOutput) RestApiId() pulumi.StringOutput { 267 return o.ApplyT(func(v *RestApiPolicy) pulumi.StringOutput { return v.RestApiId }).(pulumi.StringOutput) 268 } 269 270 type RestApiPolicyArrayOutput struct{ *pulumi.OutputState } 271 272 func (RestApiPolicyArrayOutput) ElementType() reflect.Type { 273 return reflect.TypeOf((*[]*RestApiPolicy)(nil)).Elem() 274 } 275 276 func (o RestApiPolicyArrayOutput) ToRestApiPolicyArrayOutput() RestApiPolicyArrayOutput { 277 return o 278 } 279 280 func (o RestApiPolicyArrayOutput) ToRestApiPolicyArrayOutputWithContext(ctx context.Context) RestApiPolicyArrayOutput { 281 return o 282 } 283 284 func (o RestApiPolicyArrayOutput) Index(i pulumi.IntInput) RestApiPolicyOutput { 285 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *RestApiPolicy { 286 return vs[0].([]*RestApiPolicy)[vs[1].(int)] 287 }).(RestApiPolicyOutput) 288 } 289 290 type RestApiPolicyMapOutput struct{ *pulumi.OutputState } 291 292 func (RestApiPolicyMapOutput) ElementType() reflect.Type { 293 return reflect.TypeOf((*map[string]*RestApiPolicy)(nil)).Elem() 294 } 295 296 func (o RestApiPolicyMapOutput) ToRestApiPolicyMapOutput() RestApiPolicyMapOutput { 297 return o 298 } 299 300 func (o RestApiPolicyMapOutput) ToRestApiPolicyMapOutputWithContext(ctx context.Context) RestApiPolicyMapOutput { 301 return o 302 } 303 304 func (o RestApiPolicyMapOutput) MapIndex(k pulumi.StringInput) RestApiPolicyOutput { 305 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *RestApiPolicy { 306 return vs[0].(map[string]*RestApiPolicy)[vs[1].(string)] 307 }).(RestApiPolicyOutput) 308 } 309 310 func init() { 311 pulumi.RegisterInputType(reflect.TypeOf((*RestApiPolicyInput)(nil)).Elem(), &RestApiPolicy{}) 312 pulumi.RegisterInputType(reflect.TypeOf((*RestApiPolicyArrayInput)(nil)).Elem(), RestApiPolicyArray{}) 313 pulumi.RegisterInputType(reflect.TypeOf((*RestApiPolicyMapInput)(nil)).Elem(), RestApiPolicyMap{}) 314 pulumi.RegisterOutputType(RestApiPolicyOutput{}) 315 pulumi.RegisterOutputType(RestApiPolicyArrayOutput{}) 316 pulumi.RegisterOutputType(RestApiPolicyMapOutput{}) 317 }