package software.amazon.s3outposts.endpoint; import org.apache.commons.lang3.StringUtils; public class EndpointArnFields { String region, accountId, outpostId, endpointId; public EndpointArnFields() { region = ""; accountId = ""; outpostId = ""; endpointId = ""; } public EndpointArnFields(final String r, final String a, final String o, final String e) { region = r; accountId = a; outpostId = o; endpointId = e; } protected static EndpointArnFields splitArn(final String arn) { if (StringUtils.isEmpty(arn)) return new EndpointArnFields(); // An endpoint ARN for S3Outposts looks like: // arn:aws:s3-outposts:us-east-1:12345789012:outpost/op-12345678901234/endpoint/12abcd3efghij4kl5m6 // Split the ARN into 2 parts: // * arn:aws:s3-outposts:us-east-1:123456789012 // * op-12345678901234/endpoint/12abcd3efghij4kl5m6 String parts[] = arn.split(":outpost/"); // Extract region and accountId from part1 // [0]:[1]: [2] : [3] : [4] // part1: arn:aws:s3-outposts:us-east-1:123456789012 String region = parts[0].split(":")[3]; String accountId = parts[0].split(":")[4]; // Extract outpostId and endpointId from part2 // [0] /endpoint/ [1] // part2: op-12345678901234/endpoint/12abcd3efghij4kl5m6 String outpostId = parts[1].split("/endpoint/")[0]; String endpointId = parts[1].split("/endpoint/")[1]; return new EndpointArnFields(region, accountId, outpostId, endpointId); } }