diff --git a/clc/modules/cloudformation-common/src/main/java/com/eucalyptus/cloudformation/CloudFormationMessages.groovy b/clc/modules/cloudformation-common/src/main/java/com/eucalyptus/cloudformation/CloudFormationMessages.groovy index 6bd4c9ecdd9..85a133378b4 100644 --- a/clc/modules/cloudformation-common/src/main/java/com/eucalyptus/cloudformation/CloudFormationMessages.groovy +++ b/clc/modules/cloudformation-common/src/main/java/com/eucalyptus/cloudformation/CloudFormationMessages.groovy @@ -120,6 +120,20 @@ public class Outputs extends EucalyptusData { return "Outputs [member=" + member + "]"; } } +public class ParameterDeclarations extends EucalyptusData { + @HttpEmbedded(multiple=true) + @HttpParameterMapping(parameter="member") + ArrayList member = new ArrayList(); + public ParameterDeclarations() { } + public ParameterDeclarations( ParameterDeclaration parameterDeclaration ) { + member.add( parameterDeclaration ) + } + @Override + public String toString() { + return "ParameterDeclarations [member=" + member + "]"; + } +} + public class Parameters extends EucalyptusData { @HttpEmbedded(multiple=true) @HttpParameterMapping(parameter="member") @@ -280,6 +294,25 @@ public class GetTemplateResult extends EucalyptusData { String templateBody; public GetTemplateResult() { } } +public class GetTemplateSummaryResult extends EucalyptusData { + @JsonProperty("Capabilities") + @JsonSerialize(using = ResourceListRemoveMemberSerializer.class, as=ResourceList.class) + ResourceList capabilities; + @JsonProperty("CapabilitiesReason") + String capabilitiesReason; + @JsonProperty("Description") + String description; + @JsonProperty("Metadata") + String metadata; + @JsonProperty("Parameters") + @JsonSerialize(using = ParameterDeclarationsRemoveMemberSerializer.class, as=ParameterDeclarations.class) + ParameterDeclarations parameters; + @JsonProperty("Version") + String version; + public GetTemplateSummaryResult() { } +} + + public class ListStackResourcesResult extends EucalyptusData { @JsonProperty("NextToken") String nextToken @@ -316,6 +349,25 @@ public class Parameter extends EucalyptusData { this.parameterValue = value; } } +public class ParameterDeclaration extends EucalyptusData { + @JsonProperty("DefaultValue") + String defaultValue; + @JsonProperty("Description") + String description; + @JsonProperty("NoEcho") + Boolean noEcho; + @JsonProperty("ParameterConstraints") + @JsonSerialize(using = ResourceListRemoveMemberSerializer.class, as=ResourceList.class) + ResourceList parameterConstraints; + @JsonProperty("ParameterKey") + String parameterKey; + @JsonProperty("ParameterType") + String parameterType; + public ParameterDeclaration() { } +} +public class SignalResourceResult extends EucalyptusData { + public SignalResourceResult() { } +} public class Stack extends EucalyptusData { @JsonProperty("Capabilities") @JsonSerialize(using = ResourceListRemoveMemberSerializer.class, as=ResourceList.class) @@ -638,6 +690,23 @@ public class GetStackPolicyResponseType extends CloudFormationMessage { @JsonProperty("ResponseMetadata") ResponseMetadata responseMetadata = new ResponseMetadata(); } +public class GetTemplateSummaryType extends CloudFormationMessage { + public GetTemplateSummaryType() { } + @JsonProperty("StackName") + String stackName; + @JsonProperty("TemplateBody") + String templateBody; + @JsonProperty("TemplateURL") + String templateURL; +} +public class GetTemplateSummaryResponseType extends CloudFormationMessage { + public GetTemplateSummaryResponseType() { } + @JsonProperty("GetTemplateSummaryResult") + GetTemplateSummaryResult getTemplateSummaryResult = new GetTemplateSummaryResult(); + @JsonProperty("ResponseMetadata") + ResponseMetadata responseMetadata = new ResponseMetadata(); +} + public class GetTemplateType extends CloudFormationMessage { @JsonProperty("StackName") String stackName; @@ -693,6 +762,24 @@ public class SetStackPolicyResponseType extends CloudFormationMessage { @JsonProperty("ResponseMetadata") ResponseMetadata responseMetadata = new ResponseMetadata(); } +public class SignalResourceType extends CloudFormationMessage { + @JsonProperty("LogicalResourceId") + String logicalResourceId; + @JsonProperty("StackName") + String stackName; + @JsonProperty("Status") + String status; + @JsonProperty("UniqueId") + String uniqueId; + public SignalResourceType() { } +} +public class SignalResourceResponseType extends CloudFormationMessage { + public DeleteStackResponseType() { } + @JsonProperty("SignalResourceResult") + SignalResourceResult signalResourceResult = new SignalResourceResult(); + @JsonProperty("ResponseMetadata") + ResponseMetadata responseMetadata = new ResponseMetadata(); +} public class UpdateStackType extends CloudFormationMessage { @JsonProperty("Capabilities") @JsonSerialize(using = ResourceListRemoveMemberSerializer.class, as=ResourceList.class) @@ -769,6 +856,21 @@ public class OutputsRemoveMemberSerializer extends JsonSerializer { } } +public class ParameterDeclarationsRemoveMemberSerializer extends JsonSerializer { + @Override + void serialize(ParameterDeclarations parameterDeclarations, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { + if (parameterDeclarations == null) { + jsonGenerator.writeNull(); + } else { + jsonGenerator.writeStartArray(); + for (String item: parameterDeclarations.getMember()) { + jsonGenerator.writeObject(item); + } + jsonGenerator.writeEndArray(); + } + } +} + public class ParametersRemoveMemberSerializer extends JsonSerializer { @Override void serialize(Parameters parameters, JsonGenerator jsonGenerator, SerializerProvider serializerProvider) throws IOException, JsonProcessingException { diff --git a/clc/modules/cloudformation-common/src/main/resources/cloudformation-binding.xml b/clc/modules/cloudformation-common/src/main/resources/cloudformation-binding.xml index 93e408ce3e0..e9e94ecf612 100644 --- a/clc/modules/cloudformation-common/src/main/resources/cloudformation-binding.xml +++ b/clc/modules/cloudformation-common/src/main/resources/cloudformation-binding.xml @@ -64,6 +64,19 @@ + + + + + + + + + + + + + @@ -196,14 +209,19 @@ - - - + + + + + + + + @@ -331,6 +349,17 @@ + + + + + + + + + + + @@ -361,6 +390,18 @@ + + + + + + + + + + + + diff --git a/clc/modules/cloudformation/src/main/java/com/eucalyptus/cloudformation/CloudFormationService.java b/clc/modules/cloudformation/src/main/java/com/eucalyptus/cloudformation/CloudFormationService.java index a771e0e72e5..b35d1c500bb 100644 --- a/clc/modules/cloudformation/src/main/java/com/eucalyptus/cloudformation/CloudFormationService.java +++ b/clc/modules/cloudformation/src/main/java/com/eucalyptus/cloudformation/CloudFormationService.java @@ -673,6 +673,11 @@ public GetTemplateResponseType getTemplate(final GetTemplateType request) return reply; } + public GetTemplateSummaryResponseType getTemplateSummary(GetTemplateSummaryType request) + throws CloudFormationException { + return request.getReply(); + } + public ListStackResourcesResponseType listStackResources(ListStackResourcesType request) throws CloudFormationException { ListStackResourcesResponseType reply = request.getReply(); @@ -788,6 +793,11 @@ public SetStackPolicyResponseType setStackPolicy(SetStackPolicyType request) return reply; } + public SignalResourceResponseType signalResource(SignalResourceType request) + throws CloudFormationException { + return request.getReply(); + } + public UpdateStackResponseType updateStack(UpdateStackType request) throws CloudFormationException { return request.getReply();