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  }