You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by ad...@apache.org on 2017/05/10 15:11:49 UTC
[1/2] ambari git commit: AMBARI-20970. Integrate StackService
resource with swagger (Balazs Bence Sari via adoroszlai)
Repository: ambari
Updated Branches:
refs/heads/ambari-rest-api-explorer 0e13b0184 -> 54983ee3b
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/ExtensionLinkResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ExtensionLinkResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ExtensionLinkResponse.java
index 99c9ce9..c4f3941 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ExtensionLinkResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ExtensionLinkResponse.java
@@ -24,80 +24,32 @@ import java.util.Set;
import org.apache.ambari.server.stack.Validable;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* An extension version is like a stack version but it contains custom services. Linking an extension
* version to the current stack version allows the cluster to install the custom services contained in
* the extension version.
*/
-public class ExtensionLinkResponse implements Validable {
-
- private String linkId;
-
- private String stackName;
-
- private String stackVersion;
-
- private String extensionName;
-
- private String extensionVersion;
+public class ExtensionLinkResponse implements Validable, ApiModel {
+ private ExtensionLinkResponseInfo extensionLinkResponseInfo;
private boolean valid;
-
private Set<String> errorSet = new HashSet<>();
public ExtensionLinkResponse(String linkId, String stackName, String stackVersion, String extensionName,
- String extensionVersion, boolean valid, Collection<String> errorSet) {
-
- setLinkId(linkId);
- setStackName(stackName);
- setStackVersion(stackVersion);
- setExtensionName(extensionName);
- setExtensionVersion(extensionVersion);
- setValid(valid);
- addErrors(errorSet);
- }
-
- public String getLinkId() {
- return linkId;
- }
-
- public void setLinkId(String linkId) {
- this.linkId = linkId;
- }
-
- public String getStackName() {
- return stackName;
- }
-
- public void setStackName(String stackName) {
- this.stackName = stackName;
- }
-
- public String getStackVersion() {
- return stackVersion;
- }
-
- public void setStackVersion(String stackVersion) {
- this.stackVersion = stackVersion;
- }
-
- public String getExtensionName() {
- return extensionName;
+ String extensionVersion, boolean valid, Collection<String> errorSet) {
+ extensionLinkResponseInfo = new ExtensionLinkResponseInfo(linkId, stackName, stackVersion, extensionName,
+ extensionVersion, valid, errorSet);
}
- public void setExtensionName(String extensionName) {
- this.extensionName = extensionName;
- }
-
- public String getExtensionVersion() {
- return extensionVersion;
- }
-
- public void setExtensionVersion(String extensionVersion) {
- this.extensionVersion = extensionVersion;
+ @ApiModelProperty(name = "ExtensionLink")
+ public ExtensionLinkResponseInfo getExtensionLinkResponseInfo() {
+ return extensionLinkResponseInfo;
}
@Override
+ @ApiModelProperty(hidden = true)
public boolean isValid() {
return valid;
}
@@ -113,6 +65,7 @@ public class ExtensionLinkResponse implements Validable {
}
@Override
+ @ApiModelProperty(hidden = true)
public Collection<String> getErrors() {
return errorSet;
}
@@ -121,4 +74,70 @@ public class ExtensionLinkResponse implements Validable {
public void addErrors(Collection<String> errors) {
this.errorSet.addAll(errors);
}
+
+ public class ExtensionLinkResponseInfo {
+ public ExtensionLinkResponseInfo(String linkId, String stackName, String stackVersion, String extensionName,
+ String extensionVersion, boolean valid, Collection<String> errorSet) {
+
+ setLinkId(linkId);
+ setStackName(stackName);
+ setStackVersion(stackVersion);
+ setExtensionName(extensionName);
+ setExtensionVersion(extensionVersion);
+ setValid(valid);
+ addErrors(errorSet);
+ }
+
+ private String linkId;
+ private String stackName;
+ private String stackVersion;
+ private String extensionName;
+ private String extensionVersion;
+
+ @ApiModelProperty(name = "link_id")
+ public String getLinkId() {
+ return linkId;
+ }
+
+ public void setLinkId(String linkId) {
+ this.linkId = linkId;
+ }
+
+ @ApiModelProperty(name = "stack_name")
+ public String getStackName() {
+ return stackName;
+ }
+
+ public void setStackName(String stackName) {
+ this.stackName = stackName;
+ }
+
+ @ApiModelProperty(name = "stack_version")
+ public String getStackVersion() {
+ return stackVersion;
+ }
+
+ public void setStackVersion(String stackVersion) {
+ this.stackVersion = stackVersion;
+ }
+
+ @ApiModelProperty(name = "extension_name")
+ public String getExtensionName() {
+ return extensionName;
+ }
+
+ public void setExtensionName(String extensionName) {
+ this.extensionName = extensionName;
+ }
+
+ @ApiModelProperty(name = "extension_version")
+ public String getExtensionVersion() {
+ return extensionVersion;
+ }
+
+ public void setExtensionVersion(String extensionVersion) {
+ this.extensionVersion = extensionVersion;
+ }
+
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/QuickLinksResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/QuickLinksResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/QuickLinksResponse.java
new file mode 100644
index 0000000..c5eb4fd
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/QuickLinksResponse.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.controller;
+
+import org.apache.ambari.server.state.quicklinks.QuickLinksConfiguration;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Response schema for endpoint {@link org.apache.ambari.server.api.services.StacksService#getStackServiceQuickLinksConfiguration(
+ * String, javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.UriInfo, String, String, String, String)}
+
+ * The interface is not actually implemented, it only carries swagger annotations.
+ */
+public interface QuickLinksResponse extends ApiModel {
+
+ @ApiModelProperty(name = "QuickLinkInfo")
+ public QuickLinksResponseInfo getQuickLinksResponseInfo();
+
+ public interface QuickLinksResponseInfo {
+ @ApiModelProperty(name = "file_name")
+ String getFileName();
+
+ @ApiModelProperty(name = "service_name")
+ String getServiceName();
+
+ @ApiModelProperty(name = "stack_name")
+ String getStackName();
+
+ @ApiModelProperty(name = "stack_version")
+ String getStackVersion();
+
+ @ApiModelProperty(name = "default")
+ boolean isDefault();
+
+ @ApiModelProperty(name = "quicklink_data")
+ QuickLinksConfiguration getQuickLinkData();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackArtifactResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackArtifactResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackArtifactResponse.java
new file mode 100644
index 0000000..279798e
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackArtifactResponse.java
@@ -0,0 +1,52 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.controller;
+
+import java.util.Map;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Response schema for endpoint {@link org.apache.ambari.server.api.services.StacksService#getStackArtifact}
+ *
+ * The interface is not actually implemented, it only carries swagger annotations.
+ */
+public interface StackArtifactResponse extends ApiModel {
+
+ @ApiModelProperty(name = "Artifacts")
+ Artifacts getArtifacts();
+
+ @ApiModelProperty(name = "artifact_data")
+ Map<String, Object> getArtifactData();
+
+ interface Artifacts {
+ @ApiModelProperty(name = "artifact_name")
+ String getArtifactName();
+
+ @ApiModelProperty(name = "service_name")
+ String getServiceName();
+
+ @ApiModelProperty(name = "stack_name")
+ String getStackName();
+
+ @ApiModelProperty(name = "stack_version")
+ String getStackVersion();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationDependencyResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationDependencyResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationDependencyResponse.java
index 14aab3b..7bea5e2 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationDependencyResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationDependencyResponse.java
@@ -19,6 +19,8 @@
package org.apache.ambari.server.controller;
+import io.swagger.annotations.ApiModelProperty;
+
public class StackConfigurationDependencyResponse {
private String stackName;
@@ -40,6 +42,7 @@ public class StackConfigurationDependencyResponse {
this.dependencyType = dependencyType;
}
+ @ApiModelProperty(name = "stack_name")
public String getStackName() {
return stackName;
}
@@ -48,6 +51,7 @@ public class StackConfigurationDependencyResponse {
this.stackName = stackName;
}
+ @ApiModelProperty(name = "stack_version")
public String getStackVersion() {
return stackVersion;
}
@@ -56,6 +60,7 @@ public class StackConfigurationDependencyResponse {
this.stackVersion = stackVersion;
}
+ @ApiModelProperty(name = "service_name")
public String getServiceName() {
return serviceName;
}
@@ -64,6 +69,7 @@ public class StackConfigurationDependencyResponse {
this.serviceName = serviceName;
}
+ @ApiModelProperty(name = "property_name")
public String getPropertyName() {
return propertyName;
}
@@ -72,6 +78,7 @@ public class StackConfigurationDependencyResponse {
this.propertyName = propertyName;
}
+ @ApiModelProperty(name = "dependency_name")
public String getDependencyName() {
return dependencyName;
}
@@ -80,6 +87,7 @@ public class StackConfigurationDependencyResponse {
this.dependencyName = dependencyName;
}
+ @ApiModelProperty(name = "dependency_type")
public String getDependencyType() {
return dependencyType;
}
@@ -87,4 +95,13 @@ public class StackConfigurationDependencyResponse {
public void setDependencyType(String dependencyType) {
this.dependencyType = dependencyType;
}
+
+ /**
+ * Interface to help correct Swagger documentation generation
+ */
+ public interface StackConfigurationDependencyResponseSwagger extends ApiModel {
+ @ApiModelProperty(name = "StackConfigurationDependency")
+ public StackConfigurationDependencyResponse getStackConfigurationDependencyResponse();
+ }
+
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationResponse.java
index 0338ed9..7954192 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackConfigurationResponse.java
@@ -26,6 +26,9 @@ import org.apache.ambari.server.state.PropertyDependencyInfo;
import org.apache.ambari.server.state.PropertyInfo.PropertyType;
import org.apache.ambari.server.state.ValueAttributesInfo;
+import io.swagger.annotations.ApiModelProperty;
+
+
public class StackConfigurationResponse {
/**
@@ -90,6 +93,7 @@ public class StackConfigurationResponse {
private Boolean isRequired;
private Set<PropertyType> propertyTypes;
+ @ApiModelProperty(name = "stack_name")
public String getStackName() {
return stackName;
}
@@ -98,6 +102,7 @@ public class StackConfigurationResponse {
this.stackName = stackName;
}
+ @ApiModelProperty(name = "stack_version")
public String getStackVersion() {
return stackVersion;
}
@@ -106,6 +111,7 @@ public class StackConfigurationResponse {
this.stackVersion = stackVersion;
}
+ @ApiModelProperty(name = "service_name")
public String getServiceName() {
return serviceName;
}
@@ -114,6 +120,7 @@ public class StackConfigurationResponse {
this.serviceName = serviceName;
}
+ @ApiModelProperty(name = "property_name")
public String getPropertyName() {
return propertyName;
}
@@ -122,6 +129,7 @@ public class StackConfigurationResponse {
this.propertyName = propertyName;
}
+ @ApiModelProperty(name = "property_value")
public String getPropertyValue() {
return propertyValue;
}
@@ -130,6 +138,7 @@ public class StackConfigurationResponse {
this.propertyValue = propertyValue;
}
+ @ApiModelProperty(name = "property_description")
public String getPropertyDescription() {
return propertyDescription;
}
@@ -138,6 +147,7 @@ public class StackConfigurationResponse {
this.propertyDescription = propertyDescription;
}
+ @ApiModelProperty(name = "property_display_name")
public String getPropertyDisplayName() {
return propertyDisplayName;
}
@@ -153,7 +163,8 @@ public class StackConfigurationResponse {
public String getType() {
return type;
}
-
+
+ @ApiModelProperty(name = "type")
public void setType(String type) {
this.type = type;
}
@@ -163,6 +174,7 @@ public class StackConfigurationResponse {
*
* @return Map of attribute name to attribute value
*/
+ @ApiModelProperty(hidden = true)
public Map<String, String> getPropertyAttributes() {
return propertyAttributes;
}
@@ -181,6 +193,7 @@ public class StackConfigurationResponse {
*
* @return value attributes
*/
+ @ApiModelProperty(name = "property_value_attributes")
public ValueAttributesInfo getPropertyValueAttributes() {
return propertyValueAttributes;
}
@@ -199,6 +212,7 @@ public class StackConfigurationResponse {
*
* @return depends on properties set
*/
+ @ApiModelProperty(name = "dependencies")
public Set<PropertyDependencyInfo> getDependsOnProperties() {
return dependsOnProperties;
}
@@ -216,6 +230,7 @@ public class StackConfigurationResponse {
* Is property a isRequired property
* @return True/False
*/
+ @ApiModelProperty(hidden = true)
public Boolean isRequired() {
return isRequired;
}
@@ -232,6 +247,7 @@ public class StackConfigurationResponse {
* Get type of property as set in the stack definition.
* @return Property type.
*/
+ @ApiModelProperty(name = "property_type")
public Set<PropertyType> getPropertyType() {
return propertyTypes;
}
@@ -239,4 +255,12 @@ public class StackConfigurationResponse {
public void setPropertyType(Set<PropertyType> propertyTypes) {
this.propertyTypes = propertyTypes;
}
+
+ /**
+ * Interface to help correct Swagger documentation generation
+ */
+ public interface StackConfigurationResponseSwagger extends ApiModel {
+ @ApiModelProperty(name = "StackConfigurations")
+ public StackConfigurationResponse getStackConfigurationResponse();
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackResponse.java
index 1901337..56f5904 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackResponse.java
@@ -19,6 +19,8 @@
package org.apache.ambari.server.controller;
+import io.swagger.annotations.ApiModelProperty;
+
public class StackResponse {
private String stackName;
@@ -27,6 +29,7 @@ public class StackResponse {
setStackName(stackName);
}
+ @ApiModelProperty(name = "stack_name")
public String getStackName() {
return stackName;
}
@@ -54,4 +57,13 @@ public class StackResponse {
return getStackName().equals(stackResponse.getStackName());
}
+ /**
+ * Interface to help correct Swagger documentation generation
+ */
+ public interface StackResponseSwagger extends ApiModel {
+ @ApiModelProperty(name = "Stacks")
+ public StackResponse getStackResponse();
+ }
+
}
+
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceArtifactResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceArtifactResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceArtifactResponse.java
new file mode 100644
index 0000000..0a531a7
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceArtifactResponse.java
@@ -0,0 +1,53 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.controller;
+
+import java.util.Map;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Response schema for endpoint {@link org.apache.ambari.server.api.services.StacksService#getStackServiceArtifact(
+ * String, javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.UriInfo, String, String, String, String)}
+ *
+ * The interface is not actually implemented, it only carries swagger annotations.
+ */
+public interface StackServiceArtifactResponse extends ApiModel {
+
+ @ApiModelProperty(name = "Artifacts")
+ Artifacts getArtifacts();
+
+ @ApiModelProperty(name = "artifact_data")
+ Map<String, Object> getArtifactData();
+
+ interface Artifacts {
+ @ApiModelProperty(name = "artifact_name")
+ String getArtifactName();
+
+ @ApiModelProperty(name = "service_name")
+ String getServiceName();
+
+ @ApiModelProperty(name = "stack_name")
+ String getStackName();
+
+ @ApiModelProperty(name = "stack_version")
+ String getStackVersion();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java
index b48fad3..d1dea0d 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceComponentResponse.java
@@ -27,6 +27,8 @@ import org.apache.ambari.server.state.BulkCommandDefinition;
import org.apache.ambari.server.state.ComponentInfo;
import org.apache.ambari.server.state.CustomCommandDefinition;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Stack service component response.
*/
@@ -197,6 +199,7 @@ public class StackServiceComponentResponse {
*
* @return stack name
*/
+ @ApiModelProperty(name = "stack_name")
public String getStackName() {
return stackName;
}
@@ -215,6 +218,7 @@ public class StackServiceComponentResponse {
*
* @return stack version
*/
+ @ApiModelProperty(name = "stack_version")
public String getStackVersion() {
return stackVersion;
}
@@ -233,6 +237,7 @@ public class StackServiceComponentResponse {
*
* @return service name
*/
+ @ApiModelProperty(name = "service_name")
public String getServiceName() {
return serviceName;
}
@@ -251,6 +256,7 @@ public class StackServiceComponentResponse {
*
* @return component name
*/
+ @ApiModelProperty(name = "component_name")
public String getComponentName() {
return componentName;
}
@@ -270,6 +276,7 @@ public class StackServiceComponentResponse {
* @return component display name
*/
+ @ApiModelProperty(name = "display_name")
public String getComponentDisplayName() {
return componentDisplayName;
}
@@ -288,6 +295,7 @@ public class StackServiceComponentResponse {
*
* @return component category
*/
+ @ApiModelProperty(name = "component_category")
public String getComponentCategory() {
return componentCategory;
}
@@ -306,6 +314,7 @@ public class StackServiceComponentResponse {
*
* @return whether the component is a client component
*/
+ @ApiModelProperty(name = "is_client")
public boolean isClient() {
return isClient;
}
@@ -324,6 +333,7 @@ public class StackServiceComponentResponse {
*
* @return whether the component is a master component
*/
+ @ApiModelProperty(name = "is_master")
public boolean isMaster() {
return isMaster;
}
@@ -342,6 +352,7 @@ public class StackServiceComponentResponse {
*
* @return component cardinality requirement
*/
+ @ApiModelProperty(name = "cardinality")
public String getCardinality() {
return cardinality;
}
@@ -361,6 +372,7 @@ public class StackServiceComponentResponse {
*
* @return Whether the components needs to advertise a version
*/
+ @ApiModelProperty(name = "advertise_version")
public boolean isVersionAdvertised() {
return versionAdvertised;
}
@@ -379,6 +391,7 @@ public class StackServiceComponentResponse {
*
* @return Whether the components can be decommissioned
*/
+ @ApiModelProperty(name = "decommission_allowed")
public boolean isDecommissionAlllowed() {
if (decommissionAllowed != null && decommissionAllowed.equals("true")) {
return true;
@@ -401,6 +414,7 @@ public class StackServiceComponentResponse {
*
* @return Whether the components can be reassigned
*/
+ @ApiModelProperty(name = "reassign_allowed")
public boolean isReassignAlllowed() {
if (reassignAllowed != null && reassignAllowed.equals("true")) {
return true;
@@ -423,6 +437,7 @@ public class StackServiceComponentResponse {
*
* @return True or false.
*/
+ @ApiModelProperty(name = "recovery_enabled")
public boolean isRecoveryEnabled() {
return recoveryEnabled;
}
@@ -442,6 +457,7 @@ public class StackServiceComponentResponse {
*
* @return auto deploy information
*/
+ @ApiModelProperty(hidden = true)
public AutoDeployInfo getAutoDeploy() {
return autoDeploy;
}
@@ -460,10 +476,12 @@ public class StackServiceComponentResponse {
*
* @return the commands or an empty list (never {@code null}).
*/
+ @ApiModelProperty(name = "custom_commands")
public List<String> getCustomCommands() {
return customCommands;
}
+ @ApiModelProperty(name = "has_bulk_commands_definition")
public boolean hasBulkCommands(){
return hasBulkCommands;
}
@@ -472,7 +490,16 @@ public class StackServiceComponentResponse {
return bulkCommandsDisplayName == null ? "":bulkCommandsDisplayName;
}
+ @ApiModelProperty(name = "bulk_commands_master_component_namen")
public String getBulkCommandsMasterComponentName(){
return bulkCommandMasterComponentName == null ? "":bulkCommandMasterComponentName;
}
+
+ /**
+ * Interface to help correct Swagger documentation generation
+ */
+ public interface StackServiceComponentResponseSwagger extends ApiModel {
+ @ApiModelProperty(name = "StackServiceComponents")
+ public StackServiceComponentResponse getStackServiceComponentResponse();
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java
index 8e4200d..c3e10d9 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackServiceResponse.java
@@ -28,6 +28,8 @@ import java.util.Set;
import org.apache.ambari.server.state.CustomCommandDefinition;
import org.apache.ambari.server.state.ServiceInfo;
+import io.swagger.annotations.ApiModelProperty;
+
public class StackServiceResponse {
private String stackName;
@@ -108,16 +110,13 @@ public class StackServiceResponse {
}
kerberosDescriptorFile = service.getKerberosDescriptorFile();
-
serviceProperties = service.getServiceProperties();
-
credentialStoreSupported = service.isCredentialStoreSupported();
-
credentialStoreEnabled = service.isCredentialStoreEnabled();
-
isSupportDeleteViaUI = service.isSupportDeleteViaUI();
}
+ @ApiModelProperty(name = "selection")
public ServiceInfo.Selection getSelection() {
return selection;
}
@@ -126,6 +125,7 @@ public class StackServiceResponse {
this.selection = selection;
}
+ @ApiModelProperty(name = "stack_name")
public String getStackName() {
return stackName;
}
@@ -134,6 +134,7 @@ public class StackServiceResponse {
this.stackName = stackName;
}
+ @ApiModelProperty(name = "stack_version")
public String getStackVersion() {
return stackVersion;
}
@@ -142,6 +143,7 @@ public class StackServiceResponse {
this.stackVersion = stackVersion;
}
+ @ApiModelProperty(name = "service_name")
public String getServiceName() {
return serviceName;
}
@@ -150,6 +152,7 @@ public class StackServiceResponse {
this.serviceName = serviceName;
}
+ @ApiModelProperty(name = "service_type")
public String getServiceType() {
return serviceType;
}
@@ -158,6 +161,7 @@ public class StackServiceResponse {
this.serviceType = serviceType;
}
+ @ApiModelProperty(name = "display_name")
public String getServiceDisplayName() {
return serviceDisplayName;
}
@@ -166,6 +170,7 @@ public class StackServiceResponse {
this.serviceDisplayName = serviceDisplayName;
}
+ @ApiModelProperty(name = "user_name")
public String getUserName() {
return userName;
}
@@ -174,6 +179,7 @@ public class StackServiceResponse {
this.userName = userName;
}
+ @ApiModelProperty(name = "comments")
public String getComments() {
return comments;
}
@@ -182,6 +188,7 @@ public class StackServiceResponse {
this.comments = comments;
}
+ @ApiModelProperty(name = "service_version")
public String getServiceVersion() {
return serviceVersion;
}
@@ -190,14 +197,17 @@ public class StackServiceResponse {
this.serviceVersion = serviceVersion;
}
+ @ApiModelProperty(name = "config_types")
public Map<String, Map<String, Map<String, String>>> getConfigTypes() {
return configTypes;
}
+ @ApiModelProperty(hidden = true)
public Set<String> getExcludedConfigTypes() {
return excludedConfigTypes;
}
+ @ApiModelProperty(name = "required_services")
public List<String> getRequiredServices() {
return requiredServices;
}
@@ -212,6 +222,7 @@ public class StackServiceResponse {
* @return a File pointing to the service-level Kerberos descriptor, or null if no relevant file is
* available
*/
+ @ApiModelProperty(hidden = true)
public File getKerberosDescriptorFile() {
return kerberosDescriptorFile;
}
@@ -235,6 +246,7 @@ public class StackServiceResponse {
* {@code false} otherwise.
*
*/
+ @ApiModelProperty(name = "service_check_supported")
public boolean isServiceCheckSupported() {
return serviceCheckSupported;
}
@@ -244,6 +256,7 @@ public class StackServiceResponse {
*
* @return the commands or an empty list (never {@code null}).
*/
+ @ApiModelProperty(name = "custom_commands")
public List<String> getCustomCommands() {
return customCommands;
}
@@ -252,6 +265,7 @@ public class StackServiceResponse {
* Get the service properties of this service.
* @return the properties or an empty map (never {@code null}).
*/
+ @ApiModelProperty(name = "properties")
public Map<String, String> getServiceProperties() {
return serviceProperties;
}
@@ -261,6 +275,7 @@ public class StackServiceResponse {
*
* @return true or false.
*/
+ @ApiModelProperty(name = "credential_store_supported")
public boolean isCredentialStoreSupported() {
return credentialStoreSupported;
}
@@ -279,6 +294,7 @@ public class StackServiceResponse {
*
* @return true or false
*/
+ @ApiModelProperty(name = "credential_store_enabled")
public boolean isCredentialStoreEnabled() {
return credentialStoreEnabled;
}
@@ -297,6 +313,7 @@ public class StackServiceResponse {
*
* @return true or false
*/
+ @ApiModelProperty(name = "credential_store_required")
public boolean isCredentialStoreRequired() {
return credentialStoreRequired;
}
@@ -310,7 +327,13 @@ public class StackServiceResponse {
this.credentialStoreRequired = credentialStoreRequired;
}
+ @ApiModelProperty(hidden = true)
public boolean isSupportDeleteViaUI(){
return isSupportDeleteViaUI;
}
+
+ public interface StackServiceResponseSwagger extends ApiModel {
+ @ApiModelProperty(name = "StackServices")
+ public StackServiceResponse getStackServiceResponse();
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java
index 3c65d05..584944e 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/StackVersionResponse.java
@@ -27,28 +27,12 @@ import java.util.Set;
import org.apache.ambari.server.stack.Validable;
+import io.swagger.annotations.ApiModelProperty;
public class StackVersionResponse implements Validable{
private String minJdk;
private String maxJdk;
-
- public String getMinJdk() {
- return minJdk;
- }
-
- public void setMinJdk(String minJdk) {
- this.minJdk = minJdk;
- }
-
- public String getMaxJdk() {
- return maxJdk;
- }
-
- public void setMaxJdk(String maxJdk) {
- this.maxJdk = maxJdk;
- }
-
private String stackName;
private String stackVersion;
private String minUpgradeVersion;
@@ -93,6 +77,7 @@ public class StackVersionResponse implements Validable{
}
@Override
+ @ApiModelProperty(name = "valid")
public boolean isValid() {
return valid;
}
@@ -110,6 +95,7 @@ public class StackVersionResponse implements Validable{
}
@Override
+ @ApiModelProperty(name = "stack-errors")
public Collection<String> getErrors() {
return errorSet;
}
@@ -117,8 +103,25 @@ public class StackVersionResponse implements Validable{
@Override
public void addErrors(Collection<String> errors) {
this.errorSet.addAll(errors);
- }
-
+ }
+
+ @ApiModelProperty(name = "min_jdk")
+ public String getMinJdk() { return minJdk; }
+
+ public void setMinJdk(String minJdk) {
+ this.minJdk = minJdk;
+ }
+
+ @ApiModelProperty(name = "max_jdk")
+ public String getMaxJdk() {
+ return maxJdk;
+ }
+
+ public void setMaxJdk(String maxJdk) {
+ this.maxJdk = maxJdk;
+ }
+
+ @ApiModelProperty(name = "stack_name")
public String getStackName() {
return stackName;
}
@@ -127,6 +130,7 @@ public class StackVersionResponse implements Validable{
this.stackName = stackName;
}
+ @ApiModelProperty(name = "stack_version")
public String getStackVersion() {
return stackVersion;
}
@@ -135,6 +139,7 @@ public class StackVersionResponse implements Validable{
this.stackVersion = stackVersion;
}
+ @ApiModelProperty(name = "min_upgrade_version")
public String getMinUpgradeVersion() {
return minUpgradeVersion;
}
@@ -143,6 +148,7 @@ public class StackVersionResponse implements Validable{
this.minUpgradeVersion = minUpgradeVersion;
}
+ @ApiModelProperty(name = "active")
public boolean isActive() {
return active;
}
@@ -151,6 +157,7 @@ public class StackVersionResponse implements Validable{
this.active = active;
}
+ @ApiModelProperty(name = "parent_stack_version")
public String getParentVersion() {
return parentVersion;
}
@@ -158,6 +165,8 @@ public class StackVersionResponse implements Validable{
public void setParentVersion(String parentVersion) {
this.parentVersion = parentVersion;
}
+
+ @ApiModelProperty(name = "config_types")
public Map<String, Map<String, Map<String, String>>> getConfigTypes() {
return configTypes;
}
@@ -172,6 +181,7 @@ public class StackVersionResponse implements Validable{
* @return a File pointing to the stack-level Kerberos descriptor, or null if no relevant file is
* available
*/
+ @ApiModelProperty(hidden = true)
public File getStackKerberosDescriptorFile() {
return stackKerberosDescriptorFile;
}
@@ -192,6 +202,7 @@ public class StackVersionResponse implements Validable{
* @return a Collection of Files pointing to the stack-specific service-level Kerberos descriptor
* files, or null if no relevant files are available
*/
+ @ApiModelProperty(hidden = true)
public Collection<File> getServiceKerberosDescriptorFiles() {
return serviceKerberosDescriptorFiles;
}
@@ -216,7 +227,17 @@ public class StackVersionResponse implements Validable{
/**
* @return the upgrade pack names for the stack version
*/
+ @ApiModelProperty(name = "upgrade_packs")
public Set<String> getUpgradePacks() {
return upgradePacks;
}
+
+
+ /**
+ * Interface to help correct Swagger documentation generation
+ */
+ public interface StackVersionResponseSwagger extends ApiModel {
+ @ApiModelProperty(name = "Versions")
+ public StackVersionResponse getStackVersionResponse();
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/ThemeResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ThemeResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ThemeResponse.java
new file mode 100644
index 0000000..5822b58
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ThemeResponse.java
@@ -0,0 +1,56 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ * <p>
+ * http://www.apache.org/licenses/LICENSE-2.0
+ * <p>
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.controller;
+
+
+import org.apache.ambari.server.state.theme.Theme;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Response schema for endpoint {@link org.apache.ambari.server.api.services.StacksService#getStackService(String,
+ * javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.UriInfo, String, String, String)}
+ */
+public interface ThemeResponse extends ApiModel {
+
+ @ApiModelProperty(name = "ThemeInfo")
+ ThemeInfoResponse getThemeInfo();
+
+
+ interface ThemeInfoResponse {
+ @ApiModelProperty(name = "default")
+ boolean isDefault();
+
+ @ApiModelProperty(name = "file_name")
+ String getFileName();
+
+ @ApiModelProperty(name = "service_name")
+ String getServiceName();
+
+ @ApiModelProperty(name = "stack_name")
+ String getStackName();
+
+ @ApiModelProperty(name = "stack_version")
+ String getStackVersion();
+
+ @ApiModelProperty(name = "theme_data")
+ Theme getThemeData();
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/ViewInstanceResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ViewInstanceResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ViewInstanceResponse.java
index d0a5206..b17d7d5 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/controller/ViewInstanceResponse.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ViewInstanceResponse.java
@@ -1,4 +1,4 @@
-/**
+ /**
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/QuickLinksConfigurationInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/QuickLinksConfigurationInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/QuickLinksConfigurationInfo.java
index d4bdce8..dfcb91c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/QuickLinksConfigurationInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/QuickLinksConfigurationInfo.java
@@ -24,13 +24,16 @@ import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlTransient;
+import org.apache.ambari.server.controller.ApiModel;
import org.apache.ambari.server.state.quicklinks.QuickLinks;
+import io.swagger.annotations.ApiModelProperty;
+
/**
* Wrapper for quickLinksConfiguration description
*/
@XmlAccessorType(XmlAccessType.FIELD)
-public class QuickLinksConfigurationInfo {
+public class QuickLinksConfigurationInfo implements ApiModel {
private String fileName;
@XmlElement(name = "default")
@@ -61,6 +64,7 @@ public class QuickLinksConfigurationInfo {
'}';
}
+ @ApiModelProperty(name = "file_name")
public String getFileName() {
return fileName;
}
@@ -69,6 +73,7 @@ public class QuickLinksConfigurationInfo {
this.fileName = fileName;
}
+ @ApiModelProperty(name = "default")
public Boolean getIsDefault() {
return isDefault;
}
@@ -77,6 +82,7 @@ public class QuickLinksConfigurationInfo {
this.isDefault = isDefault;
}
+ @ApiModelProperty(hidden = true)
public Boolean isDeleted() {
return deleted;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
index 353dd86..24c2d94 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/StackInfo.java
@@ -41,7 +41,7 @@ import com.google.common.collect.ListMultimap;
import com.google.common.collect.Multimaps;
import com.google.common.io.Files;
-public class StackInfo implements Comparable<StackInfo>, Validable{
+public class StackInfo implements Comparable<StackInfo>, Validable {
private String minJdk;
private String maxJdk;
private String name;
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/ValueAttributesInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ValueAttributesInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ValueAttributesInfo.java
index c41cd9a..f5387a0 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ValueAttributesInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ValueAttributesInfo.java
@@ -26,12 +26,29 @@ import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlElementWrapper;
import javax.xml.bind.annotation.XmlElements;
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
+
@XmlAccessorType(XmlAccessType.FIELD)
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-public class ValueAttributesInfo {
+public class ValueAttributesInfo implements ApiModel {
+ public static final String EMPTY_VALUE_VALID = "empty-value-valid";
+ public static final String UI_ONLY_PROPERTY = "ui-only-property";
+ public static final String READ_ONLY = "read-only";
+ public static final String EDITABLE_ONLY_AT_INSTALL = "editable-only-at-install";
+ public static final String SHOW_PROPERTY_NAME = "show-property-name";
+ public static final String INCREMENT_STEP = "increment-step";
+ public static final String SELECTION_CARDINALITY = "selection_cardinality";
+ public static final String PROPERTY_FILE_NAME = "property-file-name";
+ public static final String PROPERTY_FILE_TYPE = "property-file-type";
+ public static final String ENTRIES = "entries";
+ public static final String HIDDEN = "hidden";
+ public static final String ENTRIES_EDITABLE = "entries_editable";
+ public static final String USER_GROUPS = "user-groups";
+ public static final String KEYSTORE = "keystore";
private String type;
private String maximum;
private String minimum;
@@ -41,63 +58,64 @@ public class ValueAttributesInfo {
private Boolean overridable;
private String copy;
- @XmlElement(name = "empty-value-valid")
- @JsonProperty("empty_value_valid")
+ @XmlElement(name = EMPTY_VALUE_VALID)
+ @JsonProperty(EMPTY_VALUE_VALID)
private Boolean emptyValueValid;
- @XmlElement(name = "ui-only-property")
- @JsonProperty("ui_only_property")
+ @XmlElement(name = UI_ONLY_PROPERTY)
+ @JsonProperty(UI_ONLY_PROPERTY)
private Boolean uiOnlyProperty;
- @XmlElement(name = "read-only")
- @JsonProperty("read_only")
+ @XmlElement(name = READ_ONLY)
+ @JsonProperty(READ_ONLY)
private Boolean readOnly;
- @XmlElement(name = "editable-only-at-install")
- @JsonProperty("editable_only_at_install")
+ @XmlElement(name = EDITABLE_ONLY_AT_INSTALL)
+ @JsonProperty(EDITABLE_ONLY_AT_INSTALL)
private Boolean editableOnlyAtInstall;
- @XmlElement(name = "show-property-name")
- @JsonProperty("show_property_name")
+ @XmlElement(name = SHOW_PROPERTY_NAME)
+ @JsonProperty(SHOW_PROPERTY_NAME)
private Boolean showPropertyName;
- @XmlElement(name = "increment-step")
- @JsonProperty("increment_step")
+ @XmlElement(name = INCREMENT_STEP)
+ @JsonProperty(INCREMENT_STEP)
private String incrementStep;
- @XmlElementWrapper(name = "entries")
+ @XmlElementWrapper(name = ENTRIES)
@XmlElements(@XmlElement(name = "entry"))
private Collection<ValueEntryInfo> entries;
- @XmlElement(name = "hidden")
+ @XmlElement(name = HIDDEN)
private String hidden;
- @XmlElement(name = "entries_editable")
+ @XmlElement(name = ENTRIES_EDITABLE)
private Boolean entriesEditable;
- @XmlElement(name = "selection-cardinality")
- @JsonProperty("selection_cardinality")
+ @XmlElement(name = SELECTION_CARDINALITY)
+ @JsonProperty(SELECTION_CARDINALITY)
private String selectionCardinality;
- @XmlElement(name = "property-file-name")
- @JsonProperty("property-file-name")
+ @XmlElement(name = PROPERTY_FILE_NAME)
+ @JsonProperty(PROPERTY_FILE_NAME)
private String propertyFileName;
- @XmlElement(name = "property-file-type")
- @JsonProperty("property-file-type")
+ @XmlElement(name = PROPERTY_FILE_TYPE)
+ @JsonProperty(PROPERTY_FILE_TYPE)
private String propertyFileType;
- @XmlElementWrapper(name = "user-groups")
+ @XmlElementWrapper(name = USER_GROUPS)
@XmlElements(@XmlElement(name = "property"))
private Collection<UserGroupInfo> userGroupEntries;
- @XmlElement(name = "keystore")
+ @XmlElement(name = KEYSTORE)
private boolean keyStore;
public ValueAttributesInfo() {
}
+ @ApiModelProperty(name = "type")
public String getType() {
return type;
}
@@ -106,6 +124,7 @@ public class ValueAttributesInfo {
this.type = type;
}
+ @ApiModelProperty(name = "maximum")
public String getMaximum() {
return maximum;
}
@@ -114,6 +133,7 @@ public class ValueAttributesInfo {
this.maximum = maximum;
}
+ @ApiModelProperty(name = "minimum")
public String getMinimum() {
return minimum;
}
@@ -122,6 +142,7 @@ public class ValueAttributesInfo {
this.minimum = minimum;
}
+ @ApiModelProperty(name = "unit")
public String getUnit() {
return unit;
}
@@ -130,6 +151,7 @@ public class ValueAttributesInfo {
this.unit = unit;
}
+ @ApiModelProperty(name = ENTRIES)
public Collection<ValueEntryInfo> getEntries() {
return entries;
}
@@ -138,6 +160,7 @@ public class ValueAttributesInfo {
this.entries = entries;
}
+ @ApiModelProperty(name = "user-group-entries")
public Collection<UserGroupInfo> getUserGroupEntries() {
return userGroupEntries;
}
@@ -146,6 +169,7 @@ public class ValueAttributesInfo {
this.userGroupEntries = userGroupEntries;
}
+ @ApiModelProperty(name = HIDDEN)
public String getHidden() {
return hidden;
}
@@ -154,6 +178,7 @@ public class ValueAttributesInfo {
this.hidden = hidden;
}
+ @ApiModelProperty(name = ENTRIES_EDITABLE)
public Boolean getEntriesEditable() {
return entriesEditable;
}
@@ -162,6 +187,7 @@ public class ValueAttributesInfo {
this.entriesEditable = entriesEditable;
}
+ @ApiModelProperty(name = SELECTION_CARDINALITY)
public String getSelectionCardinality() {
return selectionCardinality;
}
@@ -170,6 +196,7 @@ public class ValueAttributesInfo {
this.selectionCardinality = selectionCardinality;
}
+ @ApiModelProperty(name = PROPERTY_FILE_NAME)
public String getPropertyFileName() {
return propertyFileName;
}
@@ -178,6 +205,7 @@ public class ValueAttributesInfo {
this.propertyFileName = propertyFileName;
}
+ @ApiModelProperty(name = PROPERTY_FILE_TYPE)
public String getPropertyFileType() {
return propertyFileType;
}
@@ -186,6 +214,7 @@ public class ValueAttributesInfo {
this.propertyFileType = propertyFileType;
}
+ @ApiModelProperty(name = INCREMENT_STEP)
public String getIncrementStep() {
return incrementStep;
}
@@ -194,6 +223,7 @@ public class ValueAttributesInfo {
this.incrementStep = incrementStep;
}
+ @ApiModelProperty(name = "delete")
public String getDelete() {
return delete;
}
@@ -202,6 +232,7 @@ public class ValueAttributesInfo {
this.delete = delete;
}
+ @ApiModelProperty(name = EMPTY_VALUE_VALID)
public Boolean getEmptyValueValid() {
return emptyValueValid;
}
@@ -210,6 +241,7 @@ public class ValueAttributesInfo {
this.emptyValueValid = isEmptyValueValid;
}
+ @ApiModelProperty(name = "visible")
public Boolean getVisible() {
return visible;
}
@@ -218,6 +250,7 @@ public class ValueAttributesInfo {
this.visible = isVisible;
}
+ @ApiModelProperty(name = READ_ONLY)
public Boolean getReadOnly() {
return readOnly;
}
@@ -226,6 +259,7 @@ public class ValueAttributesInfo {
this.readOnly = isReadOnly;
}
+ @ApiModelProperty(name = EDITABLE_ONLY_AT_INSTALL)
public Boolean getEditableOnlyAtInstall() {
return editableOnlyAtInstall;
}
@@ -234,6 +268,7 @@ public class ValueAttributesInfo {
this.editableOnlyAtInstall = isEditableOnlyAtInstall;
}
+ @ApiModelProperty(name = "overridable")
public Boolean getOverridable() {
return overridable;
}
@@ -242,6 +277,7 @@ public class ValueAttributesInfo {
this.overridable = isOverridable;
}
+ @ApiModelProperty(name = SHOW_PROPERTY_NAME)
public Boolean getShowPropertyName() {
return showPropertyName;
}
@@ -250,6 +286,7 @@ public class ValueAttributesInfo {
this.showPropertyName = isPropertyNameVisible;
}
+ @ApiModelProperty(name = UI_ONLY_PROPERTY)
public Boolean getUiOnlyProperty() {
return uiOnlyProperty;
}
@@ -258,6 +295,7 @@ public class ValueAttributesInfo {
this.uiOnlyProperty = isUiOnlyProperty;
}
+ @ApiModelProperty(name = "copy")
public String getCopy() {
return copy;
}
@@ -273,6 +311,7 @@ public class ValueAttributesInfo {
*
* @return "true", "false"
*/
+ @ApiModelProperty(name = KEYSTORE)
public boolean isKeyStore() {
return keyStore;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/ValueEntryInfo.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/ValueEntryInfo.java b/ambari-server/src/main/java/org/apache/ambari/server/state/ValueEntryInfo.java
index 7824933..5974529 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/ValueEntryInfo.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/ValueEntryInfo.java
@@ -21,16 +21,20 @@ package org.apache.ambari.server.state;
import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
+
@XmlAccessorType(XmlAccessType.FIELD)
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
-public class ValueEntryInfo {
+public class ValueEntryInfo implements ApiModel {
private String value;
private String label;
private String description;
+ @ApiModelProperty(name = "value")
public String getValue() {
return value;
}
@@ -39,6 +43,7 @@ public class ValueEntryInfo {
this.value = value;
}
+ @ApiModelProperty(name = "label")
public String getLabel() {
return label;
}
@@ -47,6 +52,7 @@ public class ValueEntryInfo {
this.label = label;
}
+ @ApiModelProperty(name = "description")
public String getDescription() {
return description;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigCondition.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigCondition.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigCondition.java
index a28d149..b47dfcc 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigCondition.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigCondition.java
@@ -20,14 +20,17 @@ package org.apache.ambari.server.state.theme;
import java.util.List;
+import org.apache.ambari.server.controller.ApiModel;
import org.apache.ambari.server.state.ValueAttributesInfo;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
+
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class ConfigCondition {
+public class ConfigCondition implements ApiModel {
@JsonProperty("configs")
private List<String> configs;
@JsonProperty("resource")
@@ -39,6 +42,7 @@ public class ConfigCondition {
@JsonProperty("else")
private ConfigConditionResult elseLabel;
+ @ApiModelProperty( name = "configs")
public List<String> getConfigs() {
return configs;
}
@@ -47,6 +51,7 @@ public class ConfigCondition {
this.configs = configs;
}
+ @ApiModelProperty( name = "if")
public String getIfLabel() {
return ifLabel;
}
@@ -55,6 +60,7 @@ public class ConfigCondition {
this.ifLabel = ifLabel;
}
+ @ApiModelProperty( name = "then")
public ConfigConditionResult getThen() {
return then;
}
@@ -63,6 +69,7 @@ public class ConfigCondition {
this.then = then;
}
+ @ApiModelProperty( name = "else")
public ConfigConditionResult getElseLabel() {
return elseLabel;
}
@@ -72,6 +79,7 @@ public class ConfigCondition {
}
+ @ApiModelProperty( name = "resource")
public String getResource() {
return resource;
}
@@ -82,10 +90,11 @@ public class ConfigCondition {
@JsonSerialize(include = JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
- public static class ConfigConditionResult {
+ public static class ConfigConditionResult implements ApiModel {
@JsonProperty("property_value_attributes")
private ValueAttributesInfo propertyValueAttributes;
+ @ApiModelProperty( name = "property_value_attributes")
public ValueAttributesInfo getPropertyValueAttributes() {
return propertyValueAttributes;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigPlacement.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigPlacement.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigPlacement.java
index 3bb8c77..94db995 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigPlacement.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ConfigPlacement.java
@@ -25,23 +25,31 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
+
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class ConfigPlacement {
- @JsonProperty("config")
+ private static final String PROPERTY_VALUE_ATTRIBUTES = "property_value_attributes";
+ private static final String CONFIG = "config";
+ private static final String SUBSECTION_NAME = "subsection-name";
+ private static final String SUBSECTION_TAB_NAME = "subsection-tab-name";
+ private static final String DEPENDS_ON = "depends-on";
+
+ @JsonProperty(CONFIG)
private String config;
- @JsonProperty("subsection-name")
+ @JsonProperty(SUBSECTION_NAME)
private String subsectionName;
- @JsonProperty("subsection-tab-name")
+ @JsonProperty(SUBSECTION_TAB_NAME)
private String subsectionTabName;
- @JsonProperty("property_value_attributes")
+ @JsonProperty(PROPERTY_VALUE_ATTRIBUTES)
private ValueAttributesInfo propertyValueAttributes;
- @JsonProperty("depends-on")
+ @JsonProperty(DEPENDS_ON)
private List<ConfigCondition> dependsOn;
-
+ @ApiModelProperty(name = CONFIG)
public String getConfig() {
return config;
}
@@ -50,6 +58,7 @@ public class ConfigPlacement {
this.config = config;
}
+ @ApiModelProperty(name = SUBSECTION_NAME)
public String getSubsectionName() {
return subsectionName;
}
@@ -58,6 +67,7 @@ public class ConfigPlacement {
this.subsectionName = subsectionName;
}
+ @ApiModelProperty(name = SUBSECTION_TAB_NAME)
public String getSubsectionTabName() {
return subsectionTabName;
}
@@ -66,6 +76,7 @@ public class ConfigPlacement {
this.subsectionTabName = subsectionTabName;
}
+ @ApiModelProperty(name = PROPERTY_VALUE_ATTRIBUTES)
public ValueAttributesInfo getPropertyValueAttributes() {
return propertyValueAttributes;
}
@@ -74,6 +85,7 @@ public class ConfigPlacement {
this.propertyValueAttributes = propertyValueAttributes;
}
+ @ApiModelProperty(name = DEPENDS_ON)
public List<ConfigCondition> getDependsOn() {
return dependsOn;
}
@@ -82,6 +94,7 @@ public class ConfigPlacement {
this.dependsOn = dependsOn;
}
+ @ApiModelProperty(name = "removed")
public boolean isRemoved() {
return subsectionName == null;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Layout.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Layout.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Layout.java
index 840dbf0..672b540 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Layout.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Layout.java
@@ -28,15 +28,19 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class Layout{
+
@JsonProperty("name")
private String name;
+
@JsonProperty("tabs")
private List<Tab> tabs;
+ @ApiModelProperty(name = "name")
public String getName() {
return name;
}
@@ -45,6 +49,7 @@ public class Layout{
this.name = name;
}
+ @ApiModelProperty(name = "tabs")
public List<Tab> getTabs() {
return tabs;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Section.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Section.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Section.java
index 43d2170..cfc5396 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Section.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Section.java
@@ -24,33 +24,45 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class Section {
+public class Section implements ApiModel {
+
@JsonProperty("subsections")
private List<Subsection> subsections;
+
@JsonProperty("display-name")
private String displayName;
+
@JsonProperty("row-index")
private String rowIndex;
+
@JsonProperty("section-rows")
private String sectionRows;
+
@JsonProperty("name")
private String name;
+
@JsonProperty("column-span")
private String columnSpan;
+
@JsonProperty("section-columns")
private String sectionColumns;
+
@JsonProperty("column-index")
private String columnIndex;
+
@JsonProperty("row-span")
private String rowSpan;
+ @ApiModelProperty(name = "subsections")
public List<Subsection> getSubsections() {
return subsections;
}
@@ -59,6 +71,7 @@ public class Section {
this.subsections = subsections;
}
+ @ApiModelProperty(name = "display-name")
public String getDisplayName() {
return displayName;
}
@@ -67,6 +80,7 @@ public class Section {
this.displayName = displayName;
}
+ @ApiModelProperty(name = "row-index")
public String getRowIndex() {
return rowIndex;
}
@@ -75,6 +89,7 @@ public class Section {
this.rowIndex = rowIndex;
}
+ @ApiModelProperty(name = "section-rows")
public String getSectionRows() {
return sectionRows;
}
@@ -83,6 +98,7 @@ public class Section {
this.sectionRows = sectionRows;
}
+ @ApiModelProperty(name = "name")
public String getName() {
return name;
}
@@ -91,6 +107,7 @@ public class Section {
this.name = name;
}
+ @ApiModelProperty(name = "column-span")
public String getColumnSpan() {
return columnSpan;
}
@@ -103,10 +120,12 @@ public class Section {
return sectionColumns;
}
+ @ApiModelProperty(name = "section-columns")
public void setSectionColumns(String sectionColumns) {
this.sectionColumns = sectionColumns;
}
+ @ApiModelProperty(name = "column-index")
public String getColumnIndex() {
return columnIndex;
}
@@ -115,6 +134,7 @@ public class Section {
this.columnIndex = columnIndex;
}
+ @ApiModelProperty(name = "row-span")
public String getRowSpan() {
return rowSpan;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
index 62fbfc1..eb94f57 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Subsection.java
@@ -18,13 +18,13 @@
package org.apache.ambari.server.state.theme;
-
import java.util.List;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
@@ -51,6 +51,7 @@ public class Subsection {
private List<SubsectionTab> subsectionTabs;
+ @ApiModelProperty( name = "row-index")
public String getRowIndex() {
return rowIndex;
}
@@ -59,6 +60,7 @@ public class Subsection {
this.rowIndex = rowIndex;
}
+ @ApiModelProperty( name = "name")
public String getName() {
return name;
}
@@ -67,6 +69,7 @@ public class Subsection {
this.name = name;
}
+ @ApiModelProperty( name = "column-span")
public String getColumnSpan() {
return columnSpan;
}
@@ -75,6 +78,7 @@ public class Subsection {
this.columnSpan = columnSpan;
}
+ @ApiModelProperty( name = "row-span")
public String getRowSpan() {
return rowSpan;
}
@@ -83,6 +87,7 @@ public class Subsection {
this.rowSpan = rowSpan;
}
+ @ApiModelProperty( name = "column-index")
public String getColumnIndex() {
return columnIndex;
}
@@ -91,6 +96,7 @@ public class Subsection {
this.columnIndex = columnIndex;
}
+ @ApiModelProperty( name = "display-name")
public String getDisplayName() {
return displayName;
}
@@ -99,6 +105,7 @@ public class Subsection {
this.displayName = displayName;
}
+ @ApiModelProperty( name = "border")
public String getBorder() {
return border;
}
@@ -107,6 +114,7 @@ public class Subsection {
this.border = border;
}
+ @ApiModelProperty( name = "left-vertical-splitter")
public Boolean getLeftVerticalSplitter() {
return leftVerticalSplitter;
}
@@ -115,6 +123,7 @@ public class Subsection {
this.leftVerticalSplitter = leftVerticalSplitter;
}
+ @ApiModelProperty( name = "depends-on")
public List<ConfigCondition> getDependsOn() {
return dependsOn;
}
@@ -123,6 +132,7 @@ public class Subsection {
this.dependsOn = dependsOn;
}
+ @ApiModelProperty( name = "subsection-tab")
public List<SubsectionTab> getSubsectionTabs() {
return subsectionTabs;
}
@@ -131,6 +141,7 @@ public class Subsection {
this.subsectionTabs = subsectionTabs;
}
+ @ApiModelProperty( name = "removed")
public boolean isRemoved() {
return rowIndex == null && rowSpan == null && columnIndex == null && columnSpan == null && dependsOn == null && subsectionTabs == null;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Tab.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Tab.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Tab.java
index b949a12..1d1d60c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Tab.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Tab.java
@@ -18,23 +18,27 @@
package org.apache.ambari.server.state.theme;
-
-
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class Tab {
+public class Tab implements ApiModel {
+
@JsonProperty("display-name")
private String displayName;
+
@JsonProperty("name")
private String name;
+
@JsonProperty("layout")
private TabLayout tabLayout;
+ @ApiModelProperty(name = "display-name")
public String getDisplayName() {
return displayName;
}
@@ -43,6 +47,7 @@ public class Tab {
this.displayName = displayName;
}
+ @ApiModelProperty(name = "name")
public String getName() {
return name;
}
@@ -51,6 +56,7 @@ public class Tab {
this.name = name;
}
+ @ApiModelProperty(name = "layout")
public TabLayout getTabLayout() {
return tabLayout;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/TabLayout.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/TabLayout.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/TabLayout.java
index f7d4187..bbf8bb8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/TabLayout.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/TabLayout.java
@@ -18,7 +18,6 @@
package org.apache.ambari.server.state.theme;
-
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
@@ -28,17 +27,22 @@ import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
public class TabLayout {
+
@JsonProperty("tab-rows")
private String tabRows;
+
@JsonProperty("sections")
private List<Section> sections;
+
@JsonProperty("tab-columns")
private String tabColumns;
+ @ApiModelProperty(name = "tab-rows")
public String getTabRows() {
return tabRows;
}
@@ -47,6 +51,7 @@ public class TabLayout {
this.tabRows = tabRows;
}
+ @ApiModelProperty(name = "sections")
public List<Section> getSections() {
return sections;
}
@@ -55,6 +60,7 @@ public class TabLayout {
this.sections = sections;
}
+ @ApiModelProperty(name = "tab-columns")
public String getTabColumns() {
return tabColumns;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Theme.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Theme.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Theme.java
index 96d2fc0..1217230 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Theme.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Theme.java
@@ -18,14 +18,16 @@
package org.apache.ambari.server.state.theme;
-
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
+
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class Theme{
+public class Theme implements ApiModel{
@JsonProperty("description")
private String description;
@JsonProperty("name")
@@ -33,6 +35,7 @@ public class Theme{
@JsonProperty("configuration")
private ThemeConfiguration themeConfiguration;
+ @ApiModelProperty(name = "description")
public String getDescription() {
return description;
}
@@ -41,6 +44,7 @@ public class Theme{
this.description = description;
}
+ @ApiModelProperty(name = "name")
public String getName() {
return name;
}
@@ -49,6 +53,7 @@ public class Theme{
this.name = name;
}
+ @ApiModelProperty(name ="configuration")
public ThemeConfiguration getThemeConfiguration() {
return themeConfiguration;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ThemeConfiguration.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ThemeConfiguration.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ThemeConfiguration.java
index 58fe942..f264b0a 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ThemeConfiguration.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/ThemeConfiguration.java
@@ -18,27 +18,31 @@
package org.apache.ambari.server.state.theme;
-
import java.util.ArrayList;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class ThemeConfiguration{
+public class ThemeConfiguration implements ApiModel {
@JsonProperty("placement")
private Placement placement;
+
@JsonProperty("widgets")
private List<WidgetEntry> widgets;
+
@JsonProperty("layouts")
private List<Layout> layouts;
+ @ApiModelProperty(name = "placement")
public Placement getPlacement() {
return placement;
}
@@ -47,6 +51,7 @@ public class ThemeConfiguration{
this.placement = placement;
}
+ @ApiModelProperty(name = "widgets")
public List<WidgetEntry> getWidgets() {
return widgets;
}
@@ -55,6 +60,7 @@ public class ThemeConfiguration{
this.widgets = widgets;
}
+ @ApiModelProperty(name = "layouts")
public List<Layout> getLayouts() {
return layouts;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Unit.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Unit.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Unit.java
index 7bd058c..953939c 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Unit.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Unit.java
@@ -18,18 +18,21 @@
package org.apache.ambari.server.state.theme;
-
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class Unit {
+public class Unit implements ApiModel {
+
@JsonProperty("unit-name")
private String unitName;
+ @ApiModelProperty(name = "unit-name")
public String getUnitName() {
return unitName;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Widget.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Widget.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Widget.java
index 1f38d8e..73bd138 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Widget.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/Widget.java
@@ -18,27 +18,32 @@
package org.apache.ambari.server.state.theme;
-
import java.util.List;
import java.util.Map;
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include=JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class Widget{
+public class Widget implements ApiModel {
@JsonProperty("type")
private String type;
+
@JsonProperty("units")
private List<Unit> units;
+
@JsonProperty("required-properties")
private Map<String,String> requiredProperties;
+
@JsonProperty("display-name")
private String displayName;
+ @ApiModelProperty(name = "type")
public String getType() {
return type;
}
@@ -47,6 +52,7 @@ public class Widget{
this.type = type;
}
+ @ApiModelProperty(name = "units")
public List<Unit> getUnits() {
return units;
}
@@ -55,6 +61,7 @@ public class Widget{
this.units = units;
}
+ @ApiModelProperty(name = "required-properties")
public Map<String, String> getRequiredProperties() {
return requiredProperties;
}
@@ -63,6 +70,7 @@ public class Widget{
this.requiredProperties = requiredProperties;
}
+ @ApiModelProperty(name = "display-name")
public String getDisplayName() {
return displayName;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/state/theme/WidgetEntry.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/WidgetEntry.java b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/WidgetEntry.java
index 9e9c068..6aac03f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/state/theme/WidgetEntry.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/state/theme/WidgetEntry.java
@@ -18,21 +18,23 @@
package org.apache.ambari.server.state.theme;
-
-
+import org.apache.ambari.server.controller.ApiModel;
import org.codehaus.jackson.annotate.JsonIgnoreProperties;
import org.codehaus.jackson.annotate.JsonProperty;
import org.codehaus.jackson.map.annotate.JsonSerialize;
+import io.swagger.annotations.ApiModelProperty;
@JsonSerialize(include= JsonSerialize.Inclusion.NON_NULL)
@JsonIgnoreProperties(ignoreUnknown = true)
-public class WidgetEntry {
+public class WidgetEntry implements ApiModel {
@JsonProperty("config")
private String config;
+
@JsonProperty("widget")
private Widget widget;
+ @ApiModelProperty(name = "config")
public String getConfig() {
return config;
}
@@ -41,6 +43,7 @@ public class WidgetEntry {
this.config = config;
}
+ @ApiModelProperty(name = "widget")
public Widget getWidget() {
return widget;
}
[2/2] ambari git commit: AMBARI-20970. Integrate StackService
resource with swagger (Balazs Bence Sari via adoroszlai)
Posted by ad...@apache.org.
AMBARI-20970. Integrate StackService resource with swagger (Balazs Bence Sari via adoroszlai)
Project: http://git-wip-us.apache.org/repos/asf/ambari/repo
Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/54983ee3
Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/54983ee3
Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/54983ee3
Branch: refs/heads/ambari-rest-api-explorer
Commit: 54983ee3b8980e3f1e35a7859d4e759eb17fac87
Parents: 0e13b01
Author: Balazs Bence Sari <bs...@hortonworks.com>
Authored: Wed May 10 17:14:08 2017 +0200
Committer: Attila Doroszlai <ad...@hortonworks.com>
Committed: Wed May 10 17:14:08 2017 +0200
----------------------------------------------------------------------
.../ambari/server/api/services/BaseService.java | 25 +-
.../ambari/server/api/services/HostService.java | 96 +--
.../server/api/services/StacksService.java | 730 ++++++++++++++++---
.../server/api/services/users/UserService.java | 2 +-
.../api/services/views/ViewInstanceService.java | 2 +-
.../controller/ComponentDependencyResponse.java | 64 ++
.../controller/ExtensionLinkResponse.java | 137 ++--
.../server/controller/QuickLinksResponse.java | 56 ++
.../controller/StackArtifactResponse.java | 52 ++
.../StackConfigurationDependencyResponse.java | 17 +
.../controller/StackConfigurationResponse.java | 26 +-
.../ambari/server/controller/StackResponse.java | 12 +
.../StackServiceArtifactResponse.java | 53 ++
.../StackServiceComponentResponse.java | 27 +
.../server/controller/StackServiceResponse.java | 31 +-
.../server/controller/StackVersionResponse.java | 59 +-
.../ambari/server/controller/ThemeResponse.java | 56 ++
.../server/controller/ViewInstanceResponse.java | 2 +-
.../state/QuickLinksConfigurationInfo.java | 8 +-
.../apache/ambari/server/state/StackInfo.java | 2 +-
.../server/state/ValueAttributesInfo.java | 87 ++-
.../ambari/server/state/ValueEntryInfo.java | 8 +-
.../server/state/theme/ConfigCondition.java | 13 +-
.../server/state/theme/ConfigPlacement.java | 25 +-
.../ambari/server/state/theme/Layout.java | 5 +
.../ambari/server/state/theme/Section.java | 22 +-
.../ambari/server/state/theme/Subsection.java | 13 +-
.../apache/ambari/server/state/theme/Tab.java | 12 +-
.../ambari/server/state/theme/TabLayout.java | 8 +-
.../apache/ambari/server/state/theme/Theme.java | 9 +-
.../server/state/theme/ThemeConfiguration.java | 10 +-
.../apache/ambari/server/state/theme/Unit.java | 7 +-
.../ambari/server/state/theme/Widget.java | 12 +-
.../ambari/server/state/theme/WidgetEntry.java | 9 +-
34 files changed, 1397 insertions(+), 300 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java
index 76d2b70..0b2afd1 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/BaseService.java
@@ -49,14 +49,15 @@ import org.slf4j.LoggerFactory;
public abstract class BaseService {
public final static MediaType MEDIA_TYPE_TEXT_CSV_TYPE = new MediaType("text", "csv");
- static final String SUCCESSFUL_OPERATION = "Successful operation";
- static final String REQUEST_ACCEPTED = "Request is accepted, but not completely processed yet";
- static final String INVALID_ARGUMENTS = "Invalid arguments";
- static final String CLUSTER_NOT_FOUND = "Cluster not found";
- static final String CLUSTER_OR_HOST_NOT_FOUND = "Cluster or host not found";
- static final String NOT_AUTHENTICATED = "Not authenticated";
- static final String PERMISSION_DENIED = "Not permitted to perform the operation";
- static final String SERVER_ERROR = "Internal server error";
+ static final String MSG_SUCCESSFUL_OPERATION = "Successful operation";
+ static final String MSG_REQUEST_ACCEPTED = "Request is accepted, but not completely processed yet";
+ static final String MSG_INVALID_ARGUMENTS = "Invalid arguments";
+ static final String MSG_CLUSTER_NOT_FOUND = "Cluster not found";
+ static final String MSG_CLUSTER_OR_HOST_NOT_FOUND = "Cluster or host not found";
+ static final String MSG_NOT_AUTHENTICATED = "Not authenticated";
+ static final String MSG_PERMISSION_DENIED = "Not permitted to perform the operation";
+ static final String MSG_SERVER_ERROR = "Internal server error";
+ static final String MSG_RESOURCE_NOT_FOUND = "The requested resource doesn't exist.";
static final String QUERY_FIELDS = "fields";
static final String QUERY_FILTER_DESCRIPTION = "Filter fields in the response (identifier fields are mandatory)";
@@ -67,7 +68,6 @@ public abstract class BaseService {
static final String DEFAULT_PAGE_SIZE = "10";
static final String QUERY_FROM = "from";
static final String QUERY_FROM_DESCRIPTION = "The starting page resource (inclusive). \"start\" is also accepted.";
- static final String QUERY_FROM_TYPE = "integer";
static final String QUERY_FROM_VALUES = "range[0, infinity]";
static final String DEFAULT_FROM = "0";
static final String QUERY_TO = "to";
@@ -75,6 +75,13 @@ public abstract class BaseService {
static final String QUERY_TO_TYPE = "integer";
static final String QUERY_TO_VALUES = "range[1, infinity]";
+ static final String RESPONSE_CONTAINER_LIST = "List";
+
+ static final String DATA_TYPE_INT = "integer";
+ static final String DATA_TYPE_STRING = "string";
+
+ static final String PARAM_TYPE_QUERY = "query";
+
/**
* Logger instance.
*/
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java
index 7b5f9cf..e50d70f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/HostService.java
@@ -95,11 +95,11 @@ public class HostService extends BaseService {
@ApiImplicitParam(name = QUERY_FIELDS, value = QUERY_FILTER_DESCRIPTION, dataType = "string", paramType = "query"),
})
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_OR_HOST_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response getHost(String body, @Context HttpHeaders headers, @Context UriInfo ui,
@ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName
@@ -123,15 +123,15 @@ public class HostService extends BaseService {
@ApiImplicitParam(name = QUERY_FIELDS, value = QUERY_FILTER_DESCRIPTION, defaultValue = "Hosts/*", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = QUERY_SORT, value = QUERY_SORT_DESCRIPTION, defaultValue = "Hosts/host_name.asc", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = "integer", paramType = "query"),
- @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, allowableValues = QUERY_FROM_VALUES, defaultValue = DEFAULT_FROM, dataType = QUERY_FROM_TYPE, paramType = "query"),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, allowableValues = QUERY_FROM_VALUES, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_INT, paramType = "query"),
@ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, allowableValues = QUERY_TO_VALUES, dataType = QUERY_TO_TYPE, paramType = "query"),
})
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_NOT_FOUND),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response getHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
return handleRequest(headers, body, ui, Request.Type.GET,
@@ -156,14 +156,14 @@ public class HostService extends BaseService {
@ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body", allowMultiple = true)
})
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_CREATED, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED),
+ @ApiResponse(code = HttpStatus.SC_CREATED, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = MSG_REQUEST_ACCEPTED),
@ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = UNKNOWN_HOSTS),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_NOT_FOUND),
@ApiResponse(code = HttpStatus.SC_CONFLICT, message = HOST_ALREADY_EXISTS),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response createHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
return handleRequest(headers, body, ui, Request.Type.POST,
@@ -189,14 +189,14 @@ public class HostService extends BaseService {
@ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body")
})
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_CREATED, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED),
- @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = INVALID_ARGUMENTS),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_CREATED, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = MSG_REQUEST_ACCEPTED),
+ @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = MSG_INVALID_ARGUMENTS),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_NOT_FOUND),
@ApiResponse(code = HttpStatus.SC_CONFLICT, message = HOST_ALREADY_EXISTS),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response createHost(String body, @Context HttpHeaders headers, @Context UriInfo ui,
@ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName
@@ -224,13 +224,13 @@ public class HostService extends BaseService {
@ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body")
})
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED),
- @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = INVALID_ARGUMENTS),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = MSG_REQUEST_ACCEPTED),
+ @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = MSG_INVALID_ARGUMENTS),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_OR_HOST_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response updateHost(String body, @Context HttpHeaders headers, @Context UriInfo ui,
@ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName
@@ -256,13 +256,13 @@ public class HostService extends BaseService {
@ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body", allowMultiple = true)
})
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = REQUEST_ACCEPTED),
- @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = INVALID_ARGUMENTS),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_ACCEPTED, message = MSG_REQUEST_ACCEPTED),
+ @ApiResponse(code = HttpStatus.SC_BAD_REQUEST, message = MSG_INVALID_ARGUMENTS),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_OR_HOST_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response updateHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
return handleRequest(headers, body, ui, Request.Type.PUT,
@@ -284,11 +284,11 @@ public class HostService extends BaseService {
@Produces("text/plain")
@ApiOperation(value = "Deletes a host")
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_OR_HOST_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response deleteHost(@Context HttpHeaders headers, @Context UriInfo ui,
@ApiParam(value = "host name", required = true) @PathParam("hostName") String hostName
@@ -304,11 +304,11 @@ public class HostService extends BaseService {
@ApiImplicitParam(dataType = HOST_REQUEST_TYPE, paramType = "body", allowMultiple = true)
})
@ApiResponses({
- @ApiResponse(code = HttpStatus.SC_OK, message = SUCCESSFUL_OPERATION),
- @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = CLUSTER_OR_HOST_NOT_FOUND),
- @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = NOT_AUTHENTICATED),
- @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = PERMISSION_DENIED),
- @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = SERVER_ERROR),
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_CLUSTER_OR_HOST_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_UNAUTHORIZED, message = MSG_NOT_AUTHENTICATED),
+ @ApiResponse(code = HttpStatus.SC_FORBIDDEN, message = MSG_PERMISSION_DENIED),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR),
})
public Response deleteHosts(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
return handleRequest(headers, body, ui, Request.Type.DELETE,
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/api/services/StacksService.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/StacksService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/StacksService.java
index 86bacf1..465cacd 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/StacksService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/StacksService.java
@@ -28,32 +28,79 @@ import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.HttpHeaders;
+import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.UriInfo;
import org.apache.ambari.server.api.resources.ResourceInstance;
+import org.apache.ambari.server.controller.ComponentDependencyResponse;
+import org.apache.ambari.server.controller.ExtensionLinkResponse;
+import org.apache.ambari.server.controller.QuickLinksResponse;
+import org.apache.ambari.server.controller.StackArtifactResponse;
+import org.apache.ambari.server.controller.StackConfigurationDependencyResponse;
+import org.apache.ambari.server.controller.StackConfigurationResponse;
+import org.apache.ambari.server.controller.StackResponse;
+import org.apache.ambari.server.controller.StackServiceArtifactResponse;
+import org.apache.ambari.server.controller.StackServiceComponentResponse;
+import org.apache.ambari.server.controller.StackServiceResponse;
+import org.apache.ambari.server.controller.StackVersionResponse;
+import org.apache.ambari.server.controller.ThemeResponse;
import org.apache.ambari.server.controller.spi.Resource;
+import org.apache.http.HttpStatus;
+
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.ApiResponse;
+import io.swagger.annotations.ApiResponses;
+
-/**
- * Service for stacks management.
- */
@Path("/stacks/")
+@Api(value = "Stacks", description = "Endpoint for stack specific operations")
public class StacksService extends BaseService {
@GET
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all stacks",
+ nickname = "StacksService#getStacks",
+ notes = "Returns all stacks.",
+ response = StackResponse.StackResponseSwagger.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter stack details", defaultValue = "Stacks/stack_name", dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort stack privileges (asc | desc)", defaultValue = "Stacks/stack_name.asc", dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStacks(String body, @Context HttpHeaders headers, @Context UriInfo ui) {
-
return handleRequest(headers, body, ui, Request.Type.GET,
createStackResource(null));
}
@GET
@Path("{stackName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get a stack", nickname = "StacksService#getStack", notes = "Returns stack details.",
+ response = StackResponse.StackResponseSwagger.class, responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter stack details",
+ defaultValue = "Stacks/*", dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStack(String body, @Context HttpHeaders headers,
@Context UriInfo ui,
- @PathParam("stackName") String stackName) {
+ @ApiParam @PathParam("stackName") String stackName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackResource(stackName));
@@ -61,10 +108,32 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all versions for a stacks",
+ nickname = "StacksService#getStackVersions",
+ notes = "Returns all versions for a stack.",
+ response = StackVersionResponse.StackVersionResponseSwagger.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter stack version details",
+ defaultValue = "Versions/stack_name,Versions/stack_version",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort stack privileges (asc | desc)",
+ defaultValue = "Versions/stack_name.asc,Versions/stack_version.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackVersions(String body,
@Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackVersionResource(stackName, null));
@@ -72,11 +141,25 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get details for a stack version",
+ nickname = "StacksService#getStackVersion",
+ notes = "Returns the details for a stack version.",
+ response = StackVersionResponse.StackVersionResponseSwagger.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter stack version details",
+ defaultValue = "Versions/*", dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackVersion(String body,
@Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackVersionResource(stackName, stackVersion));
@@ -84,22 +167,78 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/links")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get extension links for a stack version",
+ nickname = "StacksService#getStackVersionLinks",
+ notes = "Returns the extension links for a stack version.",
+ response = ExtensionLinkResponse.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter extension link attributes",
+ defaultValue = "ExtensionLink/link_id," +
+ "ExtensionLink/stack_name," +
+ "ExtensionLink/stack_version," +
+ "ExtensionLink/extension_name," +
+ "ExtensionLink/extension_version", dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort extension links (asc | desc)",
+ defaultValue = "ExtensionLink/link_id.asc," +
+ "ExtensionLink/stack_name.asc," +
+ "ExtensionLink/stack_version.asc," +
+ "ExtensionLink/extension_name.asc," +
+ "ExtensionLink/extension_version.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackVersionLinks(String body,
@Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion) {
-
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
return handleRequest(headers, body, ui, Request.Type.GET,
createExtensionLinkResource(stackName, stackVersion, null, null));
}
@GET
@Path("{stackName}/versions/{stackVersion}/configurations")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all configurations for a stack version",
+ nickname = "StacksService#getStackLevelConfigurations",
+ notes = "Returns all configurations for a stack version.",
+ response = StackConfigurationResponse.StackConfigurationResponseSwagger.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackLevelConfigurations/stack_name," +
+ "StackLevelConfigurations/stack_version," +
+ "StackLevelConfigurations/property_name",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort configuration (asc | desc)",
+ defaultValue = "StackLevelConfigurations/stack_name.asc," +
+ "StackLevelConfigurations/stack_version.asc," +
+ "StackLevelConfigurations/property_name.asc ",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackLevelConfigurations(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackLevelConfigurationsResource(stackName, stackVersion, null));
@@ -107,24 +246,64 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/configurations/{propertyName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get configuration details for a given property",
+ nickname = "StacksService#getStackLevelConfiguration",
+ notes = "Returns the configuration details for a given property.",
+ response = StackConfigurationResponse.StackConfigurationResponseSwagger.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackLevelConfigurations/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackLevelConfiguration(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("propertyName") String propertyName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("propertyName") String propertyName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackLevelConfigurationsResource(stackName, stackVersion, propertyName));
}
-
@GET
@Path("{stackName}/versions/{stackVersion}/services")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all services for a stack version",
+ nickname = "StacksService#getStackServices",
+ notes = "Returns all services for a stack version.",
+ response = StackServiceResponse.StackServiceResponseSwagger.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackServices/stack_name," +
+ "StackServices/stack_version," +
+ "StackServices/service_name",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort stack services (asc | desc)",
+ defaultValue = "StackServices/stack_name.asc," +
+ "StackServices/stack_version.asc," +
+ "StackServices/service_name.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackServices(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceResource(stackName, stackVersion, null));
@@ -132,11 +311,26 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get stack service details",
+ nickname = "StacksService#getStackService",
+ notes = "Returns the details of a stack service.",
+ response = StackServiceResponse.StackServiceResponseSwagger.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackServices/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackService(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceResource(stackName, stackVersion, serviceName));
@@ -144,10 +338,28 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/artifacts")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all stack artifacts",
+ nickname = "StacksService#getStackArtifacts",
+ notes = "Returns all stack artifacts (e.g: kerberos descriptor, metrics descriptor)",
+ response = StackArtifactResponse.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "Artifacts/artifact_name," +
+ "Artifacts/stack_name," +
+ "Artifacts/stack_version",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackArtifacts(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackArtifactsResource(stackName, stackVersion, null));
@@ -155,23 +367,62 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/artifacts/{artifactName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get stack artifact details",
+ nickname = "StacksService#getStackArtifact",
+ notes = "Returns the details of a stack artifact",
+ response = StackArtifactResponse.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "Artifacts/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackArtifact(String body, @Context HttpHeaders headers,
@Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("artifactName") String artifactName) {
-
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("artifactName") String artifactName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackArtifactsResource(stackName, stackVersion, artifactName));
}
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/artifacts")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all artifacts for a stack service",
+ nickname = "StacksService#getStackServiceArtifacts",
+ notes = "Returns all stack service artifacts",
+ response = StackServiceArtifactResponse.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "Artifacts/artifact_name," +
+ "Artifacts/stack_name," +
+ "Artifacts/stack_version",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort service artifacts (asc | desc)",
+ defaultValue = "Artifacts/artifact_name.asc," +
+ "Artifacts/stack_name.asc," +
+ "Artifacts/stack_version.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackServiceArtifacts(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceArtifactsResource(stackName, stackVersion, serviceName, null));
@@ -179,11 +430,39 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/themes")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all themes for a stack service",
+ nickname = "StacksService#getStackServiceThemes",
+ notes = "Returns all stack themes",
+ response = ThemeResponse.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "ThemeInfo/file_name," +
+ "ThemeInfo/service_name," +
+ "ThemeInfo/stack_name," +
+ "ThemeInfo/stack_version",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort service artifacts (asc | desc)",
+ defaultValue = "ThemeInfo/file_name.asc," +
+ "ThemeInfo/service_name.asc," +
+ "ThemeInfo/stack_name.asc," +
+ "ThemeInfo/stack_version.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackServiceThemes(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceThemesResource(stackName, stackVersion, serviceName, null));
@@ -191,12 +470,27 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/themes/{themeName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get theme details for a stack service",
+ nickname = "StacksService#getStackServiceTheme",
+ notes = "Returns stack service theme details.",
+ response = ThemeResponse.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "ThemeInfo/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackServiceTheme(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("themeName") String themeName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("themeName") String themeName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceThemesResource(stackName, stackVersion, serviceName, themeName));
@@ -204,11 +498,39 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/quicklinks")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all quicklinks configurations for a stack service",
+ nickname = "StacksService#getStackServiceQuickLinksConfigurations",
+ notes = "Returns all quicklinks configurations for a stack service.",
+ response = QuickLinksResponse.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "QuickLinkInfo/file_name," +
+ "QuickLinkInfo/service_name," +
+ "QuickLinkInfo/stack_name," +
+ "QuickLinkInfo/stack_version",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort quick links (asc | desc)",
+ defaultValue = "QuickLinkInfo/file_name.asc," +
+ "QuickLinkInfo/service_name.asc," +
+ "QuickLinkInfo/stack_name.asc," +
+ "QuickLinkInfo/stack_version.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackServiceQuickLinksConfigurations(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceQuickLinksResource(stackName, stackVersion, serviceName, null));
@@ -216,12 +538,28 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/quicklinks/{quickLinksConfigurationName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get quicklinks configuration details",
+ nickname = "StacksService#getStackServiceQuickLinksConfiguration",
+ notes = "Returns the details of a quicklinks configuration.",
+ response = QuickLinksResponse.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "QuickLinkInfo/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackServiceQuickLinksConfiguration(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("quickLinksConfigurationName") String quickLinksConfigurationName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("quickLinksConfigurationName") String quickLinksConfigurationName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceQuickLinksResource(stackName, stackVersion, serviceName, quickLinksConfigurationName));
@@ -229,12 +567,28 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/artifacts/{artifactName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get stack service artifact details",
+ nickname = "StacksService#getStackServiceArtifact",
+ notes = "Returns the details of a stack service artifact.",
+ response = StackArtifactResponse.class
+ )
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "Artifacts/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackServiceArtifact(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("artifactName") String artifactName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("artifactName") String artifactName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceArtifactsResource(stackName, stackVersion, serviceName, artifactName));
@@ -242,12 +596,40 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/configurations")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all configurations for a stack service",
+ nickname = "StacksService#getStackConfigurations",
+ notes = "Returns all configurations for a stack service.",
+ response = StackConfigurationResponse.StackConfigurationResponseSwagger.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackConfigurations/property_name," +
+ "StackConfigurations/service_name," +
+ "StackConfigurations/stack_name" +
+ "StackConfigurations/stack_version",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort service configurations (asc | desc)",
+ defaultValue = "StackConfigurations/property_name.asc," +
+ "StackConfigurations/service_name.asc," +
+ "StackConfigurations/stack_name.asc" +
+ "StackConfigurations/stack_version.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackConfigurations(String body,
@Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackConfigurationResource(stackName, stackVersion, serviceName, null));
@@ -256,25 +638,69 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/configurations/{propertyName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get stack service configuration details",
+ nickname = "StacksService#getStackConfiguration",
+ notes = "Returns the details of a stack service configuration.",
+ response = StackConfigurationResponse.StackConfigurationResponseSwagger.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackConfigurations/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackConfiguration(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("propertyName") String propertyName) {
-
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("propertyName") String propertyName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackConfigurationResource(stackName, stackVersion, serviceName, propertyName));
}
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/configurations/{propertyName}/dependencies")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all dependencies for a stack service configuration",
+ nickname = "StacksService#getStackConfigurationDependencies",
+ notes = "Returns all dependencies for a stack service configuration.",
+ response = StackConfigurationDependencyResponse.StackConfigurationDependencyResponseSwagger.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackConfigurationDependency/stack_name," +
+ "StackConfigurationDependency/stack_version," +
+ "StackConfigurationDependency/service_name," +
+ "StackConfigurationDependency/property_name," +
+ "StackConfigurationDependency/dependency_name",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort configuration dependencies (asc | desc)",
+ defaultValue = "StackConfigurationDependency/stack_name.asc," +
+ "StackConfigurationDependency/stack_version.asc," +
+ "StackConfigurationDependency/service_name.asc," +
+ "StackConfigurationDependency/property_name.asc," +
+ "StackConfigurationDependency/dependency_name.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getStackConfigurationDependencies(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("propertyName") String propertyName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("propertyName") String propertyName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackConfigurationDependencyResource(stackName, stackVersion, serviceName, propertyName));
@@ -282,12 +708,40 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all components for a stack service",
+ nickname = "StacksService#getServiceComponents",
+ notes = "Returns all components for a stack service.",
+ response = StackServiceComponentResponse.StackServiceComponentResponseSwagger.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackServiceComponents/component_name," +
+ "StackServiceComponents/service_name," +
+ "StackServiceComponents/stack_name," +
+ "StackServiceComponents/stack_version",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort service components (asc | desc)",
+ defaultValue = "StackServiceComponents/component_name.asc," +
+ "StackServiceComponents/service_name.asc," +
+ "StackServiceComponents/stack_name.asc," +
+ "StackServiceComponents/stack_version.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getServiceComponents(String body,
@Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceComponentResource(stackName, stackVersion, serviceName, null));
@@ -295,12 +749,42 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components/{componentName}/dependencies")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get all dependencies for a stack service component",
+ nickname = "StacksService#getServiceComponentDependencies",
+ notes = "Returns all dependencies for a stack service component.",
+ response = ComponentDependencyResponse.class,
+ responseContainer = RESPONSE_CONTAINER_LIST)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "Dependencies/stack_name," +
+ "Dependencies/stack_version," +
+ "Dependencies/dependent_service_name," +
+ "Dependencies/dependent_component_name," +
+ "Dependencies/component_name",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_SORT, value = "Sort component dependencies (asc | desc)",
+ defaultValue = "Dependencies/stack_name.asc," +
+ "Dependencies/stack_version.asc," +
+ "Dependencies/dependent_service_name.asc," +
+ "Dependencies/dependent_component_name.asc," +
+ "Dependencies/component_name.asc",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_PAGE_SIZE, value = QUERY_PAGE_SIZE_DESCRIPTION, defaultValue = DEFAULT_PAGE_SIZE, dataType = DATA_TYPE_INT, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_FROM, value = QUERY_FROM_DESCRIPTION, defaultValue = DEFAULT_FROM, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY),
+ @ApiImplicitParam(name = QUERY_TO, value = QUERY_TO_DESCRIPTION, dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getServiceComponentDependencies(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("componentName") String componentName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("componentName") String componentName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceComponentDependencyResource(stackName, stackVersion, serviceName, componentName, null));
@@ -308,13 +792,29 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components/{componentName}/dependencies/{dependencyName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get a stack service component dependency",
+ nickname = "StacksService#getServiceComponentDependency",
+ notes = "Returns a stack service component dependency.",
+ response = ComponentDependencyResponse.class
+ )
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "Dependencies/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getServiceComponentDependency(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("componentName") String componentName,
- @PathParam("dependencyName") String dependencyName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("componentName") String componentName,
+ @ApiParam @PathParam("dependencyName") String dependencyName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceComponentDependencyResource(stackName, stackVersion, serviceName, componentName, dependencyName));
@@ -322,12 +822,27 @@ public class StacksService extends BaseService {
@GET
@Path("{stackName}/versions/{stackVersion}/services/{serviceName}/components/{componentName}")
- @Produces("text/plain")
+ @Produces(MediaType.TEXT_PLAIN)
+ @ApiOperation(value = "Get details for a stack service component",
+ nickname = "StacksService#getServiceComponent",
+ notes = "Returns details for a stack service component.",
+ response = StackServiceComponentResponse.StackServiceComponentResponseSwagger.class)
+ @ApiImplicitParams({
+ @ApiImplicitParam(name = QUERY_FIELDS, value = "Filter returned attributes",
+ defaultValue = "StackServiceComponents/*",
+ dataType = DATA_TYPE_STRING, paramType = PARAM_TYPE_QUERY)
+ })
+ @ApiResponses(value = {
+ @ApiResponse(code = HttpStatus.SC_OK, message = MSG_SUCCESSFUL_OPERATION),
+ @ApiResponse(code = HttpStatus.SC_NOT_FOUND, message = MSG_RESOURCE_NOT_FOUND),
+ @ApiResponse(code = HttpStatus.SC_INTERNAL_SERVER_ERROR, message = MSG_SERVER_ERROR)
+ })
public Response getServiceComponent(String body, @Context HttpHeaders headers,
- @Context UriInfo ui, @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion,
- @PathParam("serviceName") String serviceName,
- @PathParam("componentName") String componentName) {
+ @Context UriInfo ui,
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion,
+ @ApiParam @PathParam("serviceName") String serviceName,
+ @ApiParam @PathParam("componentName") String componentName) {
return handleRequest(headers, body, ui, Request.Type.GET,
createStackServiceComponentResource(stackName, stackVersion, serviceName, componentName));
@@ -340,8 +855,10 @@ public class StacksService extends BaseService {
* @param stackVersion stack version
* @return operating system service
*/
+ // TODO: find a way to handle this with Swagger (refactor or custom annotation?)
@Path("{stackName}/versions/{stackVersion}/operating_systems")
- public OperatingSystemService getOperatingSystemsHandler(@PathParam("stackName") String stackName, @PathParam("stackVersion") String stackVersion) {
+ public OperatingSystemService getOperatingSystemsHandler(@ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
final Map<Resource.Type, String> stackProperties = new HashMap<>();
stackProperties.put(Resource.Type.Stack, stackName);
stackProperties.put(Resource.Type.StackVersion, stackVersion);
@@ -355,8 +872,10 @@ public class StacksService extends BaseService {
* @param stackVersion stack version
* @return repository version service
*/
+ // TODO: find a way to handle this with Swagger (refactor or custom annotation?)
@Path("{stackName}/versions/{stackVersion}/repository_versions")
- public RepositoryVersionService getRepositoryVersionHandler(@PathParam("stackName") String stackName, @PathParam("stackVersion") String stackVersion) {
+ public RepositoryVersionService getRepositoryVersionHandler(@ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
final Map<Resource.Type, String> stackProperties = new HashMap<>();
stackProperties.put(Resource.Type.Stack, stackName);
stackProperties.put(Resource.Type.StackVersion, stackVersion);
@@ -370,10 +889,11 @@ public class StacksService extends BaseService {
* @param stackVersion stack version
* @return repository version service
*/
+ // TODO: find a way to handle this with Swagger (refactor or custom annotation?)
@Path("{stackName}/versions/{stackVersion}/compatible_repository_versions")
public CompatibleRepositoryVersionService getCompatibleRepositoryVersionHandler(
- @PathParam("stackName") String stackName,
- @PathParam("stackVersion") String stackVersion) {
+ @ApiParam @PathParam("stackName") String stackName,
+ @ApiParam @PathParam("stackVersion") String stackVersion) {
final Map<Resource.Type, String> stackProperties = new HashMap<>();
stackProperties.put(Resource.Type.Stack, stackName);
stackProperties.put(Resource.Type.StackVersion, stackVersion);
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/api/services/users/UserService.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/users/UserService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/users/UserService.java
index 47515c9..81f8ab8 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/users/UserService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/users/UserService.java
@@ -61,7 +61,7 @@ public class UserService extends BaseService {
@ApiOperation(value = "Get all users", nickname = "UserService#getUsers", notes = "Returns details of all users.", response = UserResponse.class, responseContainer = "List")
@ApiImplicitParams({
@ApiImplicitParam(name = "fields", value = "Filter user details", defaultValue = "Users/*", dataType = "string", paramType = "query"),
- @ApiImplicitParam(name = "sortBy", value = "Sort users (asc | desc)", defaultValue = "Users/user_name.desc", dataType = "string", paramType = "query"),
+ @ApiImplicitParam(name = "sortBy", value = "Sort users (asc | desc)", defaultValue = "Users/user_name.asc", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "page_size", value = "The number of resources to be returned for the paged response.", defaultValue = "10", dataType = "integer", paramType = "query"),
@ApiImplicitParam(name = "from", value = "The starting page resource (inclusive). Valid values are :offset | \"start\"", defaultValue = "0", dataType = "string", paramType = "query"),
@ApiImplicitParam(name = "to", value = "The ending page resource (inclusive). Valid values are :offset | \"end\"", dataType = "string", paramType = "query")
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/api/services/views/ViewInstanceService.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/api/services/views/ViewInstanceService.java b/ambari-server/src/main/java/org/apache/ambari/server/api/services/views/ViewInstanceService.java
index 8e87e6f..08e0e9f 100644
--- a/ambari-server/src/main/java/org/apache/ambari/server/api/services/views/ViewInstanceService.java
+++ b/ambari-server/src/main/java/org/apache/ambari/server/api/services/views/ViewInstanceService.java
@@ -139,7 +139,7 @@ public class ViewInstanceService extends BaseService {
@Produces("text/plain")
@ApiOperation(value = "Create view instance", nickname = "ViewInstanceService#createService", notes = "Creates view instance resource.")
@ApiImplicitParams({
- @ApiImplicitParam(name = "body", value = "input parameters in json form", required = true, dataType = "org.apache.ambari.server.controller.ViewInstanceRequest", paramType = "body")
+ @ApiImplicitParam(name = "body", value = "input parameters in json form", required = true, dataType = "org.apache.ambari.server.controller.ViewInstanceRequest", paramType = "body")
})
@ApiResponses(value = {
@ApiResponse(code = 200, message = "Successful operation"),
http://git-wip-us.apache.org/repos/asf/ambari/blob/54983ee3/ambari-server/src/main/java/org/apache/ambari/server/controller/ComponentDependencyResponse.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/main/java/org/apache/ambari/server/controller/ComponentDependencyResponse.java b/ambari-server/src/main/java/org/apache/ambari/server/controller/ComponentDependencyResponse.java
new file mode 100644
index 0000000..0795919
--- /dev/null
+++ b/ambari-server/src/main/java/org/apache/ambari/server/controller/ComponentDependencyResponse.java
@@ -0,0 +1,64 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.ambari.server.controller;
+
+import java.util.List;
+
+import org.apache.ambari.server.state.DependencyConditionInfo;
+
+import io.swagger.annotations.ApiModelProperty;
+
+/**
+ * Response schema for endpoint {@link org.apache.ambari.server.api.services.StacksService#getServiceComponentDependency(
+ * String, javax.ws.rs.core.HttpHeaders, javax.ws.rs.core.UriInfo, String, String, String, String, String)}
+
+ * The interface is not actually implemented, it only carries swagger annotations.
+ */
+public interface ComponentDependencyResponse extends ApiModel{
+
+ @ApiModelProperty(name = "Dependencies")
+ public ComponentDependencyResponseInfo getDependencyResponseInfo();
+
+ public interface ComponentDependencyResponseInfo {
+ @ApiModelProperty(name = "component_name")
+ public String getComponentName();
+
+ @ApiModelProperty(name = "conditions")
+ public List<DependencyConditionInfo> getDependencyConditions();
+
+ @ApiModelProperty(name = "dependent_component_name")
+ public String getDependentComponentName();
+
+ @ApiModelProperty(name = "dependent_service_name")
+ public String getDependentServiceName();
+
+ @ApiModelProperty(name = "scope")
+ public String getScope();
+
+ @ApiModelProperty(name = "service_name")
+ public String getServiceName();
+
+ @ApiModelProperty(name = "stack_name")
+ public String getStackName();
+
+ @ApiModelProperty(name = "stack_version")
+ public String getStackVersion();
+ }
+
+}