in TerraformCustomResourceHandler/src/main/java/com/amazon/servicecatalog/terraform/customresource/model/CustomResourceRequest.java [52:82]
public CustomResourceRequest(@JsonProperty("ServiceToken") String serviceToken,
@JsonProperty("RequestType") RequestType requestType,
@JsonProperty("ResponseURL") String responseUrl,
@JsonProperty("StackId") String stackId,
@JsonProperty("RequestId") String requestId,
@JsonProperty("ResourceType") String resourceType,
@JsonProperty("LogicalResourceId") String logicalResourceId,
@JsonProperty("PhysicalResourceId") String physicalResourceId,
@JsonProperty("ResourceProperties") TerraformResourceProperties resourceProperties,
@JsonProperty("OldResourceProperties") TerraformResourceProperties oldResourceProperties) {
this.serviceToken = requireNonNull(serviceToken);
this.requestType = requireNonNull(requestType);
this.responseUrl = requireNonNull(responseUrl);
this.stackId = requireNonNull(stackId);
this.requestId = requireNonNull(requestId);
this.resourceType = requireNonNull(resourceType);
this.logicalResourceId = requireNonNull(logicalResourceId);
if (physicalResourceId != null) {
this.physicalResourceId = physicalResourceId;
} else {
String relativeId = Iterables.getLast(Splitter.on(':').split(stackId));
List<String> relativeIdParts = Splitter.on('/').splitToList(relativeId);
// stackName-logicalResourceId-UUID
this.physicalResourceId = String.format("%s-%s-%s", relativeIdParts.get(1), logicalResourceId, relativeIdParts.get(2));
}
this.resourceProperties = requireNonNull(resourceProperties);
this.oldResourceProperties = oldResourceProperties;
}