github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/signer/signingProfilePermission.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 signer 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 // Creates a Signer Signing Profile Permission. That is, a cross-account permission for a signing profile. 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/signer" 26 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 27 // 28 // ) 29 // 30 // func main() { 31 // pulumi.Run(func(ctx *pulumi.Context) error { 32 // prodSp, err := signer.NewSigningProfile(ctx, "prod_sp", &signer.SigningProfileArgs{ 33 // PlatformId: pulumi.String("AWSLambda-SHA384-ECDSA"), 34 // NamePrefix: pulumi.String("prod_sp_"), 35 // SignatureValidityPeriod: &signer.SigningProfileSignatureValidityPeriodArgs{ 36 // Value: pulumi.Int(5), 37 // Type: pulumi.String("YEARS"), 38 // }, 39 // Tags: pulumi.StringMap{ 40 // "tag1": pulumi.String("value1"), 41 // "tag2": pulumi.String("value2"), 42 // }, 43 // }) 44 // if err != nil { 45 // return err 46 // } 47 // _, err = signer.NewSigningProfilePermission(ctx, "sp_permission_1", &signer.SigningProfilePermissionArgs{ 48 // ProfileName: prodSp.Name, 49 // Action: pulumi.String("signer:StartSigningJob"), 50 // Principal: pulumi.Any(awsAccount), 51 // }) 52 // if err != nil { 53 // return err 54 // } 55 // _, err = signer.NewSigningProfilePermission(ctx, "sp_permission_2", &signer.SigningProfilePermissionArgs{ 56 // ProfileName: prodSp.Name, 57 // Action: pulumi.String("signer:GetSigningProfile"), 58 // Principal: pulumi.Any(awsTeamRoleArn), 59 // StatementId: pulumi.String("ProdAccountStartSigningJob_StatementId"), 60 // }) 61 // if err != nil { 62 // return err 63 // } 64 // _, err = signer.NewSigningProfilePermission(ctx, "sp_permission_3", &signer.SigningProfilePermissionArgs{ 65 // ProfileName: prodSp.Name, 66 // Action: pulumi.String("signer:RevokeSignature"), 67 // Principal: pulumi.String("123456789012"), 68 // ProfileVersion: prodSp.Version, 69 // StatementIdPrefix: pulumi.String("version-permission-"), 70 // }) 71 // if err != nil { 72 // return err 73 // } 74 // return nil 75 // }) 76 // } 77 // 78 // ``` 79 // <!--End PulumiCodeChooser --> 80 // 81 // ## Import 82 // 83 // Using `pulumi import`, import Signer signing profile permission statements using profile_name/statement_id. For example: 84 // 85 // ```sh 86 // $ pulumi import aws:signer/signingProfilePermission:SigningProfilePermission test_signer_signing_profile_permission prod_profile_DdW3Mk1foYL88fajut4mTVFGpuwfd4ACO6ANL0D1uIj7lrn8adK/ProdAccountStartSigningJobStatementId 87 // ``` 88 type SigningProfilePermission struct { 89 pulumi.CustomResourceState 90 91 // An AWS Signer action permitted as part of cross-account permissions. Valid values: `signer:StartSigningJob`, `signer:GetSigningProfile`, `signer:RevokeSignature`, or `signer:SignPayload`. 92 Action pulumi.StringOutput `pulumi:"action"` 93 // The AWS principal to be granted a cross-account permission. 94 Principal pulumi.StringOutput `pulumi:"principal"` 95 // Name of the signing profile to add the cross-account permissions. 96 ProfileName pulumi.StringOutput `pulumi:"profileName"` 97 // The signing profile version that a permission applies to. 98 ProfileVersion pulumi.StringOutput `pulumi:"profileVersion"` 99 // A unique statement identifier. By default generated by the provider. 100 StatementId pulumi.StringOutput `pulumi:"statementId"` 101 // A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statementId`. 102 StatementIdPrefix pulumi.StringOutput `pulumi:"statementIdPrefix"` 103 } 104 105 // NewSigningProfilePermission registers a new resource with the given unique name, arguments, and options. 106 func NewSigningProfilePermission(ctx *pulumi.Context, 107 name string, args *SigningProfilePermissionArgs, opts ...pulumi.ResourceOption) (*SigningProfilePermission, error) { 108 if args == nil { 109 return nil, errors.New("missing one or more required arguments") 110 } 111 112 if args.Action == nil { 113 return nil, errors.New("invalid value for required argument 'Action'") 114 } 115 if args.Principal == nil { 116 return nil, errors.New("invalid value for required argument 'Principal'") 117 } 118 if args.ProfileName == nil { 119 return nil, errors.New("invalid value for required argument 'ProfileName'") 120 } 121 opts = internal.PkgResourceDefaultOpts(opts) 122 var resource SigningProfilePermission 123 err := ctx.RegisterResource("aws:signer/signingProfilePermission:SigningProfilePermission", name, args, &resource, opts...) 124 if err != nil { 125 return nil, err 126 } 127 return &resource, nil 128 } 129 130 // GetSigningProfilePermission gets an existing SigningProfilePermission resource's state with the given name, ID, and optional 131 // state properties that are used to uniquely qualify the lookup (nil if not required). 132 func GetSigningProfilePermission(ctx *pulumi.Context, 133 name string, id pulumi.IDInput, state *SigningProfilePermissionState, opts ...pulumi.ResourceOption) (*SigningProfilePermission, error) { 134 var resource SigningProfilePermission 135 err := ctx.ReadResource("aws:signer/signingProfilePermission:SigningProfilePermission", name, id, state, &resource, opts...) 136 if err != nil { 137 return nil, err 138 } 139 return &resource, nil 140 } 141 142 // Input properties used for looking up and filtering SigningProfilePermission resources. 143 type signingProfilePermissionState struct { 144 // An AWS Signer action permitted as part of cross-account permissions. Valid values: `signer:StartSigningJob`, `signer:GetSigningProfile`, `signer:RevokeSignature`, or `signer:SignPayload`. 145 Action *string `pulumi:"action"` 146 // The AWS principal to be granted a cross-account permission. 147 Principal *string `pulumi:"principal"` 148 // Name of the signing profile to add the cross-account permissions. 149 ProfileName *string `pulumi:"profileName"` 150 // The signing profile version that a permission applies to. 151 ProfileVersion *string `pulumi:"profileVersion"` 152 // A unique statement identifier. By default generated by the provider. 153 StatementId *string `pulumi:"statementId"` 154 // A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statementId`. 155 StatementIdPrefix *string `pulumi:"statementIdPrefix"` 156 } 157 158 type SigningProfilePermissionState struct { 159 // An AWS Signer action permitted as part of cross-account permissions. Valid values: `signer:StartSigningJob`, `signer:GetSigningProfile`, `signer:RevokeSignature`, or `signer:SignPayload`. 160 Action pulumi.StringPtrInput 161 // The AWS principal to be granted a cross-account permission. 162 Principal pulumi.StringPtrInput 163 // Name of the signing profile to add the cross-account permissions. 164 ProfileName pulumi.StringPtrInput 165 // The signing profile version that a permission applies to. 166 ProfileVersion pulumi.StringPtrInput 167 // A unique statement identifier. By default generated by the provider. 168 StatementId pulumi.StringPtrInput 169 // A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statementId`. 170 StatementIdPrefix pulumi.StringPtrInput 171 } 172 173 func (SigningProfilePermissionState) ElementType() reflect.Type { 174 return reflect.TypeOf((*signingProfilePermissionState)(nil)).Elem() 175 } 176 177 type signingProfilePermissionArgs struct { 178 // An AWS Signer action permitted as part of cross-account permissions. Valid values: `signer:StartSigningJob`, `signer:GetSigningProfile`, `signer:RevokeSignature`, or `signer:SignPayload`. 179 Action string `pulumi:"action"` 180 // The AWS principal to be granted a cross-account permission. 181 Principal string `pulumi:"principal"` 182 // Name of the signing profile to add the cross-account permissions. 183 ProfileName string `pulumi:"profileName"` 184 // The signing profile version that a permission applies to. 185 ProfileVersion *string `pulumi:"profileVersion"` 186 // A unique statement identifier. By default generated by the provider. 187 StatementId *string `pulumi:"statementId"` 188 // A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statementId`. 189 StatementIdPrefix *string `pulumi:"statementIdPrefix"` 190 } 191 192 // The set of arguments for constructing a SigningProfilePermission resource. 193 type SigningProfilePermissionArgs struct { 194 // An AWS Signer action permitted as part of cross-account permissions. Valid values: `signer:StartSigningJob`, `signer:GetSigningProfile`, `signer:RevokeSignature`, or `signer:SignPayload`. 195 Action pulumi.StringInput 196 // The AWS principal to be granted a cross-account permission. 197 Principal pulumi.StringInput 198 // Name of the signing profile to add the cross-account permissions. 199 ProfileName pulumi.StringInput 200 // The signing profile version that a permission applies to. 201 ProfileVersion pulumi.StringPtrInput 202 // A unique statement identifier. By default generated by the provider. 203 StatementId pulumi.StringPtrInput 204 // A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statementId`. 205 StatementIdPrefix pulumi.StringPtrInput 206 } 207 208 func (SigningProfilePermissionArgs) ElementType() reflect.Type { 209 return reflect.TypeOf((*signingProfilePermissionArgs)(nil)).Elem() 210 } 211 212 type SigningProfilePermissionInput interface { 213 pulumi.Input 214 215 ToSigningProfilePermissionOutput() SigningProfilePermissionOutput 216 ToSigningProfilePermissionOutputWithContext(ctx context.Context) SigningProfilePermissionOutput 217 } 218 219 func (*SigningProfilePermission) ElementType() reflect.Type { 220 return reflect.TypeOf((**SigningProfilePermission)(nil)).Elem() 221 } 222 223 func (i *SigningProfilePermission) ToSigningProfilePermissionOutput() SigningProfilePermissionOutput { 224 return i.ToSigningProfilePermissionOutputWithContext(context.Background()) 225 } 226 227 func (i *SigningProfilePermission) ToSigningProfilePermissionOutputWithContext(ctx context.Context) SigningProfilePermissionOutput { 228 return pulumi.ToOutputWithContext(ctx, i).(SigningProfilePermissionOutput) 229 } 230 231 // SigningProfilePermissionArrayInput is an input type that accepts SigningProfilePermissionArray and SigningProfilePermissionArrayOutput values. 232 // You can construct a concrete instance of `SigningProfilePermissionArrayInput` via: 233 // 234 // SigningProfilePermissionArray{ SigningProfilePermissionArgs{...} } 235 type SigningProfilePermissionArrayInput interface { 236 pulumi.Input 237 238 ToSigningProfilePermissionArrayOutput() SigningProfilePermissionArrayOutput 239 ToSigningProfilePermissionArrayOutputWithContext(context.Context) SigningProfilePermissionArrayOutput 240 } 241 242 type SigningProfilePermissionArray []SigningProfilePermissionInput 243 244 func (SigningProfilePermissionArray) ElementType() reflect.Type { 245 return reflect.TypeOf((*[]*SigningProfilePermission)(nil)).Elem() 246 } 247 248 func (i SigningProfilePermissionArray) ToSigningProfilePermissionArrayOutput() SigningProfilePermissionArrayOutput { 249 return i.ToSigningProfilePermissionArrayOutputWithContext(context.Background()) 250 } 251 252 func (i SigningProfilePermissionArray) ToSigningProfilePermissionArrayOutputWithContext(ctx context.Context) SigningProfilePermissionArrayOutput { 253 return pulumi.ToOutputWithContext(ctx, i).(SigningProfilePermissionArrayOutput) 254 } 255 256 // SigningProfilePermissionMapInput is an input type that accepts SigningProfilePermissionMap and SigningProfilePermissionMapOutput values. 257 // You can construct a concrete instance of `SigningProfilePermissionMapInput` via: 258 // 259 // SigningProfilePermissionMap{ "key": SigningProfilePermissionArgs{...} } 260 type SigningProfilePermissionMapInput interface { 261 pulumi.Input 262 263 ToSigningProfilePermissionMapOutput() SigningProfilePermissionMapOutput 264 ToSigningProfilePermissionMapOutputWithContext(context.Context) SigningProfilePermissionMapOutput 265 } 266 267 type SigningProfilePermissionMap map[string]SigningProfilePermissionInput 268 269 func (SigningProfilePermissionMap) ElementType() reflect.Type { 270 return reflect.TypeOf((*map[string]*SigningProfilePermission)(nil)).Elem() 271 } 272 273 func (i SigningProfilePermissionMap) ToSigningProfilePermissionMapOutput() SigningProfilePermissionMapOutput { 274 return i.ToSigningProfilePermissionMapOutputWithContext(context.Background()) 275 } 276 277 func (i SigningProfilePermissionMap) ToSigningProfilePermissionMapOutputWithContext(ctx context.Context) SigningProfilePermissionMapOutput { 278 return pulumi.ToOutputWithContext(ctx, i).(SigningProfilePermissionMapOutput) 279 } 280 281 type SigningProfilePermissionOutput struct{ *pulumi.OutputState } 282 283 func (SigningProfilePermissionOutput) ElementType() reflect.Type { 284 return reflect.TypeOf((**SigningProfilePermission)(nil)).Elem() 285 } 286 287 func (o SigningProfilePermissionOutput) ToSigningProfilePermissionOutput() SigningProfilePermissionOutput { 288 return o 289 } 290 291 func (o SigningProfilePermissionOutput) ToSigningProfilePermissionOutputWithContext(ctx context.Context) SigningProfilePermissionOutput { 292 return o 293 } 294 295 // An AWS Signer action permitted as part of cross-account permissions. Valid values: `signer:StartSigningJob`, `signer:GetSigningProfile`, `signer:RevokeSignature`, or `signer:SignPayload`. 296 func (o SigningProfilePermissionOutput) Action() pulumi.StringOutput { 297 return o.ApplyT(func(v *SigningProfilePermission) pulumi.StringOutput { return v.Action }).(pulumi.StringOutput) 298 } 299 300 // The AWS principal to be granted a cross-account permission. 301 func (o SigningProfilePermissionOutput) Principal() pulumi.StringOutput { 302 return o.ApplyT(func(v *SigningProfilePermission) pulumi.StringOutput { return v.Principal }).(pulumi.StringOutput) 303 } 304 305 // Name of the signing profile to add the cross-account permissions. 306 func (o SigningProfilePermissionOutput) ProfileName() pulumi.StringOutput { 307 return o.ApplyT(func(v *SigningProfilePermission) pulumi.StringOutput { return v.ProfileName }).(pulumi.StringOutput) 308 } 309 310 // The signing profile version that a permission applies to. 311 func (o SigningProfilePermissionOutput) ProfileVersion() pulumi.StringOutput { 312 return o.ApplyT(func(v *SigningProfilePermission) pulumi.StringOutput { return v.ProfileVersion }).(pulumi.StringOutput) 313 } 314 315 // A unique statement identifier. By default generated by the provider. 316 func (o SigningProfilePermissionOutput) StatementId() pulumi.StringOutput { 317 return o.ApplyT(func(v *SigningProfilePermission) pulumi.StringOutput { return v.StatementId }).(pulumi.StringOutput) 318 } 319 320 // A statement identifier prefix. The provider will generate a unique suffix. Conflicts with `statementId`. 321 func (o SigningProfilePermissionOutput) StatementIdPrefix() pulumi.StringOutput { 322 return o.ApplyT(func(v *SigningProfilePermission) pulumi.StringOutput { return v.StatementIdPrefix }).(pulumi.StringOutput) 323 } 324 325 type SigningProfilePermissionArrayOutput struct{ *pulumi.OutputState } 326 327 func (SigningProfilePermissionArrayOutput) ElementType() reflect.Type { 328 return reflect.TypeOf((*[]*SigningProfilePermission)(nil)).Elem() 329 } 330 331 func (o SigningProfilePermissionArrayOutput) ToSigningProfilePermissionArrayOutput() SigningProfilePermissionArrayOutput { 332 return o 333 } 334 335 func (o SigningProfilePermissionArrayOutput) ToSigningProfilePermissionArrayOutputWithContext(ctx context.Context) SigningProfilePermissionArrayOutput { 336 return o 337 } 338 339 func (o SigningProfilePermissionArrayOutput) Index(i pulumi.IntInput) SigningProfilePermissionOutput { 340 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *SigningProfilePermission { 341 return vs[0].([]*SigningProfilePermission)[vs[1].(int)] 342 }).(SigningProfilePermissionOutput) 343 } 344 345 type SigningProfilePermissionMapOutput struct{ *pulumi.OutputState } 346 347 func (SigningProfilePermissionMapOutput) ElementType() reflect.Type { 348 return reflect.TypeOf((*map[string]*SigningProfilePermission)(nil)).Elem() 349 } 350 351 func (o SigningProfilePermissionMapOutput) ToSigningProfilePermissionMapOutput() SigningProfilePermissionMapOutput { 352 return o 353 } 354 355 func (o SigningProfilePermissionMapOutput) ToSigningProfilePermissionMapOutputWithContext(ctx context.Context) SigningProfilePermissionMapOutput { 356 return o 357 } 358 359 func (o SigningProfilePermissionMapOutput) MapIndex(k pulumi.StringInput) SigningProfilePermissionOutput { 360 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *SigningProfilePermission { 361 return vs[0].(map[string]*SigningProfilePermission)[vs[1].(string)] 362 }).(SigningProfilePermissionOutput) 363 } 364 365 func init() { 366 pulumi.RegisterInputType(reflect.TypeOf((*SigningProfilePermissionInput)(nil)).Elem(), &SigningProfilePermission{}) 367 pulumi.RegisterInputType(reflect.TypeOf((*SigningProfilePermissionArrayInput)(nil)).Elem(), SigningProfilePermissionArray{}) 368 pulumi.RegisterInputType(reflect.TypeOf((*SigningProfilePermissionMapInput)(nil)).Elem(), SigningProfilePermissionMap{}) 369 pulumi.RegisterOutputType(SigningProfilePermissionOutput{}) 370 pulumi.RegisterOutputType(SigningProfilePermissionArrayOutput{}) 371 pulumi.RegisterOutputType(SigningProfilePermissionMapOutput{}) 372 }