/** * Copyright 2015-2016 Red Hat, Inc, and individual contributors. * * Licensed 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.wildfly.swarm.swagger; import org.jboss.shrinkwrap.api.Assignable; /** * @author Lance Ball */ public interface SwaggerArchive extends Assignable { String SWAGGER_CONFIGURATION_PATH = "META-INF/swarm.swagger.conf"; SwaggerArchive setResourcePackages(String... packages); /** * Sets the title of the application being exposed by swagger.json * * @param title the application's title * @return this */ SwaggerArchive setTitle(String title); /** * Sets the description for the application being exposed by swagger.json * * @param description the description * @return this */ SwaggerArchive setDescription(String description); /** * Sets the url to be displayed for the application's term's of service * * @param url the URL string * @return this */ SwaggerArchive setTermsOfServiceUrl(String url); /** * Sets the contact information for the application * * @param info The contact information string * @return this */ SwaggerArchive setContact(String info); /** * Sets the license of the application. * * @param license the license text * @return this */ SwaggerArchive setLicense(String license); /** * Sets the license URL for this application * * @param licenseUrl the license URL as a string * @return this */ SwaggerArchive setLicenseUrl(String licenseUrl); /** * Sets the version of the API being exposed for this application * * @param version the version string * @return this */ SwaggerArchive setVersion(String version); /** * Sets the schemes for the for the API URLs (http, https) * * @param schemes One or more strings. Valid values are 'http' and 'https' * @return this */ SwaggerArchive setSchemes(String... schemes); /** * Sets the addressable host name and port for the API URLs. * Does not include the schemes nor context root. * * @param host the host name * @return this */ SwaggerArchive setHost(String host); /** * Sets the context root, or base path for the API calls. * * @param root the context root * @return this */ SwaggerArchive setContextRoot(String root); /** * Determine if the archive has a context root configured * * @return true if the context root has been configured */ boolean hasContextRoot(); /** * Sets whether the swagger.json will be pretty printed. * * @param prettyPrint if true swagger.json will be pretty printed * @return this */ SwaggerArchive setPrettyPrint(boolean prettyPrint); /** * Determine if the archive has been configured for scanning * * @return true if the packages to be scanned have been configured */ boolean hasResourcePackages(); String[] getResourcePackages(); }