Package com.pulumi.aws.directconnect
Class MacsecKeyAssociation
- java.lang.Object
-
- com.pulumi.resources.Resource
-
- com.pulumi.resources.CustomResource
-
- com.pulumi.aws.directconnect.MacsecKeyAssociation
-
public class MacsecKeyAssociation extends com.pulumi.resources.CustomResourceManages a MAC Security (MACSec) secret key association for use with Direct Connect. See [MACsec prerequisites](https://docs.aws.amazon.com/directconnect/latest/UserGuide/direct-connect-mac-sec-getting-started.html#mac-sec-prerequisites) for information about MAC Security (MACsec) prerequisites. Creating this resource will also create a resource of type `aws.secretsmanager.Secret` which is managed by Direct Connect. While you can import this resource into your state, because this secret is managed by Direct Connect, you will not be able to make any modifications to it. See [How AWS Direct Connect uses AWS Secrets Manager](https://docs.aws.amazon.com/secretsmanager/latest/userguide/integrating_how-services-use-secrets_directconnect.html) for details. > **Note:** The `ckn` and `cak` arguments are stored in the raw state as plain-text. Use `cknWo` and `cakWo` instead to avoid storing these values in the plan or state. When `cknWo` is configured, the API-returned CKN is not stored in `ckn`. > **Note:** The `secretArn` argument can only be used to reference a previously created MACSec key. You cannot associate a Secrets Manager secret created outside of the `aws.directconnect.MacsecKeyAssociation` resource. ## Example Usage ### Basic Usage
### Create MACSec key with write-only CKN and CAKpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.directconnect.DirectconnectFunctions; import com.pulumi.aws.directconnect.inputs.GetConnectionArgs; import com.pulumi.aws.directconnect.MacsecKeyAssociation; import com.pulumi.aws.directconnect.MacsecKeyAssociationArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var example = DirectconnectFunctions.getConnection(GetConnectionArgs.builder() .name("tf-dx-connection") .build()); var exampleMacsecKeyAssociation = new MacsecKeyAssociation("exampleMacsecKeyAssociation", MacsecKeyAssociationArgs.builder() .connectionId(example.id()) .ckn("0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef") .cak("abcdef0123456789abcdef0123456789abcdef0123456789abcdef0123456789") .build()); } }
Changing a write-only value alone does not trigger a change. Increment its corresponding `cakWoVersion` or `cknWoVersion` to replace the association with the new key material. The version counters are independent; increment both when changing both values. ### Create MACSec key with existing Secrets Manager secretpackage generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.directconnect.DirectconnectFunctions; import com.pulumi.aws.directconnect.inputs.GetConnectionArgs; import com.pulumi.aws.directconnect.MacsecKeyAssociation; import com.pulumi.aws.directconnect.MacsecKeyAssociationArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var config = ctx.config(); final var example = DirectconnectFunctions.getConnection(GetConnectionArgs.builder() .name("tf-dx-connection") .build()); final var cak = config.require("cak"); final var ckn = config.require("ckn"); var exampleMacsecKeyAssociation = new MacsecKeyAssociation("exampleMacsecKeyAssociation", MacsecKeyAssociationArgs.builder() .connectionId(example.id()) .cakWo(cak) .cakWoVersion(1) .cknWo(ckn) .cknWoVersion(1) .build()); } }package generated_program; import com.pulumi.Context; import com.pulumi.Pulumi; import com.pulumi.core.Output; import com.pulumi.aws.directconnect.DirectconnectFunctions; import com.pulumi.aws.directconnect.inputs.GetConnectionArgs; import com.pulumi.aws.secretsmanager.SecretsmanagerFunctions; import com.pulumi.aws.secretsmanager.inputs.GetSecretArgs; import com.pulumi.aws.directconnect.MacsecKeyAssociation; import com.pulumi.aws.directconnect.MacsecKeyAssociationArgs; import java.util.ArrayList; import java.util.Arrays; import java.util.Map; import java.io.File; import java.nio.file.Files; import java.nio.file.Paths; public class App { public static void main(String[] args) { Pulumi.run(App::stack); } public static void stack(Context ctx) { final var example = DirectconnectFunctions.getConnection(GetConnectionArgs.builder() .name("tf-dx-connection") .build()); final var exampleGetSecret = SecretsmanagerFunctions.getSecret(GetSecretArgs.builder() .name("directconnect!prod/us-east-1/directconnect/0123456789abcdef0123456789abcdef0123456789abcdef0123456789abcdef") .build()); var exampleMacsecKeyAssociation = new MacsecKeyAssociation("exampleMacsecKeyAssociation", MacsecKeyAssociationArgs.builder() .connectionId(example.id()) .secretArn(exampleGetSecret.arn()) .build()); } }
-
-
Constructor Summary
Constructors Constructor Description MacsecKeyAssociation(java.lang.String name)MacsecKeyAssociation(java.lang.String name, MacsecKeyAssociationArgs args)MacsecKeyAssociation(java.lang.String name, MacsecKeyAssociationArgs args, com.pulumi.resources.CustomResourceOptions options)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description com.pulumi.core.Output<java.util.Optional<java.lang.String>>cak()com.pulumi.core.Output<java.util.Optional<java.lang.String>>cakWo()com.pulumi.core.Output<java.util.Optional<java.lang.Integer>>cakWoVersion()com.pulumi.core.Output<java.lang.String>ckn()com.pulumi.core.Output<java.util.Optional<java.lang.String>>cknWo()com.pulumi.core.Output<java.util.Optional<java.lang.Integer>>cknWoVersion()com.pulumi.core.Output<java.lang.String>connectionId()static MacsecKeyAssociationget(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, MacsecKeyAssociationState state, com.pulumi.resources.CustomResourceOptions options)Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.com.pulumi.core.Output<java.lang.String>region()com.pulumi.core.Output<java.lang.String>secretArn()com.pulumi.core.Output<java.lang.String>startOn()com.pulumi.core.Output<java.lang.String>state()
-
-
-
Constructor Detail
-
MacsecKeyAssociation
public MacsecKeyAssociation(java.lang.String name)
- Parameters:
name- The _unique_ name of the resulting resource.
-
MacsecKeyAssociation
public MacsecKeyAssociation(java.lang.String name, MacsecKeyAssociationArgs args)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.
-
MacsecKeyAssociation
public MacsecKeyAssociation(java.lang.String name, MacsecKeyAssociationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options)- Parameters:
name- The _unique_ name of the resulting resource.args- The arguments to use to populate this resource's properties.options- A bag of options that control this resource's behavior.
-
-
Method Detail
-
cak
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> cak()
- Returns:
- MAC Security (MACsec) CAK to associate with the dedicated connection. Valid values are 64 hexadecimal characters (0-9, A-F). Required with `ckn` or `cknWo` unless `cakWo` is configured. Conflicts with `cakWo`. Changing this argument replaces the association.
-
cakWo
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> cakWo()
- Returns:
- **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. Write-only MAC Security (MACsec) CAK to associate with the dedicated connection. Valid values are 64 hexadecimal characters (0-9, A-F). Requires `cakWoVersion` and either `ckn` or `cknWo`. Conflicts with `cak` and `secretArn`. This value is not stored in the plan or state.
-
cakWoVersion
public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> cakWoVersion()
- Returns:
- Positive integer used to trigger replacement when `cakWo` changes. Required with `cakWo`. Increment this value to replace the association using the current write-only values.
-
ckn
public com.pulumi.core.Output<java.lang.String> ckn()
- Returns:
- MAC Security (MACsec) CKN to associate with the dedicated connection. Valid values are 64 hexadecimal characters (0-9, A-F). Required with `cak` or `cakWo` unless `cknWo` is configured. Conflicts with `cknWo`. Changing this argument replaces the association.
-
cknWo
public com.pulumi.core.Output<java.util.Optional<java.lang.String>> cknWo()
- Returns:
- **NOTE:** This field is write-only and its value will not be updated in state as part of read operations. Write-only MAC Security (MACsec) CKN to associate with the dedicated connection. Valid values are 64 hexadecimal characters (0-9, A-F). Requires `cknWoVersion` and either `cak` or `cakWo`. Conflicts with `ckn` and `secretArn`. This value is not stored in the plan or state.
-
cknWoVersion
public com.pulumi.core.Output<java.util.Optional<java.lang.Integer>> cknWoVersion()
- Returns:
- Positive integer used to trigger replacement when `cknWo` changes. Required with `cknWo`. Increment this value to replace the association using the current write-only values.
-
connectionId
public com.pulumi.core.Output<java.lang.String> connectionId()
- Returns:
- ID of the dedicated Direct Connect connection. The connection must be a dedicated connection in the `AVAILABLE` state. The following arguments are optional:
-
region
public com.pulumi.core.Output<java.lang.String> region()
- Returns:
- Region where this resource will be [managed](https://docs.aws.amazon.com/general/latest/gr/rande.html#regional-endpoints). Defaults to the Region set in the provider configuration.
-
secretArn
public com.pulumi.core.Output<java.lang.String> secretArn()
- Returns:
- ARN of the MAC Security (MACsec) secret key to associate with the dedicated connection. > **Note:** Supply either a CAK/CKN pair (using regular or write-only arguments) or `secretArn`. Do not combine key arguments with `secretArn`.
-
startOn
public com.pulumi.core.Output<java.lang.String> startOn()
- Returns:
- The date in UTC format that the MAC Security (MACsec) secret key takes effect.
-
state
public com.pulumi.core.Output<java.lang.String> state()
- Returns:
- The state of the MAC Security (MACsec) secret key. The possible values are: associating, associated, disassociating, disassociated. See [MacSecKey](https://docs.aws.amazon.com/directconnect/latest/APIReference/API_MacSecKey.html#DX-Type-MacSecKey-state) for descriptions of each state.
-
get
public static MacsecKeyAssociation get(java.lang.String name, com.pulumi.core.Output<java.lang.String> id, @Nullable MacsecKeyAssociationState state, @Nullable com.pulumi.resources.CustomResourceOptions options)
Get an existing Host resource's state with the given name, ID, and optional extra properties used to qualify the lookup.- Parameters:
name- The _unique_ name of the resulting resource.id- The _unique_ provider ID of the resource to lookup.state-options- Optional settings to control the behavior of the CustomResource.
-
-