@Generated(value="jsii-pacmak/1.29.0 (build 41df200)", date="2021-05-14T22:39:36.644Z") @Stability(value=Stable) public class Arn extends software.amazon.jsii.JsiiObject
| Modifier | Constructor and Description |
|---|---|
protected |
Arn(software.amazon.jsii.JsiiObject.InitializationMode initializationMode) |
protected |
Arn(software.amazon.jsii.JsiiObjectRef objRef) |
| Modifier and Type | Method and Description |
|---|---|
static String |
extractResourceName(String arn,
String resourceType)
Extract the full resource name from an ARN.
|
static String |
format(ArnComponents components,
Stack stack)
Creates an ARN from components.
|
static ArnComponents |
parse(String arn)
Given an ARN, parses it and returns components.
|
static ArnComponents |
parse(String arn,
String sepIfToken)
Given an ARN, parses it and returns components.
|
static ArnComponents |
parse(String arn,
String sepIfToken,
Boolean hasName)
Given an ARN, parses it and returns components.
|
jsiiAsyncCall, jsiiAsyncCall, jsiiCall, jsiiCall, jsiiGet, jsiiGet, jsiiSet, jsiiStaticCall, jsiiStaticCall, jsiiStaticGet, jsiiStaticGet, jsiiStaticSet, jsiiStaticSetprotected Arn(software.amazon.jsii.JsiiObjectRef objRef)
protected Arn(software.amazon.jsii.JsiiObject.InitializationMode initializationMode)
@Stability(value=Stable) @NotNull public static String extractResourceName(@NotNull String arn, @NotNull String resourceType)
Necessary for resource names (paths) that may contain the separator, like
arn:aws:iam::111111111111:role/path/to/role/name.
Only works if we statically know the expected
We can't extract the 'resourceType' from the ARN at hand, because CloudFormation Expressions
only allow literals in the 'separator' argument to
Only necessary for ARN formats for which the type-name separator is resourceType beforehand, since we're going
to use that to split the string on ':{ Fn::Split }, and so it can't be
{ Fn::Select: [5, { Fn::Split: [':', ARN] }}.
/.
arn - This parameter is required.resourceType - This parameter is required.@Stability(value=Stable) @NotNull public static String format(@NotNull ArnComponents components, @NotNull Stack stack)
If partition, region or account are not specified, the stack's
partition, region and account will be used.
If any component is the empty string, an empty string will be inserted into the generated ARN at the location that component corresponds to.
The ARN will be formatted as follows:
arn:{partition}:{service}:{region}:{account}:{resource}{sep}{resource-name}
The required ARN pieces that are omitted will be taken from the stack that the 'scope' is attached to. If all ARN pieces are supplied, the supplied scope can be 'undefined'.
components - This parameter is required.stack - This parameter is required.@Stability(value=Stable) @NotNull public static ArnComponents parse(@NotNull String arn, @Nullable String sepIfToken, @Nullable Boolean hasName)
IF THE ARN IS A CONCRETE STRING...
...it will be parsed and validated. The separator (sep) will be set to '/'
if the 6th component includes a '/', in which case, resource will be set
to the value before the '/' and resourceName will be the rest. In case
there is no '/', resource will be set to the 6th components and
resourceName will be set to the rest of the string.
IF THE ARN IS A TOKEN...
...it cannot be validated, since we don't have the actual value yet at the
time of this function call. You will have to supply sepIfToken and
whether or not ARNs of the expected format usually have resource names
in order to parse it properly. The resulting ArnComponents object will
contain tokens for the subexpressions of the ARN, not string literals.
If the resource name could possibly contain the separator char, the actual
resource name cannot be properly parsed. This only occurs if the separator
char is '/', and happens for example for S3 object ARNs, IAM Role ARNs,
IAM OIDC Provider ARNs, etc. To properly extract the resource name from a
Tokenized ARN, you must know the resource type and call
Arn.extractResourceName.
arn - The ARN to parse. This parameter is required.sepIfToken - The separator used to separate resource from resourceName.hasName - Whether there is a name component in the ARN at all.@Stability(value=Stable) @NotNull public static ArnComponents parse(@NotNull String arn, @Nullable String sepIfToken)
IF THE ARN IS A CONCRETE STRING...
...it will be parsed and validated. The separator (sep) will be set to '/'
if the 6th component includes a '/', in which case, resource will be set
to the value before the '/' and resourceName will be the rest. In case
there is no '/', resource will be set to the 6th components and
resourceName will be set to the rest of the string.
IF THE ARN IS A TOKEN...
...it cannot be validated, since we don't have the actual value yet at the
time of this function call. You will have to supply sepIfToken and
whether or not ARNs of the expected format usually have resource names
in order to parse it properly. The resulting ArnComponents object will
contain tokens for the subexpressions of the ARN, not string literals.
If the resource name could possibly contain the separator char, the actual
resource name cannot be properly parsed. This only occurs if the separator
char is '/', and happens for example for S3 object ARNs, IAM Role ARNs,
IAM OIDC Provider ARNs, etc. To properly extract the resource name from a
Tokenized ARN, you must know the resource type and call
Arn.extractResourceName.
arn - The ARN to parse. This parameter is required.sepIfToken - The separator used to separate resource from resourceName.@Stability(value=Stable) @NotNull public static ArnComponents parse(@NotNull String arn)
IF THE ARN IS A CONCRETE STRING...
...it will be parsed and validated. The separator (sep) will be set to '/'
if the 6th component includes a '/', in which case, resource will be set
to the value before the '/' and resourceName will be the rest. In case
there is no '/', resource will be set to the 6th components and
resourceName will be set to the rest of the string.
IF THE ARN IS A TOKEN...
...it cannot be validated, since we don't have the actual value yet at the
time of this function call. You will have to supply sepIfToken and
whether or not ARNs of the expected format usually have resource names
in order to parse it properly. The resulting ArnComponents object will
contain tokens for the subexpressions of the ARN, not string literals.
If the resource name could possibly contain the separator char, the actual
resource name cannot be properly parsed. This only occurs if the separator
char is '/', and happens for example for S3 object ARNs, IAM Role ARNs,
IAM OIDC Provider ARNs, etc. To properly extract the resource name from a
Tokenized ARN, you must know the resource type and call
Arn.extractResourceName.
arn - The ARN to parse. This parameter is required.Copyright © 2021. All rights reserved.