github.com/pulumi/pulumi-aws/sdk/v6@v6.32.0/go/aws/route53/keySigningKey.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 route53 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 a Route 53 Key Signing Key. To manage Domain Name System Security Extensions (DNSSEC) for a Hosted Zone, see the `route53.HostedZoneDnsSec` resource. For more information about managing DNSSEC in Route 53, see the [Route 53 Developer Guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec.html). 16 // 17 // ## Example Usage 18 // 19 // <!--Start PulumiCodeChooser --> 20 // ```go 21 // package main 22 // 23 // import ( 24 // 25 // "encoding/json" 26 // "fmt" 27 // 28 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws" 29 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/kms" 30 // "github.com/pulumi/pulumi-aws/sdk/v6/go/aws/route53" 31 // "github.com/pulumi/pulumi/sdk/v3/go/pulumi" 32 // 33 // ) 34 // 35 // func main() { 36 // pulumi.Run(func(ctx *pulumi.Context) error { 37 // current, err := aws.GetCallerIdentity(ctx, nil, nil) 38 // if err != nil { 39 // return err 40 // } 41 // tmpJSON0, err := json.Marshal(map[string]interface{}{ 42 // "Statement": []interface{}{ 43 // map[string]interface{}{ 44 // "Action": []string{ 45 // "kms:DescribeKey", 46 // "kms:GetPublicKey", 47 // "kms:Sign", 48 // }, 49 // "Effect": "Allow", 50 // "Principal": map[string]interface{}{ 51 // "Service": "dnssec-route53.amazonaws.com", 52 // }, 53 // "Sid": "Allow Route 53 DNSSEC Service", 54 // "Resource": "*", 55 // "Condition": map[string]interface{}{ 56 // "StringEquals": map[string]interface{}{ 57 // "aws:SourceAccount": current.AccountId, 58 // }, 59 // "ArnLike": map[string]interface{}{ 60 // "aws:SourceArn": "arn:aws:route53:::hostedzone/*", 61 // }, 62 // }, 63 // }, 64 // map[string]interface{}{ 65 // "Action": "kms:CreateGrant", 66 // "Effect": "Allow", 67 // "Principal": map[string]interface{}{ 68 // "Service": "dnssec-route53.amazonaws.com", 69 // }, 70 // "Sid": "Allow Route 53 DNSSEC Service to CreateGrant", 71 // "Resource": "*", 72 // "Condition": map[string]interface{}{ 73 // "Bool": map[string]interface{}{ 74 // "kms:GrantIsForAWSResource": "true", 75 // }, 76 // }, 77 // }, 78 // map[string]interface{}{ 79 // "Action": "kms:*", 80 // "Effect": "Allow", 81 // "Principal": map[string]interface{}{ 82 // "AWS": fmt.Sprintf("arn:aws:iam::%v:root", current.AccountId), 83 // }, 84 // "Resource": "*", 85 // "Sid": "Enable IAM User Permissions", 86 // }, 87 // }, 88 // "Version": "2012-10-17", 89 // }) 90 // if err != nil { 91 // return err 92 // } 93 // json0 := string(tmpJSON0) 94 // _, err = kms.NewKey(ctx, "example", &kms.KeyArgs{ 95 // CustomerMasterKeySpec: pulumi.String("ECC_NIST_P256"), 96 // DeletionWindowInDays: pulumi.Int(7), 97 // KeyUsage: pulumi.String("SIGN_VERIFY"), 98 // Policy: pulumi.String(json0), 99 // }) 100 // if err != nil { 101 // return err 102 // } 103 // _, err = route53.NewZone(ctx, "example", &route53.ZoneArgs{ 104 // Name: pulumi.String("example.com"), 105 // }) 106 // if err != nil { 107 // return err 108 // } 109 // exampleKeySigningKey, err := route53.NewKeySigningKey(ctx, "example", &route53.KeySigningKeyArgs{ 110 // HostedZoneId: pulumi.Any(test.Id), 111 // KeyManagementServiceArn: pulumi.Any(testAwsKmsKey.Arn), 112 // Name: pulumi.String("example"), 113 // }) 114 // if err != nil { 115 // return err 116 // } 117 // _, err = route53.NewHostedZoneDnsSec(ctx, "example", &route53.HostedZoneDnsSecArgs{ 118 // HostedZoneId: exampleKeySigningKey.HostedZoneId, 119 // }, pulumi.DependsOn([]pulumi.Resource{ 120 // exampleKeySigningKey, 121 // })) 122 // if err != nil { 123 // return err 124 // } 125 // return nil 126 // }) 127 // } 128 // 129 // ``` 130 // <!--End PulumiCodeChooser --> 131 // 132 // ## Import 133 // 134 // Using `pulumi import`, import `aws_route53_key_signing_key` resources using the Route 53 Hosted Zone identifier and KMS Key identifier, separated by a comma (`,`). For example: 135 // 136 // ```sh 137 // $ pulumi import aws:route53/keySigningKey:KeySigningKey example Z1D633PJN98FT9,example 138 // ``` 139 type KeySigningKey struct { 140 pulumi.CustomResourceState 141 142 // A string used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 143 DigestAlgorithmMnemonic pulumi.StringOutput `pulumi:"digestAlgorithmMnemonic"` 144 // An integer used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 145 DigestAlgorithmType pulumi.IntOutput `pulumi:"digestAlgorithmType"` 146 // A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are used to publish the public key that resolvers can use to verify DNSSEC signatures that are used to secure certain kinds of information provided by the DNS system. 147 DigestValue pulumi.StringOutput `pulumi:"digestValue"` 148 // A string that represents a DNSKEY record. 149 DnskeyRecord pulumi.StringOutput `pulumi:"dnskeyRecord"` 150 // A string that represents a delegation signer (DS) record. 151 DsRecord pulumi.StringOutput `pulumi:"dsRecord"` 152 // An integer that specifies how the key is used. For key-signing key (KSK), this value is always 257. 153 Flag pulumi.IntOutput `pulumi:"flag"` 154 // Identifier of the Route 53 Hosted Zone. 155 HostedZoneId pulumi.StringOutput `pulumi:"hostedZoneId"` 156 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key. This must be unique for each key-signing key (KSK) in a single hosted zone. This key must be in the `us-east-1` Region and meet certain requirements, which are described in the [Route 53 Developer Guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) and [Route 53 API Reference](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateKeySigningKey.html). 157 KeyManagementServiceArn pulumi.StringOutput `pulumi:"keyManagementServiceArn"` 158 // An integer used to identify the DNSSEC record for the domain name. The process used to calculate the value is described in [RFC-4034 Appendix B](https://tools.ietf.org/rfc/rfc4034.txt). 159 KeyTag pulumi.IntOutput `pulumi:"keyTag"` 160 // Name of the key-signing key (KSK). Must be unique for each key-singing key in the same hosted zone. 161 // 162 // The following arguments are optional: 163 Name pulumi.StringOutput `pulumi:"name"` 164 // The public key, represented as a Base64 encoding, as required by [RFC-4034 Page 5](https://tools.ietf.org/rfc/rfc4034.txt). 165 PublicKey pulumi.StringOutput `pulumi:"publicKey"` 166 // A string used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 167 SigningAlgorithmMnemonic pulumi.StringOutput `pulumi:"signingAlgorithmMnemonic"` 168 // An integer used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 169 SigningAlgorithmType pulumi.IntOutput `pulumi:"signingAlgorithmType"` 170 // Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. 171 Status pulumi.StringPtrOutput `pulumi:"status"` 172 } 173 174 // NewKeySigningKey registers a new resource with the given unique name, arguments, and options. 175 func NewKeySigningKey(ctx *pulumi.Context, 176 name string, args *KeySigningKeyArgs, opts ...pulumi.ResourceOption) (*KeySigningKey, error) { 177 if args == nil { 178 return nil, errors.New("missing one or more required arguments") 179 } 180 181 if args.HostedZoneId == nil { 182 return nil, errors.New("invalid value for required argument 'HostedZoneId'") 183 } 184 if args.KeyManagementServiceArn == nil { 185 return nil, errors.New("invalid value for required argument 'KeyManagementServiceArn'") 186 } 187 opts = internal.PkgResourceDefaultOpts(opts) 188 var resource KeySigningKey 189 err := ctx.RegisterResource("aws:route53/keySigningKey:KeySigningKey", name, args, &resource, opts...) 190 if err != nil { 191 return nil, err 192 } 193 return &resource, nil 194 } 195 196 // GetKeySigningKey gets an existing KeySigningKey resource's state with the given name, ID, and optional 197 // state properties that are used to uniquely qualify the lookup (nil if not required). 198 func GetKeySigningKey(ctx *pulumi.Context, 199 name string, id pulumi.IDInput, state *KeySigningKeyState, opts ...pulumi.ResourceOption) (*KeySigningKey, error) { 200 var resource KeySigningKey 201 err := ctx.ReadResource("aws:route53/keySigningKey:KeySigningKey", name, id, state, &resource, opts...) 202 if err != nil { 203 return nil, err 204 } 205 return &resource, nil 206 } 207 208 // Input properties used for looking up and filtering KeySigningKey resources. 209 type keySigningKeyState struct { 210 // A string used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 211 DigestAlgorithmMnemonic *string `pulumi:"digestAlgorithmMnemonic"` 212 // An integer used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 213 DigestAlgorithmType *int `pulumi:"digestAlgorithmType"` 214 // A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are used to publish the public key that resolvers can use to verify DNSSEC signatures that are used to secure certain kinds of information provided by the DNS system. 215 DigestValue *string `pulumi:"digestValue"` 216 // A string that represents a DNSKEY record. 217 DnskeyRecord *string `pulumi:"dnskeyRecord"` 218 // A string that represents a delegation signer (DS) record. 219 DsRecord *string `pulumi:"dsRecord"` 220 // An integer that specifies how the key is used. For key-signing key (KSK), this value is always 257. 221 Flag *int `pulumi:"flag"` 222 // Identifier of the Route 53 Hosted Zone. 223 HostedZoneId *string `pulumi:"hostedZoneId"` 224 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key. This must be unique for each key-signing key (KSK) in a single hosted zone. This key must be in the `us-east-1` Region and meet certain requirements, which are described in the [Route 53 Developer Guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) and [Route 53 API Reference](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateKeySigningKey.html). 225 KeyManagementServiceArn *string `pulumi:"keyManagementServiceArn"` 226 // An integer used to identify the DNSSEC record for the domain name. The process used to calculate the value is described in [RFC-4034 Appendix B](https://tools.ietf.org/rfc/rfc4034.txt). 227 KeyTag *int `pulumi:"keyTag"` 228 // Name of the key-signing key (KSK). Must be unique for each key-singing key in the same hosted zone. 229 // 230 // The following arguments are optional: 231 Name *string `pulumi:"name"` 232 // The public key, represented as a Base64 encoding, as required by [RFC-4034 Page 5](https://tools.ietf.org/rfc/rfc4034.txt). 233 PublicKey *string `pulumi:"publicKey"` 234 // A string used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 235 SigningAlgorithmMnemonic *string `pulumi:"signingAlgorithmMnemonic"` 236 // An integer used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 237 SigningAlgorithmType *int `pulumi:"signingAlgorithmType"` 238 // Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. 239 Status *string `pulumi:"status"` 240 } 241 242 type KeySigningKeyState struct { 243 // A string used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 244 DigestAlgorithmMnemonic pulumi.StringPtrInput 245 // An integer used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 246 DigestAlgorithmType pulumi.IntPtrInput 247 // A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are used to publish the public key that resolvers can use to verify DNSSEC signatures that are used to secure certain kinds of information provided by the DNS system. 248 DigestValue pulumi.StringPtrInput 249 // A string that represents a DNSKEY record. 250 DnskeyRecord pulumi.StringPtrInput 251 // A string that represents a delegation signer (DS) record. 252 DsRecord pulumi.StringPtrInput 253 // An integer that specifies how the key is used. For key-signing key (KSK), this value is always 257. 254 Flag pulumi.IntPtrInput 255 // Identifier of the Route 53 Hosted Zone. 256 HostedZoneId pulumi.StringPtrInput 257 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key. This must be unique for each key-signing key (KSK) in a single hosted zone. This key must be in the `us-east-1` Region and meet certain requirements, which are described in the [Route 53 Developer Guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) and [Route 53 API Reference](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateKeySigningKey.html). 258 KeyManagementServiceArn pulumi.StringPtrInput 259 // An integer used to identify the DNSSEC record for the domain name. The process used to calculate the value is described in [RFC-4034 Appendix B](https://tools.ietf.org/rfc/rfc4034.txt). 260 KeyTag pulumi.IntPtrInput 261 // Name of the key-signing key (KSK). Must be unique for each key-singing key in the same hosted zone. 262 // 263 // The following arguments are optional: 264 Name pulumi.StringPtrInput 265 // The public key, represented as a Base64 encoding, as required by [RFC-4034 Page 5](https://tools.ietf.org/rfc/rfc4034.txt). 266 PublicKey pulumi.StringPtrInput 267 // A string used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 268 SigningAlgorithmMnemonic pulumi.StringPtrInput 269 // An integer used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 270 SigningAlgorithmType pulumi.IntPtrInput 271 // Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. 272 Status pulumi.StringPtrInput 273 } 274 275 func (KeySigningKeyState) ElementType() reflect.Type { 276 return reflect.TypeOf((*keySigningKeyState)(nil)).Elem() 277 } 278 279 type keySigningKeyArgs struct { 280 // Identifier of the Route 53 Hosted Zone. 281 HostedZoneId string `pulumi:"hostedZoneId"` 282 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key. This must be unique for each key-signing key (KSK) in a single hosted zone. This key must be in the `us-east-1` Region and meet certain requirements, which are described in the [Route 53 Developer Guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) and [Route 53 API Reference](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateKeySigningKey.html). 283 KeyManagementServiceArn string `pulumi:"keyManagementServiceArn"` 284 // Name of the key-signing key (KSK). Must be unique for each key-singing key in the same hosted zone. 285 // 286 // The following arguments are optional: 287 Name *string `pulumi:"name"` 288 // Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. 289 Status *string `pulumi:"status"` 290 } 291 292 // The set of arguments for constructing a KeySigningKey resource. 293 type KeySigningKeyArgs struct { 294 // Identifier of the Route 53 Hosted Zone. 295 HostedZoneId pulumi.StringInput 296 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key. This must be unique for each key-signing key (KSK) in a single hosted zone. This key must be in the `us-east-1` Region and meet certain requirements, which are described in the [Route 53 Developer Guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) and [Route 53 API Reference](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateKeySigningKey.html). 297 KeyManagementServiceArn pulumi.StringInput 298 // Name of the key-signing key (KSK). Must be unique for each key-singing key in the same hosted zone. 299 // 300 // The following arguments are optional: 301 Name pulumi.StringPtrInput 302 // Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. 303 Status pulumi.StringPtrInput 304 } 305 306 func (KeySigningKeyArgs) ElementType() reflect.Type { 307 return reflect.TypeOf((*keySigningKeyArgs)(nil)).Elem() 308 } 309 310 type KeySigningKeyInput interface { 311 pulumi.Input 312 313 ToKeySigningKeyOutput() KeySigningKeyOutput 314 ToKeySigningKeyOutputWithContext(ctx context.Context) KeySigningKeyOutput 315 } 316 317 func (*KeySigningKey) ElementType() reflect.Type { 318 return reflect.TypeOf((**KeySigningKey)(nil)).Elem() 319 } 320 321 func (i *KeySigningKey) ToKeySigningKeyOutput() KeySigningKeyOutput { 322 return i.ToKeySigningKeyOutputWithContext(context.Background()) 323 } 324 325 func (i *KeySigningKey) ToKeySigningKeyOutputWithContext(ctx context.Context) KeySigningKeyOutput { 326 return pulumi.ToOutputWithContext(ctx, i).(KeySigningKeyOutput) 327 } 328 329 // KeySigningKeyArrayInput is an input type that accepts KeySigningKeyArray and KeySigningKeyArrayOutput values. 330 // You can construct a concrete instance of `KeySigningKeyArrayInput` via: 331 // 332 // KeySigningKeyArray{ KeySigningKeyArgs{...} } 333 type KeySigningKeyArrayInput interface { 334 pulumi.Input 335 336 ToKeySigningKeyArrayOutput() KeySigningKeyArrayOutput 337 ToKeySigningKeyArrayOutputWithContext(context.Context) KeySigningKeyArrayOutput 338 } 339 340 type KeySigningKeyArray []KeySigningKeyInput 341 342 func (KeySigningKeyArray) ElementType() reflect.Type { 343 return reflect.TypeOf((*[]*KeySigningKey)(nil)).Elem() 344 } 345 346 func (i KeySigningKeyArray) ToKeySigningKeyArrayOutput() KeySigningKeyArrayOutput { 347 return i.ToKeySigningKeyArrayOutputWithContext(context.Background()) 348 } 349 350 func (i KeySigningKeyArray) ToKeySigningKeyArrayOutputWithContext(ctx context.Context) KeySigningKeyArrayOutput { 351 return pulumi.ToOutputWithContext(ctx, i).(KeySigningKeyArrayOutput) 352 } 353 354 // KeySigningKeyMapInput is an input type that accepts KeySigningKeyMap and KeySigningKeyMapOutput values. 355 // You can construct a concrete instance of `KeySigningKeyMapInput` via: 356 // 357 // KeySigningKeyMap{ "key": KeySigningKeyArgs{...} } 358 type KeySigningKeyMapInput interface { 359 pulumi.Input 360 361 ToKeySigningKeyMapOutput() KeySigningKeyMapOutput 362 ToKeySigningKeyMapOutputWithContext(context.Context) KeySigningKeyMapOutput 363 } 364 365 type KeySigningKeyMap map[string]KeySigningKeyInput 366 367 func (KeySigningKeyMap) ElementType() reflect.Type { 368 return reflect.TypeOf((*map[string]*KeySigningKey)(nil)).Elem() 369 } 370 371 func (i KeySigningKeyMap) ToKeySigningKeyMapOutput() KeySigningKeyMapOutput { 372 return i.ToKeySigningKeyMapOutputWithContext(context.Background()) 373 } 374 375 func (i KeySigningKeyMap) ToKeySigningKeyMapOutputWithContext(ctx context.Context) KeySigningKeyMapOutput { 376 return pulumi.ToOutputWithContext(ctx, i).(KeySigningKeyMapOutput) 377 } 378 379 type KeySigningKeyOutput struct{ *pulumi.OutputState } 380 381 func (KeySigningKeyOutput) ElementType() reflect.Type { 382 return reflect.TypeOf((**KeySigningKey)(nil)).Elem() 383 } 384 385 func (o KeySigningKeyOutput) ToKeySigningKeyOutput() KeySigningKeyOutput { 386 return o 387 } 388 389 func (o KeySigningKeyOutput) ToKeySigningKeyOutputWithContext(ctx context.Context) KeySigningKeyOutput { 390 return o 391 } 392 393 // A string used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 394 func (o KeySigningKeyOutput) DigestAlgorithmMnemonic() pulumi.StringOutput { 395 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.DigestAlgorithmMnemonic }).(pulumi.StringOutput) 396 } 397 398 // An integer used to represent the delegation signer digest algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.3](https://tools.ietf.org/html/rfc8624#section-3.3). 399 func (o KeySigningKeyOutput) DigestAlgorithmType() pulumi.IntOutput { 400 return o.ApplyT(func(v *KeySigningKey) pulumi.IntOutput { return v.DigestAlgorithmType }).(pulumi.IntOutput) 401 } 402 403 // A cryptographic digest of a DNSKEY resource record (RR). DNSKEY records are used to publish the public key that resolvers can use to verify DNSSEC signatures that are used to secure certain kinds of information provided by the DNS system. 404 func (o KeySigningKeyOutput) DigestValue() pulumi.StringOutput { 405 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.DigestValue }).(pulumi.StringOutput) 406 } 407 408 // A string that represents a DNSKEY record. 409 func (o KeySigningKeyOutput) DnskeyRecord() pulumi.StringOutput { 410 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.DnskeyRecord }).(pulumi.StringOutput) 411 } 412 413 // A string that represents a delegation signer (DS) record. 414 func (o KeySigningKeyOutput) DsRecord() pulumi.StringOutput { 415 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.DsRecord }).(pulumi.StringOutput) 416 } 417 418 // An integer that specifies how the key is used. For key-signing key (KSK), this value is always 257. 419 func (o KeySigningKeyOutput) Flag() pulumi.IntOutput { 420 return o.ApplyT(func(v *KeySigningKey) pulumi.IntOutput { return v.Flag }).(pulumi.IntOutput) 421 } 422 423 // Identifier of the Route 53 Hosted Zone. 424 func (o KeySigningKeyOutput) HostedZoneId() pulumi.StringOutput { 425 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.HostedZoneId }).(pulumi.StringOutput) 426 } 427 428 // Amazon Resource Name (ARN) of the Key Management Service (KMS) Key. This must be unique for each key-signing key (KSK) in a single hosted zone. This key must be in the `us-east-1` Region and meet certain requirements, which are described in the [Route 53 Developer Guide](https://docs.aws.amazon.com/Route53/latest/DeveloperGuide/dns-configuring-dnssec-cmk-requirements.html) and [Route 53 API Reference](https://docs.aws.amazon.com/Route53/latest/APIReference/API_CreateKeySigningKey.html). 429 func (o KeySigningKeyOutput) KeyManagementServiceArn() pulumi.StringOutput { 430 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.KeyManagementServiceArn }).(pulumi.StringOutput) 431 } 432 433 // An integer used to identify the DNSSEC record for the domain name. The process used to calculate the value is described in [RFC-4034 Appendix B](https://tools.ietf.org/rfc/rfc4034.txt). 434 func (o KeySigningKeyOutput) KeyTag() pulumi.IntOutput { 435 return o.ApplyT(func(v *KeySigningKey) pulumi.IntOutput { return v.KeyTag }).(pulumi.IntOutput) 436 } 437 438 // Name of the key-signing key (KSK). Must be unique for each key-singing key in the same hosted zone. 439 // 440 // The following arguments are optional: 441 func (o KeySigningKeyOutput) Name() pulumi.StringOutput { 442 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.Name }).(pulumi.StringOutput) 443 } 444 445 // The public key, represented as a Base64 encoding, as required by [RFC-4034 Page 5](https://tools.ietf.org/rfc/rfc4034.txt). 446 func (o KeySigningKeyOutput) PublicKey() pulumi.StringOutput { 447 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.PublicKey }).(pulumi.StringOutput) 448 } 449 450 // A string used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 451 func (o KeySigningKeyOutput) SigningAlgorithmMnemonic() pulumi.StringOutput { 452 return o.ApplyT(func(v *KeySigningKey) pulumi.StringOutput { return v.SigningAlgorithmMnemonic }).(pulumi.StringOutput) 453 } 454 455 // An integer used to represent the signing algorithm. This value must follow the guidelines provided by [RFC-8624 Section 3.1](https://tools.ietf.org/html/rfc8624#section-3.1). 456 func (o KeySigningKeyOutput) SigningAlgorithmType() pulumi.IntOutput { 457 return o.ApplyT(func(v *KeySigningKey) pulumi.IntOutput { return v.SigningAlgorithmType }).(pulumi.IntOutput) 458 } 459 460 // Status of the key-signing key (KSK). Valid values: `ACTIVE`, `INACTIVE`. Defaults to `ACTIVE`. 461 func (o KeySigningKeyOutput) Status() pulumi.StringPtrOutput { 462 return o.ApplyT(func(v *KeySigningKey) pulumi.StringPtrOutput { return v.Status }).(pulumi.StringPtrOutput) 463 } 464 465 type KeySigningKeyArrayOutput struct{ *pulumi.OutputState } 466 467 func (KeySigningKeyArrayOutput) ElementType() reflect.Type { 468 return reflect.TypeOf((*[]*KeySigningKey)(nil)).Elem() 469 } 470 471 func (o KeySigningKeyArrayOutput) ToKeySigningKeyArrayOutput() KeySigningKeyArrayOutput { 472 return o 473 } 474 475 func (o KeySigningKeyArrayOutput) ToKeySigningKeyArrayOutputWithContext(ctx context.Context) KeySigningKeyArrayOutput { 476 return o 477 } 478 479 func (o KeySigningKeyArrayOutput) Index(i pulumi.IntInput) KeySigningKeyOutput { 480 return pulumi.All(o, i).ApplyT(func(vs []interface{}) *KeySigningKey { 481 return vs[0].([]*KeySigningKey)[vs[1].(int)] 482 }).(KeySigningKeyOutput) 483 } 484 485 type KeySigningKeyMapOutput struct{ *pulumi.OutputState } 486 487 func (KeySigningKeyMapOutput) ElementType() reflect.Type { 488 return reflect.TypeOf((*map[string]*KeySigningKey)(nil)).Elem() 489 } 490 491 func (o KeySigningKeyMapOutput) ToKeySigningKeyMapOutput() KeySigningKeyMapOutput { 492 return o 493 } 494 495 func (o KeySigningKeyMapOutput) ToKeySigningKeyMapOutputWithContext(ctx context.Context) KeySigningKeyMapOutput { 496 return o 497 } 498 499 func (o KeySigningKeyMapOutput) MapIndex(k pulumi.StringInput) KeySigningKeyOutput { 500 return pulumi.All(o, k).ApplyT(func(vs []interface{}) *KeySigningKey { 501 return vs[0].(map[string]*KeySigningKey)[vs[1].(string)] 502 }).(KeySigningKeyOutput) 503 } 504 505 func init() { 506 pulumi.RegisterInputType(reflect.TypeOf((*KeySigningKeyInput)(nil)).Elem(), &KeySigningKey{}) 507 pulumi.RegisterInputType(reflect.TypeOf((*KeySigningKeyArrayInput)(nil)).Elem(), KeySigningKeyArray{}) 508 pulumi.RegisterInputType(reflect.TypeOf((*KeySigningKeyMapInput)(nil)).Elem(), KeySigningKeyMap{}) 509 pulumi.RegisterOutputType(KeySigningKeyOutput{}) 510 pulumi.RegisterOutputType(KeySigningKeyArrayOutput{}) 511 pulumi.RegisterOutputType(KeySigningKeyMapOutput{}) 512 }