From f5f13c4f6b6fe3b4d98e349dfd7db59339803436 Mon Sep 17 00:00:00 2001 From: Michael Lando Date: Sun, 19 Feb 2017 12:35:04 +0200 Subject: push addional code Change-Id: Ia427bb3460cda3a896f8faced2de69eaf3807b74 Signed-off-by: Michael Lando --- .../action_library_client/action_library_client.py | 704 + .../scripts/action_library_client/doc/TESTPLAN.TXT | 10 + .../test/scenarios/Backout.json | 45 + .../test/scenarios/Copy_image.json | 45 + .../test/scenarios/Healthcheck.json | 45 + .../test/scenarios/Reboot.json | 45 + .../scripts/action_library_client/test/seq.txt | 1 + .../test/test_action_library_client.py | 154 + .../test/test_action_library_client_integration.py | 329 + .../tools/build/scripts/cassandra-commands.json | 76 + .../generate-application-config-insert-cql.sh | 64 + .../build/scripts/generate-cassandra-alter-cql.sh | 40 + .../build/scripts/generate-cassandra-drop-cql.sh | 40 + .../build/scripts/generate-cassandra-init-cql.sh | 44 + openecomp-be/tools/build/scripts/parse-json.py | 83 + .../database/monitoring/component/ceilometer.ftl | 67 + .../schemaTemplates/composition/component.ftl | 28 + .../schemaTemplates/composition/network.ftl | 25 + .../database/schemaTemplates/composition/nic.ftl | 36 + .../schemaTemplates/questionnaire/component.ftl | 327 + .../database/schemaTemplates/questionnaire/nic.ftl | 120 + .../database/schemaTemplates/questionnaire/vsp.ftl | 89 + openecomp-be/tools/migration/1607_to_1610.py | 281 + openecomp-be/tools/migration/README | 88 + openecomp-be/tools/scripts/generate-manifest.py | 435 + .../tools/swagger-ui/WEB-INF/jetty-web.xml | 8 + openecomp-be/tools/swagger-ui/api-docs/api.html | 13140 ++++++++ openecomp-be/tools/swagger-ui/api-docs/api.json | 4676 +++ openecomp-be/tools/swagger-ui/assembly/swagger.xml | 76 + openecomp-be/tools/swagger-ui/css/ncso-style.css | 8659 +++++ openecomp-be/tools/swagger-ui/css/print.css | 1175 + openecomp-be/tools/swagger-ui/css/reset.css | 125 + openecomp-be/tools/swagger-ui/css/screen.css | 1282 + openecomp-be/tools/swagger-ui/css/style.css | 250 + openecomp-be/tools/swagger-ui/css/typography.css | 26 + .../swagger-ui/fonts/droid-sans-v6-latin-700.eot | Bin 0 -> 22922 bytes .../swagger-ui/fonts/droid-sans-v6-latin-700.svg | 411 + .../swagger-ui/fonts/droid-sans-v6-latin-700.ttf | Bin 0 -> 40513 bytes .../swagger-ui/fonts/droid-sans-v6-latin-700.woff | Bin 0 -> 25992 bytes .../swagger-ui/fonts/droid-sans-v6-latin-700.woff2 | Bin 0 -> 11480 bytes .../fonts/droid-sans-v6-latin-regular.eot | Bin 0 -> 22008 bytes .../fonts/droid-sans-v6-latin-regular.svg | 403 + .../fonts/droid-sans-v6-latin-regular.ttf | Bin 0 -> 39069 bytes .../fonts/droid-sans-v6-latin-regular.woff | Bin 0 -> 24868 bytes .../fonts/droid-sans-v6-latin-regular.woff2 | Bin 0 -> 11304 bytes openecomp-be/tools/swagger-ui/images/Thumbs.db | Bin 0 -> 6656 bytes .../tools/swagger-ui/images/explorer_icons.png | Bin 0 -> 5763 bytes .../tools/swagger-ui/images/favicon-16x16.png | Bin 0 -> 645 bytes .../tools/swagger-ui/images/favicon-32x32.png | Bin 0 -> 1654 bytes openecomp-be/tools/swagger-ui/images/favicon.ico | Bin 0 -> 1150 bytes .../tools/swagger-ui/images/logo_small.png | Bin 0 -> 770 bytes .../tools/swagger-ui/images/pet_store_api.png | Bin 0 -> 824 bytes openecomp-be/tools/swagger-ui/images/throbber.gif | Bin 0 -> 9257 bytes .../tools/swagger-ui/images/wordnik_api.png | Bin 0 -> 980 bytes openecomp-be/tools/swagger-ui/index.html | 328 + openecomp-be/tools/swagger-ui/lang/en.js | 73 + openecomp-be/tools/swagger-ui/lang/es.js | 72 + openecomp-be/tools/swagger-ui/lang/ja.js | 73 + openecomp-be/tools/swagger-ui/lang/pt.js | 73 + openecomp-be/tools/swagger-ui/lang/ru.js | 72 + openecomp-be/tools/swagger-ui/lang/tr.js | 73 + openecomp-be/tools/swagger-ui/lang/translator.js | 59 + openecomp-be/tools/swagger-ui/lang/zh-cn.js | 73 + openecomp-be/tools/swagger-ui/lib/backbone-min.js | 35 + .../tools/swagger-ui/lib/handlebars-2.0.0.js | 48 + .../tools/swagger-ui/lib/highlight.7.3.pack.js | 21 + .../tools/swagger-ui/lib/jquery-1.8.0.min.js | 22 + .../tools/swagger-ui/lib/jquery.ba-bbq.min.js | 38 + .../tools/swagger-ui/lib/jquery.slideto.min.js | 21 + .../tools/swagger-ui/lib/jquery.wiggle.min.js | 28 + openecomp-be/tools/swagger-ui/lib/marked.js | 1292 + openecomp-be/tools/swagger-ui/lib/swagger-oauth.js | 310 + .../tools/swagger-ui/lib/underscore-min.js | 26 + .../tools/swagger-ui/lib/underscore-min.map | 1 + openecomp-be/tools/swagger-ui/o2c.html | 20 + openecomp-be/tools/swagger-ui/pom.xml | 77 + openecomp-be/tools/swagger-ui/swagger-ui.js | 32311 +++++++++++++++++++ openecomp-be/tools/swagger-ui/swagger-ui.min.js | 32 + openecomp-be/tools/test.push | 1 + 79 files changed, 68631 insertions(+) create mode 100644 openecomp-be/tools/build/scripts/action_library_client/action_library_client.py create mode 100644 openecomp-be/tools/build/scripts/action_library_client/doc/TESTPLAN.TXT create mode 100644 openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Backout.json create mode 100644 openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Copy_image.json create mode 100644 openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Healthcheck.json create mode 100644 openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Reboot.json create mode 100644 openecomp-be/tools/build/scripts/action_library_client/test/seq.txt create mode 100644 openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client.py create mode 100644 openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client_integration.py create mode 100644 openecomp-be/tools/build/scripts/cassandra-commands.json create mode 100644 openecomp-be/tools/build/scripts/generate-application-config-insert-cql.sh create mode 100644 openecomp-be/tools/build/scripts/generate-cassandra-alter-cql.sh create mode 100644 openecomp-be/tools/build/scripts/generate-cassandra-drop-cql.sh create mode 100644 openecomp-be/tools/build/scripts/generate-cassandra-init-cql.sh create mode 100644 openecomp-be/tools/build/scripts/parse-json.py create mode 100644 openecomp-be/tools/install/database/monitoring/component/ceilometer.ftl create mode 100644 openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl create mode 100644 openecomp-be/tools/install/database/schemaTemplates/composition/network.ftl create mode 100644 openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl create mode 100644 openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl create mode 100644 openecomp-be/tools/install/database/schemaTemplates/questionnaire/nic.ftl create mode 100644 openecomp-be/tools/install/database/schemaTemplates/questionnaire/vsp.ftl create mode 100644 openecomp-be/tools/migration/1607_to_1610.py create mode 100644 openecomp-be/tools/migration/README create mode 100644 openecomp-be/tools/scripts/generate-manifest.py create mode 100644 openecomp-be/tools/swagger-ui/WEB-INF/jetty-web.xml create mode 100644 openecomp-be/tools/swagger-ui/api-docs/api.html create mode 100644 openecomp-be/tools/swagger-ui/api-docs/api.json create mode 100644 openecomp-be/tools/swagger-ui/assembly/swagger.xml create mode 100644 openecomp-be/tools/swagger-ui/css/ncso-style.css create mode 100644 openecomp-be/tools/swagger-ui/css/print.css create mode 100644 openecomp-be/tools/swagger-ui/css/reset.css create mode 100644 openecomp-be/tools/swagger-ui/css/screen.css create mode 100644 openecomp-be/tools/swagger-ui/css/style.css create mode 100644 openecomp-be/tools/swagger-ui/css/typography.css create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.eot create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.svg create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.ttf create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff2 create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.eot create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.svg create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.ttf create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff create mode 100644 openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff2 create mode 100644 openecomp-be/tools/swagger-ui/images/Thumbs.db create mode 100644 openecomp-be/tools/swagger-ui/images/explorer_icons.png create mode 100644 openecomp-be/tools/swagger-ui/images/favicon-16x16.png create mode 100644 openecomp-be/tools/swagger-ui/images/favicon-32x32.png create mode 100644 openecomp-be/tools/swagger-ui/images/favicon.ico create mode 100644 openecomp-be/tools/swagger-ui/images/logo_small.png create mode 100644 openecomp-be/tools/swagger-ui/images/pet_store_api.png create mode 100644 openecomp-be/tools/swagger-ui/images/throbber.gif create mode 100644 openecomp-be/tools/swagger-ui/images/wordnik_api.png create mode 100644 openecomp-be/tools/swagger-ui/index.html create mode 100644 openecomp-be/tools/swagger-ui/lang/en.js create mode 100644 openecomp-be/tools/swagger-ui/lang/es.js create mode 100644 openecomp-be/tools/swagger-ui/lang/ja.js create mode 100644 openecomp-be/tools/swagger-ui/lang/pt.js create mode 100644 openecomp-be/tools/swagger-ui/lang/ru.js create mode 100644 openecomp-be/tools/swagger-ui/lang/tr.js create mode 100644 openecomp-be/tools/swagger-ui/lang/translator.js create mode 100644 openecomp-be/tools/swagger-ui/lang/zh-cn.js create mode 100644 openecomp-be/tools/swagger-ui/lib/backbone-min.js create mode 100644 openecomp-be/tools/swagger-ui/lib/handlebars-2.0.0.js create mode 100644 openecomp-be/tools/swagger-ui/lib/highlight.7.3.pack.js create mode 100644 openecomp-be/tools/swagger-ui/lib/jquery-1.8.0.min.js create mode 100644 openecomp-be/tools/swagger-ui/lib/jquery.ba-bbq.min.js create mode 100644 openecomp-be/tools/swagger-ui/lib/jquery.slideto.min.js create mode 100644 openecomp-be/tools/swagger-ui/lib/jquery.wiggle.min.js create mode 100644 openecomp-be/tools/swagger-ui/lib/marked.js create mode 100644 openecomp-be/tools/swagger-ui/lib/swagger-oauth.js create mode 100644 openecomp-be/tools/swagger-ui/lib/underscore-min.js create mode 100644 openecomp-be/tools/swagger-ui/lib/underscore-min.map create mode 100644 openecomp-be/tools/swagger-ui/o2c.html create mode 100644 openecomp-be/tools/swagger-ui/pom.xml create mode 100644 openecomp-be/tools/swagger-ui/swagger-ui.js create mode 100644 openecomp-be/tools/swagger-ui/swagger-ui.min.js create mode 100644 openecomp-be/tools/test.push (limited to 'openecomp-be/tools') diff --git a/openecomp-be/tools/build/scripts/action_library_client/action_library_client.py b/openecomp-be/tools/build/scripts/action_library_client/action_library_client.py new file mode 100644 index 0000000000..7d6e32e4a8 --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/action_library_client.py @@ -0,0 +1,704 @@ +#!/usr/bin/python + +############################################################################## +# +# action_library_client.py +# +# A command-line client for the SDC Action Library. +# +# +# Usage: +# +# Usage: action_library_client.py [--help] [--url ] [--in ] +# [--out ] [--config ] +# [--log ] [--uuid ] +# [--curl] [--dryrun] [--verbose] [--version] +# [--list | --create | --update= | --delete | +# --checkout | --undocheckout | --checkin | --submit] +# +# Optional arguments: +# --help Show this help message and exit +# --url REST endpoint URL +# --in Path to JSON input file (else STDIN) +# --out Path to JSON output file (else STDOUT or logfile) +# --config Path to configuration file +# --log Path to logfile (else STDOUT) +# --uuid Action UUID, (=='actionInvariantUUID') +# --curl Use curl transport impl +# --dryrun Describe what will happen, execute nothing +# --verbose Verbose diagnostic output +# --version Print script version and exit +# --list List actions +# --create Create new action (requires --in) +# --update Update existing action (requires --uuid, --in) +# --delete Delete existing action (requires --uuid) +# --checkout Create minor version candidate (requires --uuid) +# --undocheckout Discard minor version candidate (requires --uuid) +# --checkin Create minor version from candidate (requires --uuid) +# --submit Create next major version (requires --uuid) +# +# For example: +# +# ./action_library_client.py --url http://10.147.97.199:8080 --list +# +# Output: +# - Return values: +# - 0 - OK +# - 1 - GENERAL_ERROR +# - 2 - ARGUMENTS_ERROR +# - 3 - HTTP_FORBIDDEN_ERROR +# - 4 - HTTP_BAD_REQUEST_ERROR +# - 5 - HTTP_GENERAL_ERROR +# - 6 - PROCESS_ERROR +# - JSON - to stdout: +# - Delimited by "----------" +# - Delimiter overrideable with ALC_JSON_DELIMITER setting. +# +# Configuration/env settings: +# - ALC_HTTP_USER - HTTP BASIC username +# - ALC_HTTP_PASS - HTTP BASIC password +# - ALC_HTTP_INSECURE - allow untrusted SSL (server) connections. +# - ALC_TIMEOUT_SECONDS - invocation (e.g. HTTP) timeout in seconds. +# - ALC_JSON_DELIMITER - JSON delimiter in ouput. +# - ALC_ECOMP_INSTANCE_ID - X-ECOMP-InstanceID header +# +# Configuration by 0600-mode INI file (section "action_library_client") is preferred. +# +# See: +# http://10.147.97.199:8080/api-docs/ - REST API Swagger docs +# https://www.python.org/dev/peps/pep-0008/ - style guide +# ../doc/SDC_Action_Lib_API_AID_1610_13.pdf - REST API dev guide +# +# Version history: +# - 1.0.0 November 28th 2016, LP, initial impl. +# - 1.0.1 November 29th 2016, LP, constants, documentation, add --version. +# - 1.0.2 November 29th 2016, LP, logging to files, stream-handling. +# - 1.0.3 November 30th 2016, LP, optionally read config from env or config file. +# - 1.1.0 December 3rd 2016, LP, backport from Python 3.4.2 to 2.6.6(!). +# +############################################################################## + + +import sys +import os +import logging +import base64 +import tempfile +import uuid +import json +import ssl +import urllib2 +import subprocess +import ConfigParser +from abc import abstractmethod + + +############################################################################### + + +class Constants(object): + """Common constants, for want of a better language feature...""" + # Values. + VERSION = "1.1.0" + APPLICATION = "action_library_client" + ACTIONS_URI = "onboarding-api/workflow/v1.0/actions" + ECOMP_INSTANCE_ID = "sdc_alc" + TIMEOUT_SECONDS_DEFAULT = 30 + JSON_DELIMITER_DEFAULT = "----------" + LOG_FORMAT = "%(name)s\t%(levelname)s\t%(asctime)s\t%(message)s" + # Env variable names. + ENV_HTTP_USER = "ALC_HTTP_USER" + ENV_HTTP_PASS = "ALC_HTTP_PASS" + ENV_HTTP_INSECURE = "ALC_HTTP_INSECURE" + ENV_HTTP_CAFILE = "ALC_HTTP_CAFILE" + ENV_TIMEOUT_SECONDS = "ALC_TIMEOUT_SECONDS" + ENV_JSON_DELIMITER = "ALC_JSON_DELIMITER" + ENV_ECOMP_INSTANCE_ID = "ALC_ECOMP_INSTANCE_ID" + + +############################################################################### + + +class ResponseCodes(object): + """Responses returned by IRESTClient impls.""" + OK = 0 + GENERAL_ERROR = 1 + ARGUMENTS_ERROR = 2 + HTTP_NOT_FOUND_ERROR = 3 + HTTP_FORBIDDEN_ERROR = 4 + HTTP_BAD_REQUEST_ERROR = 5 + HTTP_GENERAL_ERROR = 6 + PROCESS_GENERAL_ERROR = 9 + + +############################################################################### + + +class FinalizeStatus(object): + """Finalization operations.""" + Checkout = "Checkout" + UndoCheckout = "Undo_Checkout" + CheckIn = "Checkin" + Submit = "Submit" + + +############################################################################### + + +class ArgsDict(dict): + """A dict which makes attributes accessible as properties.""" + def __getattr__(self, attr): + return self[attr] + + def __setattr__(self, attr, value): + self[attr] = value + + +############################################################################### + + +class ArgumentParser(object): + """A minimal reimpl of the argparse library, core in later Python releases""" + ACTIONS = ["list", "create", "update", "delete", "checkout", "undocheckout", "checkin", "submit"] + PARMS = ["url", "in", "out", "config", "log", "uuid"] + OTHER = ["curl", "dryrun", "verbose", "version", "help"] + + def parse_args(self, clargs): + """Parse command-line args, returning a dict that exposes everything as properties.""" + args = ArgsDict() + args.action = None + for arg in self.ACTIONS + self.PARMS + self.OTHER: + args[arg] = None + skip = False + try: + for i, clarg in enumerate(clargs): + if skip: + skip = False + continue + if not clarg.startswith("--"): + raise Exception("Invalid argument: {0}".format(clarg)) + arg = str(clarg[2:]) + if arg in self.ACTIONS: + if args.action: + raise Exception("Duplicate actions: --{0}, {1}".format(args.action, clarg)) + args.action = arg + elif arg in self.PARMS: + try: + args[arg] = clargs[i + 1] + skip = True + except IndexError: + raise Exception("Option {0} requires an argument".format(clarg)) + elif arg in self.OTHER: + args[arg] = True + else: + raise Exception("Invalid argument: {0}".format(clarg)) + + # Check action args. + + if args.action: + if not args.url: + raise Exception("--url required for every action") + if not args.uuid: + if args.action not in ["create", "list"]: + raise Exception("--uuid required for every action EXCEPT --list/--create") + + # Read from file or stdin, and replace the problematic "in" + # property with "infile". + + if args.action in ["create", "update"]: + if args["in"]: + args.infile = open(args["in"], mode="r") + else: + args.infile = sys.stdin + + except Exception as e: + print(e) + ArgumentParser.usage() + sys.exit(ResponseCodes.ARGUMENTS_ERROR) + return args + + @staticmethod + def usage(): + """Print usage message.""" + print("" + + "Usage: action_library_client.py [--help] [--url ] [--in ]\n" + + " [--out ] [--config ]\n" + + " [--log ] [--uuid ]\n" + + " [--curl] [--dryrun] [--verbose] [--version]\n" + + " [--list | --create | --update= | --delete |\n" + + " --checkout | --undocheckout | --checkin | --submit]\n" + + "\n" + + "Optional arguments:\n" + + " --help Show this help message and exit\n" + + " --url REST endpoint URL\n" + + " --in Path to JSON input file (else STDIN)\n" + + " --out Path to JSON output file (else STDOUT or logfile)\n" + + " --config Path to configuration file\n" + + " --log Path to logfile (else STDOUT)\n" + + " --uuid Action UUID, (=='actionInvariantUUID')\n" + + " --curl Use curl transport impl\n" + + " --dryrun Describe what will happen, execute nothing\n" + + " --verbose Verbose diagnostic output\n" + + " --version Print script version and exit\n" + + " --list List actions\n" + + " --create Create new action (requires --in)\n" + + " --update Update existing action (requires --uuid, --in)\n" + + " --delete Delete existing action (requires --uuid)\n" + + " --checkout Create minor version candidate (requires --uuid)\n" + + " --undocheckout Discard minor version candidate (requires --uuid)\n" + + " --checkin Create minor version from candidate (requires --uuid)\n" + + " --submit Create next major version (requires --uuid)") + + +############################################################################### + + +class Settings(object): + """Settings read from (optional) configfile, or environment.""" + + def __init__(self, args): + """Construct for command-line args.""" + self.config = ConfigParser.ConfigParser() + if args.config: + self.config.read(args.config) + + def get(self, name, default_value=None): + """Get setting from configfile or environment""" + try: + return self.config.get(Constants.APPLICATION, name) + except (KeyError, ConfigParser.NoSectionError, ConfigParser.NoOptionError): + try: + return os.environ[name] + except KeyError: + return default_value + + +############################################################################### + + +# Python3: metaclass=ABCMeta +class IRESTClient(object): + """Base class for local, proxy and dryrun impls.""" + + def __init__(self, args): + self.args = args + self.logger = Runner.get_logger() + self.settings = Settings(args) + + @abstractmethod + def list(self): + """Abstract list operation.""" + pass + + @abstractmethod + def create(self): + """Abstract list operation.""" + pass + + @abstractmethod + def update(self): + """Abstract list operation.""" + pass + + @abstractmethod + def delete(self): + """Abstract list operation.""" + pass + + @abstractmethod + def version(self, status): + """Abstract list operation.""" + pass + + @staticmethod + def new_uuid(): + """Generate UUID.""" + return str(uuid.uuid4()) + + def get_timeout_seconds(self): + """Get request timeout in seconds.""" + return self.settings.get(Constants.ENV_TIMEOUT_SECONDS, + Constants.TIMEOUT_SECONDS_DEFAULT) + + def get_http_insecure(self): + """Get whether SSL certificate checks are (inadvisably) disabled.""" + return True if self.settings.get(Constants.ENV_HTTP_INSECURE) else False + + def get_http_cafile(self): + """Get optional CA file for SSL server cert validation""" + if not self.get_http_insecure(): + return self.settings.get(Constants.ENV_HTTP_CAFILE) + + def get_basic_credentials(self): + """Generate Authorization: header.""" + usr = self.settings.get(Constants.ENV_HTTP_USER) + pwd = self.settings.get(Constants.ENV_HTTP_PASS) + if usr and pwd: + return base64.b64encode(bytes("{0}:{1}".format(usr, pwd))).decode("ascii") + else: + raise Exception("REST service credentials not found") + + def make_service_url(self): + """Generate service URL based on command-line arguments.""" + url = self.args.url + if "/onboarding-api/" not in url: + separator = "" if url.endswith("/") else "/" + url = "{0}{1}{2}".format(url, separator, str(Constants.ACTIONS_URI)) + if self.args.uuid: + separator = "" if url.endswith("/") else "/" + url = "{0}{1}{2}".format(url, separator, self.args.uuid) + return url + + def log_json_response(self, method, json_dict): + """Log JSON response regardless of transport.""" + json_str = json.dumps(json_dict, indent=4) + delimiter = self.settings.get(Constants.ENV_JSON_DELIMITER, Constants.JSON_DELIMITER_DEFAULT) + self.logger.info("HTTP {0} JSON response:\n{1}\n{2}\n{3}\n".format(method, delimiter, json_str, delimiter)) + if self.args.out: + with open(self.args.out, "w") as tmp: + tmp.write(json_str) + tmp.flush() + elif self.args.log: + # Directly to stdout if logging is sent to a file. + print(json_str) + + def log_action(self, action, status=None): + """Debug action before invocation.""" + url = self.make_service_url() + name = status if status else self.__get_name() + self.logger.debug("{0}::{1}({2})".format(name, action, url)) + + @staticmethod + def _get_result_from_http_response(code): + """Get script returncode from HTTP error.""" + if code == 400: + return ResponseCodes.HTTP_BAD_REQUEST_ERROR + elif code == 403: + return ResponseCodes.HTTP_FORBIDDEN_ERROR + elif code == 404: + return ResponseCodes.HTTP_NOT_FOUND_ERROR + return ResponseCodes.HTTP_GENERAL_ERROR + + def __get_name(self): + """Get classname for diags""" + return type(self).__name__ + + +############################################################################### + + +class NativeRESTClient(IRESTClient): + """In-process IRESTClient impl.""" + + def list(self): + """In-process list impl.""" + self.log_action("list") + return self.__exec(method="GET", expect_json=True) + + def create(self): + """In-process create impl.""" + self.log_action("create") + json_bytes = bytes(self.args.infile.read()) + return self.__exec(method="POST", json_bytes=json_bytes, expect_json=True) + + def update(self): + """In-process update impl.""" + self.log_action("update") + json_bytes = bytes(self.args.infile.read()) + return self.__exec(method="PUT", json_bytes=json_bytes, expect_json=True) + + def delete(self): + """In-process delete impl.""" + self.log_action("delete") + return self.__exec(method="DELETE") + + def version(self, status): + """In-process version impl.""" + self.log_action("version", status) + json_bytes = bytes(json.dumps({"status": status})) + return self.__exec(method="POST", json_bytes=json_bytes, expect_json=True) + + def __exec(self, method, json_bytes=None, expect_json=None): + """Build command, execute it, validate and return response.""" + try: + url = self.make_service_url() + timeout = float(self.get_timeout_seconds()) + cafile = self.get_http_cafile() + headers = { + "Content-Type": "application/json", + "Accept": "application/json", + "Authorization": "Basic {0}".format(self.get_basic_credentials()), + "X-ECOMP-InstanceID": Constants.ECOMP_INSTANCE_ID, + "X-ECOMP-RequestID": IRESTClient.new_uuid() + } + + handler = urllib2.HTTPHandler + if hasattr(ssl, 'create_default_context'): + ctx = ssl.create_default_context(cafile=cafile) + if self.get_http_insecure(): + ctx.check_hostname = False + ctx.verify_mode = ssl.CERT_NONE + handler = urllib2.HTTPSHandler(context=ctx) if url.lower().startswith("https") else urllib2.HTTPHandler + + self.logger.debug("URL {0} {1}: {2}".format(url, method, json_bytes)) + + opener = urllib2.build_opener(handler) + request = urllib2.Request(url, data=json_bytes, headers=headers) + request.get_method = lambda: method + + f = None + try: + f = opener.open(request, timeout=timeout) + return self.__handle_response(f, method, expect_json) + finally: + if f: + f.close() + + except urllib2.HTTPError as err: + self.logger.exception(err) + return IRESTClient._get_result_from_http_response(err.getcode()) + except urllib2.URLError as err: + self.logger.exception(err) + return ResponseCodes.HTTP_GENERAL_ERROR + + def __handle_response(self, f, method, expect_json): + """Devolve response handling because of the """ + self.logger.debug("HTTP {0} status {1}, reason:\n{2}".format(method, f.getcode(), f.info())) + if expect_json: + # JSON responses get "returned", but actually it's the logging that + # most callers will be looking for. + json_body = json.loads(f.read().decode("utf-8")) + self.log_json_response(method, json_body) + return json_body + # Not JSON, but the operation succeeded, so return True. + return ResponseCodes.OK + + +############################################################################### + + +class CURLRESTClient(IRESTClient): + """Remote/curl IRESTClient impl.""" + + def list(self): + """curl list impl""" + self.log_action("list") + return self._exec(method="GET", expect_json=True) + + def create(self): + """curl create impl""" + self.log_action("create") + data_args = ["--data", "@{0}".format(self.args.infile.name)] + return self._exec(method="POST", extra_args=data_args, expect_json=True) + + def update(self): + """curl update impl""" + self.log_action("update") + data_args = ["--data", "@{0}".format(self.args.infile.name)] + return self._exec(method="PUT", extra_args=data_args, expect_json=True) + + def delete(self): + """curl delete impl""" + self.log_action("delete") + return self._exec(method="DELETE", expect_json=False) + + def version(self, status): + """curl version impl""" + self.log_action("version", status) + with tempfile.NamedTemporaryFile(mode="w", delete=False) as tmp: + tmp.write(json.dumps({"status": status})) + tmp.flush() + data_args = ["--data", "@{0}".format(tmp.name)] + return self._exec(method="POST", extra_args=data_args, expect_json=True) + + def make_curl_cmd(self, method, url, extra_args): + """Build curl command without executing.""" + cmd = ["curl", "-i", "-s", "-X", method] + if self.get_http_insecure(): + cmd.append("-k") + cmd.extend(["--connect-timeout", str(self.get_timeout_seconds())]) + cmd.extend(["--header", "Accept: application/json"]) + cmd.extend(["--header", "Content-Type: application/json"]) + cmd.extend(["--header", "Authorization: Basic {0}".format(self.get_basic_credentials())]) + cmd.extend(["--header", "X-ECOMP-InstanceID: {0}".format(Constants.ECOMP_INSTANCE_ID)]) + cmd.extend(["--header", "X-ECOMP-RequestID: {0}".format(IRESTClient.new_uuid())]) + if extra_args: + for extra_arg in extra_args: + cmd.append(extra_arg) + cmd.append("{0}".format(url)) + return cmd + + @staticmethod + def debug_curl_cmd(cmd): + """Debug curl command, for diags and dryrun.""" + buf = "" + for token in cmd: + if token is "curl" or token.startswith("-"): + buf = "{0}{1} ".format(buf, token) + else: + buf = "{0}\"{1}\" ".format(buf, token) + return buf + + def _exec(self, method, extra_args=None, expect_json=None): + """Execute action. + + Build command, invoke curl, validate and return response. + Overridden by DryRunRESTClient. + """ + url = self.make_service_url() + cmd = self.make_curl_cmd(method, url, extra_args) + self.logger.info("Executing: {0}".format(CURLRESTClient.debug_curl_cmd(cmd))) + + try: + output = subprocess.check_output(cmd, stderr=subprocess.STDOUT).decode() + if not expect_json: + return ResponseCodes.OK + try: + separator = output.index("\r\n\r\n{") + self.logger.debug("HTTP preamble:\n{0}".format(output[:separator])) + json_body = json.loads(output[(separator+4):]) + self.log_json_response(method, json_body) + return json_body + except ValueError: + self.logger.warning("Couldn't find HTTP separator in curl output:\n{}".format(output)) + code = CURLRESTClient.__get_http_code(output) + return IRESTClient._get_result_from_http_response(code) + except subprocess.CalledProcessError as err: + self.logger.exception(err) + return ResponseCodes.PROCESS_GENERAL_ERROR + + @staticmethod + def __get_http_code(output): + """Attempt to guess HTTP result from (error) output.""" + for line in output.splitlines(): + if line.startswith("HTTP"): + tokens = line.split() + if len(tokens) > 2: + try: + return int(tokens[1]) + except ValueError: + pass + return ResponseCodes.HTTP_GENERAL_ERROR + + +############################################################################### + + +class DryRunRESTClient(CURLRESTClient): + """Neutered IRESTClient impl; only logs.""" + + def _exec(self, method, extra_args=None, expect_json=None): + """Override.""" + url = self.make_service_url() + cmd = self.make_curl_cmd(method, url, extra_args) + self.logger.info("[DryRun] {0}".format(CURLRESTClient.debug_curl_cmd(cmd))) + + +############################################################################### + + +class Runner(object): + """A bunch of static housekeeping supporting the launcher.""" + + @staticmethod + def get_logger(): + """Get logger instance.""" + return logging.getLogger(Constants.APPLICATION) + + @staticmethod + def get_rest_client(args): + """Get the configured REST client impl, local, remote or dryrun.""" + if args.dryrun: + return DryRunRESTClient(args) + elif args.curl: + return CURLRESTClient(args) + else: + return NativeRESTClient(args) + + @staticmethod + def execute(args): + """Execute the requested action.""" + client = Runner.get_rest_client(args) + if args.version: + print(Constants.VERSION) + elif args.help: + ArgumentParser.usage() + elif args.action == "list": + return client.list() + elif args.action == "create": + return client.create() + elif args.action == "update": + return client.update() + elif args.action == "delete": + return client.delete() + elif args.action == "checkout": + return client.version(FinalizeStatus.Checkout) + elif args.action == "checkin": + return client.version(FinalizeStatus.CheckIn) + elif args.action == "undocheckout": + return client.version(FinalizeStatus.UndoCheckout) + elif args.action == "submit": + return client.version(FinalizeStatus.Submit) + else: + logger = Runner.get_logger() + logger.info("No action specified. Try --help.") + + @staticmethod + def parse_args(raw): + """Parse command-line args, returning dict.""" + return ArgumentParser().parse_args(raw) + + +############################################################################### + + +def execute(raw): + """Delegate which executes minus error-handling, exposed for unit-testing.""" + + # Intercept Python 2.X. + + if not (sys.version_info[0] == 2 and sys.version_info[1] >= 6): + raise EnvironmentError("Python 2.6/2.7 required") + + # Parse command-line args. + + args = Runner.parse_args(raw) + + # Redirect logging to a file (freeing up STDIN) if directed. + + logging.basicConfig(level=logging.INFO, filename=args.log, format=Constants.LOG_FORMAT) + + # Set loglevel. + + logger = Runner.get_logger() + if args.verbose: + logger.setLevel(logging.DEBUG) + logger.debug("Parsed arguments: {0}".format(args)) + + # Execute request. + + return Runner.execute(args) + + +############################################################################### + + +def main(raw): + """Execute for command-line arguments.""" + + logger = Runner.get_logger() + try: + result = execute(raw) + result_code = result if isinstance(result, int) else ResponseCodes.OK + logger.debug("Execution complete. Returning result {0} ({1})".format(result, result_code)) + sys.exit(result_code) + except Exception as err: + logger.exception(err) + sys.exit(ResponseCodes.GENERAL_ERROR) + + +############################################################################### + + +if __name__ == "__main__": + main(sys.argv[1:]) diff --git a/openecomp-be/tools/build/scripts/action_library_client/doc/TESTPLAN.TXT b/openecomp-be/tools/build/scripts/action_library_client/doc/TESTPLAN.TXT new file mode 100644 index 0000000000..be6a77c847 --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/doc/TESTPLAN.TXT @@ -0,0 +1,10 @@ +1. Unit + integration tests. +2. Reading credentials from configfile. +3. Writing output to logfile, response to stdout. +4. Reading JSON from stdin. +5. TLS URL, success, failure (if Python checks, and with insecure mode enabled). +6. Auth failure. +7. Print help, version. +8. Python 2.6/2.7 sanity (whichever isn't primary) +9. Run BASH example scripts. +10. Run Python example script(s). diff --git a/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Backout.json b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Backout.json new file mode 100644 index 0000000000..12b7b4dd2c --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Backout.json @@ -0,0 +1,45 @@ +{ + "name": "Backout", + "displayName": "Backout", + "description": "MCAP Backout", + "vendorList": ["BROCADE"], + "categoryList": ["Upgrade"], + "endpointURI": "engine-rest/process-definition/key/Backout/start", + "supportedModels": [{ + "versionID": "AA56B177-9383-4934-8543-0F91A7A04971", + "versionInvariantUUID": "CC87B177-9383-4934-8543-0F91A7A07193", + "name": "vCE", + "version": "2.1", + "category": "cpe" + }], + "supportedComponents": [{ + "ID": "BB47B177-9383-4934-8543-0F91A7A06448", + "componentName": "appc" + }], + "inputParameters": [{ + "name": "VNF_NAME", + "description": "VNF name", + "type": "STRING", + "max-length": "50", + "optional": true, + "allowed_values": ["string1", "string2"] + }], + "outputParameters": [{ + "name": "STATUS", + "defaultValue": "Default Value", + "type": "STRING", + "description": "The status of execution" + }], + "operationalData": { + "outageDuration": "0", + "approxDuration": "5", + "staticFields": {}, + "updatableFields": {} + }, + "serverList": [{ + "name": "appcserver", + "hostName": "cm-server1.client.com", + "port": "666" + }], + "updatedBy": "AUTHusername" +} diff --git a/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Copy_image.json b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Copy_image.json new file mode 100644 index 0000000000..06da2ae48f --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Copy_image.json @@ -0,0 +1,45 @@ +{ + "name": "Copy_image", + "displayName": "Copy_image", + "description": "MCAP Copy Image", + "vendorList": ["BROCADE"], + "categoryList": ["Upgrade"], + "endpointURI": "engine-rest/process-definition/key/Copy_image/start", + "supportedModels": [{ + "versionID": "AA56B177-9383-4934-8543-0F91A7A04971", + "versionInvariantUUID": "CC87B177-9383-4934-8543-0F91A7A07193", + "name": "vCE", + "version": "2.1", + "category": "cpe" + }], + "supportedComponents": [{ + "ID": "BB47B177-9383-4934-8543-0F91A7A06448", + "componentName": "appc" + }], + "inputParameters": [{ + "name": "VNF_NAME", + "description": "VNF name", + "type": "STRING", + "max-length": "50", + "optional": true, + "allowed_values": ["string1", "string2"] + }], + "outputParameters": [{ + "name": "STATUS", + "defaultValue": "Default Value", + "type": "STRING", + "description": "The status of execution" + }], + "operationalData": { + "outageDuration": "0", + "approxDuration": "5", + "staticFields": {}, + "updatableFields": {} + }, + "serverList": [{ + "name": "appcserver", + "hostName": "cm-server1.client.com", + "port": "666" + }], + "updatedBy": "AUTHusername" +} diff --git a/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Healthcheck.json b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Healthcheck.json new file mode 100644 index 0000000000..b1be8f77df --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Healthcheck.json @@ -0,0 +1,45 @@ +{ + "name": "Healthcheck", + "displayName": "Healthcheck", + "description": "MCAP Healthcheck", + "vendorList": ["BROCADE"], + "categoryList": ["Upgrade"], + "endpointURI": "engine-rest/process-definition/key/Healthcheck/start", + "supportedModels": [{ + "versionID": "AA56B177-9383-4934-8543-0F91A7A04971", + "versionInvariantUUID": "CC87B177-9383-4934-8543-0F91A7A07193", + "name": "vCE", + "version": "2.1", + "category": "cpe" + }], + "supportedComponents": [{ + "ID": "BB47B177-9383-4934-8543-0F91A7A06448", + "componentName": "appc" + }], + "inputParameters": [{ + "name": "VNF_NAME", + "description": "VNF name", + "type": "STRING", + "max-length": "50", + "optional": true, + "allowed_values": ["string1", "string2"] + }], + "outputParameters": [{ + "name": "STATUS", + "defaultValue": "Default Value", + "type": "STRING", + "description": "The status of execution" + }], + "operationalData": { + "outageDuration": "0", + "approxDuration": "5", + "staticFields": {}, + "updatableFields": {} + }, + "serverList": [{ + "name": "appcserver", + "hostName": "cm-server1.client.com", + "port": "666" + }], + "updatedBy": "AUTHusername" +} diff --git a/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Reboot.json b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Reboot.json new file mode 100644 index 0000000000..72cbb659e3 --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/test/scenarios/Reboot.json @@ -0,0 +1,45 @@ +{ + "name": "Reboot", + "displayName": "Reboot", + "description": "MCAP Reboot", + "vendorList": ["BROCADE"], + "categoryList": ["Upgrade"], + "endpointURI": "engine-rest/process-definition/key/Reboot/start", + "supportedModels": [{ + "versionID": "AA56B177-9383-4934-8543-0F91A7A04971", + "versionInvariantUUID": "CC87B177-9383-4934-8543-0F91A7A07193", + "name": "vCE", + "version": "2.1", + "category": "cpe" + }], + "supportedComponents": [{ + "ID": "BB47B177-9383-4934-8543-0F91A7A06448", + "componentName": "appc" + }], + "inputParameters": [{ + "name": "VNF_NAME", + "description": "VNF name", + "type": "STRING", + "max-length": "50", + "optional": true, + "allowed_values": ["string1", "string2"] + }], + "outputParameters": [{ + "name": "STATUS", + "defaultValue": "Default Value", + "type": "STRING", + "description": "The status of execution" + }], + "operationalData": { + "outageDuration": "0", + "approxDuration": "5", + "staticFields": {}, + "updatableFields": {} + }, + "serverList": [{ + "name": "appcserver", + "hostName": "cm-server1.client.com", + "port": "666" + }], + "updatedBy": "AUTHusername" +} diff --git a/openecomp-be/tools/build/scripts/action_library_client/test/seq.txt b/openecomp-be/tools/build/scripts/action_library_client/test/seq.txt new file mode 100644 index 0000000000..b18fcc5ba2 --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/test/seq.txt @@ -0,0 +1 @@ +535 \ No newline at end of file diff --git a/openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client.py b/openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client.py new file mode 100644 index 0000000000..dc1161c184 --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client.py @@ -0,0 +1,154 @@ +import unittest +import os +import tempfile +import ConfigParser +import action_library_client as ALC + + +class D(dict): + + def __init__(self, *args, **kwargs): + super(D, self).__init__(*args, **kwargs) + self.__dict__ = self + + +class UnitTest(unittest.TestCase): + + def __write_config_file(self, map): + with tempfile.NamedTemporaryFile(mode="w", delete=False) as tmp: + config = ConfigParser.ConfigParser() + config.add_section("action_library_client") + for k, v in map.items(): + section = config.set("action_library_client", k, v) + config.write(tmp) + tmp.flush() + return tmp.name + + def test_argument_parser(self): + # nothing = ALC.ArgumentParser().parse_args([]) + # self.assertEquals(nothing.help, None) + # self.assertEquals(nothing.version, None) + # self.assertEquals(nothing.verbose, None) + # + # help = ALC.ArgumentParser().parse_args(["--help"]) + # self.assertEquals(help.help, True) + + uuidx = ALC.ArgumentParser().parse_args(["--uuid", "abc"]) + self.assertEquals(uuidx.uuid, "abc") + + + def test_settings_get(self): + + os.environ["a"] = "aa" + os.environ["b"] = "WILL_BE_OVERRIDDEN" + + section = dict() + section['ALC_HTTP_USER'] = "batman" + section['ECOMP_INSTANCE_ID'] = "acdc" + section['b'] = "bb" + filename = self.__write_config_file(section) + + # with tempfile.NamedTemporaryFile(mode="w", delete=False) as tmp: + # config = configparser.ConfigParser() + # config.add_section("action_library_client") + # section = config["action_library_client"] + # config.write(tmp) + # tmp.flush() + + settings = ALC.Settings(ALC.Runner.parse_args(["--config", filename])) + self.assertEquals("aa", settings.get("a")) + self.assertEquals("bb", settings.get("b")) + self.assertEquals("batman", settings.get("ALC_HTTP_USER")) + self.assertEquals("batman", settings.get(ALC.Constants.ENV_HTTP_USER)) + self.assertEquals("ALC_ECOMP_INSTANCE_ID", settings.get("c", ALC.Constants.ENV_ECOMP_INSTANCE_ID)) + + os.remove(filename) + + def test_parse_args(self): + c1 = ALC.Runner.parse_args(["--version"]) + with tempfile.NamedTemporaryFile(mode="w", delete=False) as tmp: + config = ConfigParser.ConfigParser() + config.add_section("action_library_client") + config.set("action_library_client", "ALC_HTTP_USER", "batman") + config.write(tmp) + tmp.flush() + self.assertEquals(c1.version, True) + + def test_get_http_insecure(self): + c = ALC.DryRunRESTClient(ALC.Runner.parse_args([])) + self.assertEquals(False, c.get_http_insecure()) + + def test_get_http_cafile(self): + c1 = ALC.DryRunRESTClient(ALC.Runner.parse_args([])) + self.assertEquals(False, c1.get_http_insecure()) + self.assertIsNone(c1.get_http_cafile()) + + filename = self.__write_config_file({"ALC_HTTP_CAFILE": "/tmp/x"}) + c2 = ALC.DryRunRESTClient(ALC.Runner.parse_args(["--config", filename])) + self.assertEquals(False, c2.get_http_insecure()) + self.assertEquals("/tmp/x", c2.get_http_cafile()) + + def test_get_timeout_seconds(self): + args = ALC.Runner.parse_args(["--version"]) + self.assertEquals(30, ALC.DryRunRESTClient(args).get_timeout_seconds()) + + def test_get_basic_credentials(self): + try: + saved_user = os.environ["ALC_HTTP_USER"] + saved_pass = os.environ["ALC_HTTP_PASS"] + except KeyError: + saved_user = "" + saved_pass = "" + try: + os.environ["ALC_HTTP_USER"] = "AUTH-DELETE" + os.environ["ALC_HTTP_PASS"] = "test" + c = ALC.DryRunRESTClient(ALC.Runner.parse_args([])) + c1 = c.get_basic_credentials() + self.assertEqual(c1, "QVVUSC1ERUxFVEU6dGVzdA==") + os.environ["ALC_HTTP_USER"] = "AUTH-DELETE" + os.environ["ALC_HTTP_PASS"] = "death" + c2 = c.get_basic_credentials() + self.assertNotEqual(c2, "QVVUSC1ERUxFVEU6dGVzdA==") + finally: + os.environ["ALC_HTTP_USER"] = saved_user + os.environ["ALC_HTTP_PASS"] = saved_pass + + def test_get_rest_client(self): + uuid = ALC.IRESTClient.new_uuid() + c1 = ALC.Runner.get_rest_client(ALC.Runner.parse_args(["--dryrun"])) + self.assertTrue(isinstance(c1, ALC.DryRunRESTClient)) + c2 = ALC.Runner.get_rest_client(ALC.Runner.parse_args(["--curl"])) + self.assertTrue(isinstance(c2, ALC.CURLRESTClient)) + c3 = ALC.Runner.get_rest_client(ALC.Runner.parse_args(["--uuid", uuid])) + self.assertTrue(isinstance(c3, ALC.NativeRESTClient)) + + def test_get_logger(self): + logger = ALC.Runner.get_logger() + logger.info("idotlogger") + + def test_new_uuid(self): + uuid = ALC.IRESTClient.new_uuid() + self.assertEqual(len(uuid), 36) + + def test_make_service_url(self): + uuid = ALC.IRESTClient.new_uuid() + + args1 = ALC.Runner.parse_args(["--url", "http://banana"]) + client1 = ALC.DryRunRESTClient(args1) + self.assertEqual(client1.make_service_url(), + "http://banana/onboarding-api/workflow/v1.0/actions") + + args2 = ALC.Runner.parse_args(["--url", "http://banana/"]) + client2 = ALC.DryRunRESTClient(args2) + self.assertEqual(client2.make_service_url(), + "http://banana/onboarding-api/workflow/v1.0/actions") + + args3 = ["--url", "http://banana/onboarding-api/workflow/v1.1/actions", "--uuid", uuid] + client3 = ALC.DryRunRESTClient(ALC.Runner.parse_args(args3)) + self.assertEqual(client3.make_service_url(), + "http://banana/onboarding-api/workflow/v1.1/actions/{}".format(uuid)) + + def test_debug_curl_cmd(self): + cmd = ["curl", "--header", "banana", "http://something/somewhere"] + debug = ALC.CURLRESTClient.debug_curl_cmd(cmd) + self.assertEqual("curl --header \"banana\" \"http://something/somewhere\" ", debug) \ No newline at end of file diff --git a/openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client_integration.py b/openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client_integration.py new file mode 100644 index 0000000000..b6418e617e --- /dev/null +++ b/openecomp-be/tools/build/scripts/action_library_client/test/test_action_library_client_integration.py @@ -0,0 +1,329 @@ +import sys +import os +import unittest +import uuid +import json +import tempfile +import action_library_client + +class IntegrationTest(unittest.TestCase): + + HTTP = "http://10.147.97.199:8080" + HTTPS = "https://10.147.97.199:8443" + + def setUp(self): + os.environ["ALC_HTTP_USER"] = "AUTH-DELETE" + os.environ["ALC_HTTP_PASS"] = "test" + + def tearDown(self): + os.environ["ALC_HTTP_INSECURE"] = "" + os.environ["ALC_HTTP_USER"] = "" + os.environ["ALC_HTTP_PASS"] = "" + + @staticmethod + def __prepare(testcase, name): + with open(testcase, 'r') as fin: + jsonk = json.loads(fin.read()) + jsonk['name'] = name + with tempfile.NamedTemporaryFile(mode='w', delete=False) as temp: + temp.write(json.dumps(jsonk)) + temp.flush() + return temp.name + + @staticmethod + def __get_sequence(): + with open(r'./seq.txt', 'r+') as f: + value = int(f.read()) + f.seek(0) + f.write(str(value + 1)) + return value + + def __print_separator(self): + logger = action_library_client.Runner.get_logger() + logger.info("==================================================") + + def __list(self, stdargs): + logger = action_library_client.Runner.get_logger() + list_response = action_library_client.execute(["--list"] + stdargs) + logger.info("--list response: {}".format(list_response)) + self.assertTrue(isinstance(list_response, dict)) + return list_response + + def __get_action(self, list_response, ai_uuid): + for action in list_response['actionList']: + if action['actionInvariantUUID'] == ai_uuid: + return action + + def __create_delete(self, extraargs): + + logger = action_library_client.Runner.get_logger() + + # Setup. + + seq = IntegrationTest.__get_sequence() + name = "Backout{}".format(seq) + path = IntegrationTest.__prepare("scenarios/Backout.json", name) + stdargs = ["--url", self.HTTP, "--verbose"] + if extraargs: + stdargs.extend(extraargs) + + # List actions. + + self.__print_separator() + list_response1 = self.__list(stdargs) + self.assertTrue(isinstance(list_response1, dict)) + + # CREATE action. + + self.__print_separator() + create_response = action_library_client.execute(["--create", "--in", path] + stdargs) + logger.info("--create response: {}".format(create_response)) + self.assertTrue(isinstance(create_response, dict)) + ai_uuid = create_response['actionInvariantUUID'] + self.assertTrue(ai_uuid) + self.assertEquals(create_response['status'], 'Locked') + self.assertEquals(create_response['version'], '0.1') + + # UPDATE action #1. + + self.__print_separator() + update_response1 = action_library_client.execute(["--update", "--in", path, "--uuid", ai_uuid] + stdargs) + logger.info("--update response: {}".format(update_response1)) + self.assertTrue(isinstance(update_response1, dict)) + + # UPDATE action #2. + + self.__print_separator() + update_response2 = action_library_client.execute(["--update", "--in", path, "--uuid", ai_uuid] + stdargs) + logger.info("--update response: {}".format(update_response2)) + self.assertTrue(isinstance(update_response2, dict)) + + # CHECKOUT action (usage unknown). + + self.__print_separator() + try: + action_library_client.execute(["--checkout", "--uuid", ai_uuid] + stdargs) + self.fail("--checkout should fail") + except Exception as err: + print(err) + + # CHECKIN action. + + self.__print_separator() + checkin_response = action_library_client.execute(["--checkin", "--in", path, "--uuid", ai_uuid] + stdargs) + logger.info("--checkin response: {}".format(checkin_response)) + self.assertTrue(isinstance(checkin_response, dict)) + self.assertEquals(checkin_response['status'], 'Available') + self.assertEquals(checkin_response['version'], '0.1') + + # SUBMIT action. + + self.__print_separator() + submit_response = action_library_client.execute(["--submit", "--in", path, "--uuid", ai_uuid] + stdargs) + logger.info("--submit response: {}".format(submit_response)) + self.assertTrue(isinstance(submit_response, dict)) + self.assertEquals(submit_response['status'], 'Final') + self.assertEquals(submit_response['version'], '1.0') + + # LIST again + + self.__print_separator() + list_response2 = self.__list(stdargs) + action_found2 = self.__get_action(list_response2, ai_uuid) + self.assertTrue(action_found2) + + # DELETE action. + + self.__print_separator() + delete_response = action_library_client.execute(["--delete", "--uuid", ai_uuid] + stdargs) + logger.info("--delete response: {}".format(delete_response)) + self.assertEqual(delete_response, action_library_client.ResponseCodes.OK) + + # LIST yet again + + self.__print_separator() + list_response3 = self.__list(stdargs) + action_found3 = self.__get_action(list_response3, ai_uuid) + self.assertFalse(action_found3) + + def __create_undo(self, extraargs): + + # Setup + + logger = action_library_client.Runner.get_logger() + seq = IntegrationTest.__get_sequence() + name = "Backout{}".format(seq) + path = IntegrationTest.__prepare("scenarios/Backout.json", name) + stdargs = ["--url", self.HTTP, "--verbose"] + + # CREATE action. + + self.__print_separator() + create_response = action_library_client.execute(["--create", "--in", path] + stdargs + extraargs) + logger.info("--create response: {}".format(create_response)) + self.assertTrue(isinstance(create_response, dict)) + ai_uuid = create_response['actionInvariantUUID'] + self.assertTrue(ai_uuid) + self.assertEquals(create_response['status'], 'Locked') + self.assertEquals(create_response['version'], '0.1') + + # UNDOCHECKOUT action + + self.__print_separator() + undocheckout_response = action_library_client.execute(["--undocheckout", "--uuid", ai_uuid] + stdargs + extraargs) + self.assertTrue(isinstance(undocheckout_response, dict)) + + def __create_list(self, extraargs): + # Setup + + logger = action_library_client.Runner.get_logger() + seq = IntegrationTest.__get_sequence() + name = "Backout{}".format(seq) + path = IntegrationTest.__prepare("scenarios/Backout.json", name) + stdargs = ["--url", self.HTTP, "--verbose"] + + # CREATE action. + + self.__print_separator() + create_response = action_library_client.execute(["--create", "--in", path] + stdargs + extraargs) + logger.info("--create response: {}".format(create_response)) + self.assertTrue(isinstance(create_response, dict)) + ai_uuid = create_response['actionInvariantUUID'] + self.assertTrue(ai_uuid) + self.assertEquals(create_response['status'], 'Locked') + self.assertEquals(create_response['version'], '0.1') + + # CHECKIN action. + + self.__print_separator() + checkin_response = action_library_client.execute(["--checkin", "--in", path, "--uuid", ai_uuid] + + stdargs + extraargs) + logger.info("--checkin response: {}".format(checkin_response)) + self.assertTrue(isinstance(checkin_response, dict)) + self.assertEquals(checkin_response['status'], 'Available') + self.assertEquals(checkin_response['version'], '0.1') + + try: + # LIST. + + self.__print_separator() + list_response1 = self.__list(stdargs + extraargs) + action_found1 = self.__get_action(list_response1, ai_uuid) + self.assertTrue(action_found1) + + # LIST with UUID. + + self.__print_separator() + list_response2 = self.__list(stdargs + extraargs + ["--uuid", ai_uuid]) + self.assertFalse(hasattr(list_response2, 'actionList')) + self.assertEquals(len(list_response2['versions']), 1) + + # LIST with bad UUID. + + self.__print_separator() + list_response3 = action_library_client.execute(["--list"] + stdargs + extraargs + + ["--uuid", "where_the_wind_blows"]) + if isinstance(list_response3, int): + self.assertEquals(action_library_client.ResponseCodes.HTTP_NOT_FOUND_ERROR, list_response3) + else: + self.assertEquals("ACT1045", list_response3["code"]) + + finally: + + # DELETE action + + self.__print_separator() + action_library_client.execute(["--delete", "--uuid", ai_uuid] + stdargs + extraargs) + + def __http_secure(self, extraargs): + os.environ["ALC_HTTP_INSECURE"] = "" + try: + self.__list(["--url", self.HTTPS, "--verbose"] + extraargs) + if not (sys.version_info[0] == 2 and sys.version_info[1] == 6): + self.fail("Should fail (non-2.6) for TLS + secure") + except Exception: + pass + + def __http_insecure(self, extraargs): + os.environ["ALC_HTTP_INSECURE"] = True + self.__list(["--url", self.HTTPS, "--verbose"] + extraargs) + + def __no_credentials(self, extraargs): + + args = ["--url", self.HTTP] + extraargs + self.__list(args) + print("OK") + + os.environ["ALC_HTTP_USER"] = "" + os.environ["ALC_HTTP_PASS"] = "" + try: + action_library_client.execute(["--list"] + args) + self.fail("Should fail for missing credentials") + except Exception as e: + self.assertEquals("REST service credentials not found", e.message) + + def __bad_credentials(self, extraargs): + + args = ["--url", self.HTTP] + extraargs + self.__list(args) + + os.environ["ALC_HTTP_USER"] = "wakey_wakey" + os.environ["ALC_HTTP_PASS"] = "rise_and_shine" + code = action_library_client.execute(["--list"] + args) + self.assertEquals(action_library_client.ResponseCodes.HTTP_FORBIDDEN_ERROR, code) + + ################################################################################ + + def test_https_insecure_local_fail(self): + self.__http_secure([]) + + def test_https_insecure_remote_fail(self): + self.__http_secure(["--curl"]) + + def test_https_native(self): + self.__http_secure([]) + + def test_https_curl(self): + self.__http_secure(["--curl"]) + + def test_undo_checkout_native(self): + self.__create_undo([]) + + def test_undo_checkout_curl(self): + self.__create_undo(["--curl"]) + + def test_create_delete_native(self): + self.__create_delete([]) + + def test_create_delete_curl(self): + self.__create_delete(["--curl"]) + + def test_create_list_native(self): + self.__create_list([]) + + def test_create_list_curl(self): + self.__create_list(["--curl"]) + + def test_bad_credentials_native(self): + self.__bad_credentials([]) + + def test_bad_credentials_curl(self): + self.__bad_credentials(["--curl"]) + # + def test_no_credentials_native(self): + self.__no_credentials([]) + + def test_no_credentials_curl(self): + self.__no_credentials(["--curl"]) + + def test_create_to_delete_dryrun(self): + ai_uuid = str(uuid.uuid4()) + path = IntegrationTest.__prepare("scenarios/Backout.json", "Backout{}".format("001")) + stdargs = ["--url", self.HTTP, "--verbose", "--dryrun"] + action_library_client.execute(["--create", "--in", path] + stdargs) + action_library_client.execute(["--update", "--in", path, "--uuid", ai_uuid] + stdargs) + action_library_client.execute(["--checkout", "--uuid", ai_uuid] + stdargs) + action_library_client.execute(["--undocheckout", "--uuid", ai_uuid] + stdargs) + action_library_client.execute(["--checkin", "--uuid", ai_uuid] + stdargs) + action_library_client.execute(["--submit", "--uuid", ai_uuid] + stdargs) + action_library_client.execute(["--list"] + stdargs) diff --git a/openecomp-be/tools/build/scripts/cassandra-commands.json b/openecomp-be/tools/build/scripts/cassandra-commands.json new file mode 100644 index 0000000000..8354ff2532 --- /dev/null +++ b/openecomp-be/tools/build/scripts/cassandra-commands.json @@ -0,0 +1,76 @@ +{ + "create": { + "version": "CREATE TYPE IF NOT EXISTS version (major int, minor int)", + "user_candidate_version": "CREATE TYPE IF NOT EXISTS user_candidate_version (version frozen, user text)", + "version_info": "CREATE TABLE IF NOT EXISTS version_info (entity_type text, entity_id text, active_version frozen, status text, candidate frozen, viewable_versions set>, latest_final_version frozen, PRIMARY KEY (entity_type, entity_id))", + "version_info_deleted": "CREATE TABLE IF NOT EXISTS version_info_deleted (entity_type text, entity_id text, active_version frozen, status text, candidate frozen, viewable_versions set>, latest_final_version frozen, PRIMARY KEY (entity_type, entity_id))", + "unique_value" : "CREATE TABLE IF NOT EXISTS unique_value (type text, value text, PRIMARY KEY ((type, value)))", + "choice_or_other": "CREATE TYPE IF NOT EXISTS choice_or_other (result text)", + "multi_choice_or_other": "CREATE TYPE IF NOT EXISTS multi_choice_or_other (results set)", + "vendor_license_model": "CREATE TABLE IF NOT EXISTS vendor_license_model (vlm_id text, version frozen, vendor_name text, description text, icon text, PRIMARY KEY ((vlm_id, version)))", + "license_agreement": "CREATE TABLE IF NOT EXISTS license_agreement (vlm_id text, version frozen, la_id text, name text, description text, lic_term frozen, req_const text, fg_ids set, PRIMARY KEY ((vlm_id, version), la_id))", + "feature_group": "CREATE TABLE IF NOT EXISTS feature_group (vlm_id text, version frozen, fg_id text, name text, description text, part_num text, ep_ids set, lkg_ids set, ref_la_ids set, PRIMARY KEY ((vlm_id, version), fg_id))", + "license_key_group": "CREATE TABLE IF NOT EXISTS license_key_group (vlm_id text, version frozen, lkg_id text,name text,description text, type text, operational_scope frozen, ref_fg_ids set, version_uuid text, PRIMARY KEY ((vlm_id, version), lkg_id))", + "entitlement_pool": "CREATE TABLE IF NOT EXISTS entitlement_pool (vlm_id text, version frozen, ep_id text,name text,description text,threshold float,threshold_unit text,entitlement_metric frozen,increments text,aggregation_func frozen, operational_scope frozen, time frozen,manufacturer_ref_num text,ref_fg_ids set, version_uuid text, PRIMARY KEY ((vlm_id, version), ep_id))", + "vsp_information": "CREATE TABLE IF NOT EXISTS vsp_information (VSP_ID text, version frozen, NAME text,DESCRIPTION text,CATEGORY text,SUB_CATEGORY text,ICON text,PACKAGE_NAME text,PACKAGE_VERSION text,vendor_name text, vendor_id text,LICENSE_AGREEMENT text,FEATURE_GROUPS list,VALIDATION_DATA text,CONTENT_DATA blob, questionnaire_data text, vlm_version frozen, PRIMARY KEY ((VSP_ID, version)))", + "package_details": "CREATE TABLE IF NOT EXISTS package_details (VSP_ID text, version frozen,DISPLAY_NAME text,vsp_name text,vsp_description text,VENDOR_NAME text,CATEGORY text,SUB_CATEGORY text,VENDOR_RELEASE text,PACKAGE_CHECKSUM text,PACKAGE_TYPE text,TRANSLATE_CONTENT blob,PRIMARY KEY ((VSP_ID, version)))", + "vsp_network": "CREATE TABLE IF NOT EXISTS vsp_network (vsp_id text, version frozen, network_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), network_id))", + "vsp_component": "CREATE TABLE IF NOT EXISTS vsp_component (vsp_id text, version frozen, component_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), component_id))", + "vsp_component_nic": "CREATE TABLE IF NOT EXISTS vsp_component_nic (vsp_id text, version frozen, component_id text, nic_id text, composition_data text, questionnaire_data text, PRIMARY KEY ((vsp_id, version), component_id, nic_id))", + "vsp_process" : "CREATE TABLE IF NOT EXISTS vsp_process (vsp_id text, version frozen, component_id text, process_id text, name text, description text, artifact_name text, artifact blob, PRIMARY KEY ((vsp_id, version), component_id, process_id))", + "vsp_service_artifact" : "CREATE TABLE IF NOT EXISTS vsp_service_artifact (vsp_id text, version frozen, name text, content_data blob, PRIMARY KEY ((vsp_id, version), name))", + "vsp_service_template" : "CREATE TABLE IF NOT EXISTS vsp_service_template (vsp_id text, version frozen, base_name text static, name text, content_data blob, PRIMARY KEY ((vsp_id, version), name))", + "vsp_enriched_service_template" : "CREATE TABLE IF NOT EXISTS vsp_enriched_service_template (vsp_id text, version frozen, base_name text static, name text, content_data blob, PRIMARY KEY ((vsp_id, version), name))", + "vsp_enriched_service_artifact" : "CREATE TABLE IF NOT EXISTS vsp_enriched_service_artifact (vsp_id text, version frozen, name text, content_data blob, PRIMARY KEY ((vsp_id, version), name))", + "application_config" : "CREATE TABLE IF NOT EXISTS application_config (namespace text, key text, value text, PRIMARY KEY (namespace, key))", + "action" : "CREATE TABLE IF NOT EXISTS dox.Action (actionUUID text, actionInvariantUUID text, version frozen, status text, name text, vendor_list set, category_list set, timestamp timestamp, user text, supportedModels set, supportedComponents set, data text, PRIMARY KEY ((actionInvariantUUID, version)))", + "supportedComponents_index" : "CREATE INDEX IF NOT EXISTS action_supportedComponents ON dox.Action (supportedComponents)", + "category_list_index" : "CREATE INDEX IF NOT EXISTS action_category_list ON dox.Action (category_list)", + "supportedModels_index" : "CREATE INDEX IF NOT EXISTS action_supportedModels ON dox.Action (supportedModels)", + "vendor_list_index" : "CREATE INDEX IF NOT EXISTS action_vendor_list ON dox.Action (vendor_list)", + "actionUUID_index" : "CREATE INDEX IF NOT EXISTS action_actionUUID ON dox.Action (actionUUID)", + "ecomp_component": "CREATE TABLE IF NOT EXISTS dox.ecompcomponent(id text PRIMARY KEY, name text)", + "vsp_component_artifact": "CREATE TABLE IF NOT EXISTS vsp_component_artifact (vsp_id text, version frozen, component_id text, artifact_type text, artifact_id text, name text, description text, artifact blob, PRIMARY KEY ((vsp_id, version), component_id, artifact_type, artifact_id))", + "name_index": "CREATE INDEX IF NOT EXISTS action_name ON dox.Action (name)", + "action_artifact":"CREATE TABLE IF NOT EXISTS action_artifact(artifactuuid text, effective_version int, artifact blob, PRIMARY KEY(artifactuuid, effective_version)) WITH CLUSTERING ORDER BY (effective_version DESC)" + }, + "drop": { + "version_info": "DROP TABLE IF EXISTS version_info", + "version_info_deleted": "DROP TABLE IF EXISTS version_info_deleted", + "unique_value": "DROP TABLE IF EXISTS unique_value", + "entitlement_pool": "DROP TABLE IF EXISTS entitlement_pool", + "vendor_license_model": "DROP TABLE IF EXISTS vendor_license_model", + "license_agreement": "DROP TABLE IF EXISTS license_agreement", + "feature_group": "DROP TABLE IF EXISTS feature_group", + "license_key_group": "DROP TABLE IF EXISTS license_key_group", + "vsp_information": "DROP TABLE IF EXISTS vsp_information", + "package_details": "DROP TABLE IF EXISTS package_details", + "vsp_network": "DROP TABLE IF EXISTS vsp_network", + "vsp_component": "DROP TABLE IF EXISTS vsp_component", + "vsp_component_nic": "DROP TABLE IF EXISTS vsp_component_nic", + "vsp_process":"DROP TABLE IF EXISTS vsp_process", + "choice_or_other": "DROP TYPE IF EXISTS choice_or_other", + "multi_choice_or_other": "DROP TYPE IF EXISTS multi_choice_or_other", + "application_config" : "DROP TABLE IF EXISTS application_config", + "vsp_service_artifact" :"DROP TABLE IF EXISTS vsp_service_artifact", + "vsp_service_template" :"DROP TABLE IF EXISTS vsp_service_template", + "vsp_enriched_service_artifact" :"DROP TABLE IF EXISTS vsp_enriched_service_artifact", + "vsp_enriched_service_template" :"DROP TABLE IF EXISTS vsp_enriched_service_template", + "action" : "DROP TABLE IF EXISTS action", + "supportedComponents_index" : "DROP INDEX IF EXISTS dox.action_supportedComponents", + "category_list_index" : "DROP INDEX IF EXISTS dox.action_category_list", + "supportedModels_index" : "DROP INDEX IF EXISTS dox.action_supportedModels", + "vendor_list_index" : "DROP INDEX IF EXISTS dox.action_vendor_list", + "actionUUID_index" : "DROP INDEX IF EXISTS dox.action_actionUUID", + "name_index" : "DROP INDEX IF EXISTS dox.action_name", + "ecomp_component": "DROP TABLE IF EXISTS dox.ecompcomponent", + "vsp_component_artifact": "DROP TABLE IF EXISTS dox.vsp_component_artifact", + "action_artifact":"DROP TABLE IF EXISTS action_artifact" + }, + "alter": { + "vsp_information": "ALTER TABLE vsp_information ADD questionnaire_data text", + "vsp_information_1": "ALTER TABLE vsp_information ADD vlm_version frozen", + "entitlement_pool": "alter table entitlement_pool ADD version_uuid text", + "license_key_group": "alter table license_key_group ADD version_uuid text" + } +} diff --git a/openecomp-be/tools/build/scripts/generate-application-config-insert-cql.sh b/openecomp-be/tools/build/scripts/generate-application-config-insert-cql.sh new file mode 100644 index 0000000000..e4e1ff0075 --- /dev/null +++ b/openecomp-be/tools/build/scripts/generate-application-config-insert-cql.sh @@ -0,0 +1,64 @@ +#/bin/sh + +############################################################################## +### +### generate-application-config-insert-cql.sh +### +### A script that generates the CQL commands to INSERT validation schemas to the application_config table. +### We keep the schemas FTL files under a folder - this folder will be parsed and INSERT commands will be created. +### +### If the path is 'schemaTemplates/composition/myFile.ftl' the result KEY will be: composition.myFile . +### +### Usage: +### +### ./generate-application-config-insert-cql.sh +### +### +### Author: Avi Ziv +### Version 1.0 for OPENECOMP +### Date: 10 Aug 2016 +### +############################################################################## + +#GLOBALS + +APP_CONFIG_TABLE='application_config' + +#### Functions - Start #### +usage() { echo "Usage: $0 , for example: $0 vsp.schemaTemplates schemaTemplates/" 1>&2; exit 1; } + +getFileContent() +{ + file=$1 + str=$(<$file) + echo $str +} + + +main() +{ + namespace=$1 + path=$2 + for fileName in $(find ${path} -type f) + do + value=$(getFileContent ${fileName}) + onlyFilename=$(basename $fileName) + name="${onlyFilename%.*}" + tempPath=$(dirname $fileName) + keyColumn=$(basename $tempPath).$name + echo "INSERT INTO $APP_CONFIG_TABLE (namespace,key,value) VALUES ('$namespace', '$keyColumn', '$value');" + done + + +exit 0 +} + +#### Functions - End #### + +# Check arguements +if [ "$#" -lt 2 ] || [ "$#" -gt 2 ]; then + usage +fi + + +main $1 $2 diff --git a/openecomp-be/tools/build/scripts/generate-cassandra-alter-cql.sh b/openecomp-be/tools/build/scripts/generate-cassandra-alter-cql.sh new file mode 100644 index 0000000000..827b3ab330 --- /dev/null +++ b/openecomp-be/tools/build/scripts/generate-cassandra-alter-cql.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +############################################################################## +### +### generate-cassandra-alter-cql.sh +### +### A script that generates the CQL commands of ALTER for the Cassnadra init. +### +### Usage: +### +### ./generate-cassandra-alter-cql.sh cassandra-commands.json +### +### +### Author: Avi Ziv +### Version 2.0 for OPENECOMP +### Date: 21 Sep 2016 +### +############################################################################## + +#GLOBALS + +RUN_PATH=$(cd "$(dirname "$0")" && pwd) + +#### Functions - Start #### +usage() { echo "Usage: $0 , for example: $0 cassandra-commands.json" 1>&2; exit 1; } + +main() +{ + echo "USE dox;" + $RUN_PATH/parse-json.py -t alter -f $1 +} + +#### Functions - End #### + +# Check arguements +if [ "$#" -lt 1 ] || [ "$#" -gt 1 ]; then + usage +fi + +main $1 diff --git a/openecomp-be/tools/build/scripts/generate-cassandra-drop-cql.sh b/openecomp-be/tools/build/scripts/generate-cassandra-drop-cql.sh new file mode 100644 index 0000000000..ddbf846b30 --- /dev/null +++ b/openecomp-be/tools/build/scripts/generate-cassandra-drop-cql.sh @@ -0,0 +1,40 @@ +#!/bin/sh + +############################################################################## +### +### generate-cassandra-drop-cql.sh +### +### A script that generates the CQL commands of DROP for the Cassnadra init. +### +### Usage: +### +### ./generate-cassandra-init-cql.sh cassandra-commands.json +### +### +### Author: Avi Ziv +### Version 1.0 for OPENECOMP +### Date: 21 Sep 2016 +### +############################################################################## + +#GLOBALS + +RUN_PATH=$(cd "$(dirname "$0")" && pwd) + +#### Functions - Start #### +usage() { echo "Usage: $0 , for example: $0 cassandra-commands.json" 1>&2; exit 1; } + +main() +{ + echo "USE dox;" + $RUN_PATH/parse-json.py -t drop -f $1 +} + +#### Functions - End #### + +# Check arguements +if [ "$#" -lt 1 ] || [ "$#" -gt 1 ]; then + usage +fi + +main $1 diff --git a/openecomp-be/tools/build/scripts/generate-cassandra-init-cql.sh b/openecomp-be/tools/build/scripts/generate-cassandra-init-cql.sh new file mode 100644 index 0000000000..65af5a51ae --- /dev/null +++ b/openecomp-be/tools/build/scripts/generate-cassandra-init-cql.sh @@ -0,0 +1,44 @@ +#!/bin/sh + +############################################################################## +### +### generate-cassandra-init-cql.sh +### +### A script that generates the CQL commands of CREATE for the Cassnadra init. +### +### Usage: +### +### ./generate-cassandra-init-cql.sh cassandra-commands.json +### +### +### Author: Avi Ziv +### Version 2.0 for OPENECOMP +### Date: 21 Sep 2016, added support for keyspace yes/no for OPENECOMP DevOps build +### +############################################################################## + +#GLOBALS + +RUN_PATH=$(cd "$(dirname "$0")" && pwd) + +#### Functions - Start #### +usage() { echo "Usage: $0 keyspace yes/no, for example: $0 cassandra-commands.json keyspace yes" 1>&2; exit 1; } + +main() +{ + if [ $3 == 'yes' ]; then + echo "CREATE KEYSPACE IF NOT EXISTS dox WITH REPLICATION = { 'class' : 'SimpleStrategy', 'replication_factor' : 3 };" + fi + echo "USE dox;" + $RUN_PATH/parse-json.py -t create -f $1 + +} + +#### Functions - End #### + +# Check arguements +if [ "$#" -lt 1 ] || [ "$#" -gt 3 ]; then + usage +fi + +main $1 $2 $3 diff --git a/openecomp-be/tools/build/scripts/parse-json.py b/openecomp-be/tools/build/scripts/parse-json.py new file mode 100644 index 0000000000..46537ceac5 --- /dev/null +++ b/openecomp-be/tools/build/scripts/parse-json.py @@ -0,0 +1,83 @@ +#!/usr/bin/python + +############################################################################## +### +### parse-json.py +### +### A utility to parse a cassnadra-commands file and return the commands per type +### An Example for a json file: +### { +### "create":{ +### "choice_or_other":"CREATE TYPE IF NOT EXISTS choice_or_other (results text)", +### "vendor_license_model": "CREATE TABLE IF NOT EXISTS vendor_license_model (vlm_id text PRIMARY KEY, name text, description text, icon text)", +### "license_agreement": "CREATE TABLE IF NOT EXISTS license_agreement (vlm_id text, la_id text, name text, description text, type text, contract text, req_const text, fg_ids set, PRIMARY KEY (vlm_id, la_id))", +### "feature_group": "CREATE TABLE IF NOT EXISTS feature_group (vlm_id text, fg_id text, name text, description text, ep_ids set, lkg_ids set, refd_by_las set, PRIMARY KEY (vlm_id, fg_id))", +### "license_key_group": "CREATE TABLE IF NOT EXISTS license_key_group (vlm_id text,lkg_id text,name text,description text, type text, operational_scope text, ref_fgs set,PRIMARY KEY (vlm_id, lkg_id))", +### } +### } +### +### The return for "create" will be: +### CREATE TYPE IF NOT EXISTS choice_or_other (results text) +### CREATE TABLE IF NOT EXISTS vendor_license_model (vlm_id text PRIMARY KEY, name text, description text, icon text) +### CREATE TABLE IF NOT EXISTS license_agreement (vlm_id text, la_id text, name text, description text, type text, contract text, req_const text, fg_ids set, PRIMARY KEY (vlm_id, la_id)) +### CREATE TABLE IF NOT EXISTS feature_group (vlm_id text, fg_id text, name text, description text, ep_ids set, lkg_ids set, refd_by_las set, PRIMARY KEY (vlm_id, fg_id)) +### CREATE TABLE IF NOT EXISTS license_key_group (vlm_id text,lkg_id text,name text,description text, type text, operational_scope text, ref_fgs set,PRIMARY KEY (vlm_id, lkg_id)) +### Usage: +### +### parse-json.py -t create -f cassandra-commands.json +### +### For example: +### +### +### Author: Avi Ziv +### Version 1.0 +### Date: 3 May 2016 +### +############################################################################## + +import sys, getopt +import json as json +from collections import OrderedDict + + +def readJsonFile(file, type): + with open(file, 'r') as f: + data = json.load(f, object_pairs_hook=OrderedDict) + return data[type] + +def printJsonTypeEntries(jsonData): + for i in jsonData.keys(): + print jsonData[i] + ';' + + +def usage(): + print 'parseJsonFile.py [-f & -t (OpenStack types)" + }, + { + "name": "memory", + "type": "Gauge", + "unit": "MB", + "category": "compute", + "description": "Volume of RAM allocated to the instance" + }, + { + "name": "memory.usage", + "type": "Gauge", + "unit": "MB", + "category": "compute", + "description": "Volume of RAM used by the instance from the amount of its allocated memory" + }, + { + "name": "memory.resident", + "type": "Gauge", + "unit": "MB", + "category": "compute", + "description": "Volume of RAM used by the instance on the physical machine" + }, + { + "name": "cpu", + "type": "Cumulative", + "unit": "ns", + "category": "compute", + "description": "CPU time used" + }, + { + "name": "cpu_util", + "type": "Gauge", + "unit": "%", + "category": "compute", + "description": "Average CPU utilization" + }, + { + "name": "cpu.delta", + "type": "Delta", + "unit": "ns", + "category": "compute", + "description": "CPU time used since previous datapoint" + }, + { + "name": "vcpus", + "type": "Gauge", + "unit": "ms", + "category": "compute", + "description": "Average disk latency" + } + ] +} \ No newline at end of file diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl new file mode 100644 index 0000000000..1c0cb4eb8a --- /dev/null +++ b/openecomp-be/tools/install/database/schemaTemplates/composition/component.ftl @@ -0,0 +1,28 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "name": { + "type": "string"<#if !manual>, + "enum": [ + "${component.name}" + ], + "default": "${component.name}" + }, + "displayName": { + "type": "string"<#if !manual && component.displayName??>, + "enum": [ + "${component.displayName}" + ], + "default": "${component.displayName}" + }, + "description": { + "type": "string" + } + }, + "additionalProperties": false, + "required": [ + "name"<#if !manual && component.displayName??>, + "displayName" + ] +} \ No newline at end of file diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/network.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/network.ftl new file mode 100644 index 0000000000..1193992923 --- /dev/null +++ b/openecomp-be/tools/install/database/schemaTemplates/composition/network.ftl @@ -0,0 +1,25 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "name": { + "type": "string"<#if !manual>, + "enum": [ + "${network.name}" + ], + "default": "${network.name}" + }, + "dhcp": { + "type": "boolean"<#if !manual>, + "enum": [ + ${network.dhcp?c} + ], + "default": ${network.dhcp?c} + } + }, + "additionalProperties": false, + "required": [ + "name", + "dhcp" + ] +} \ No newline at end of file diff --git a/openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl b/openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl new file mode 100644 index 0000000000..6111348f88 --- /dev/null +++ b/openecomp-be/tools/install/database/schemaTemplates/composition/nic.ftl @@ -0,0 +1,36 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "name": { + "type": "string"<#if !manual>, + "enum": [ + "${nic.name}" + ], + "default": "${nic.name}" + + }, + "description": { + "type": "string" + }<#if !manual><#if nic.networkId??>, + "networkId": { + "type": "string", + "enum": [ + "${nic.networkId}" + ], + "default": "${nic.networkId}" + } + <#else>, + "networkId": { + "type": "string", + "enum": [<#list networkIds as networkId> + "${networkId}"<#sep>, + ] + } + + }, + "additionalProperties": false, + "required": [ + "name" + ] +} \ No newline at end of file diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl new file mode 100644 index 0000000000..540afca430 --- /dev/null +++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/component.ftl @@ -0,0 +1,327 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "general": { + "type": "object", + "properties": { + "hypervisor": { + "type": "object", + "properties": { + "hypervisor": { + "type": "string", + "enum": [ + "KVM", + "VMWare ESXi" + ], + "default": "KVM" + }, + "drivers": { + "type": "string", + "maxLength": 300, + "pattern": "^[A-Za-z0-9_,-]*$" + }, + "containerFeaturesDescription": { + "type": "string", + "maxLength": 1000, + "pattern": "^[A-Za-z0-9_, -]*$" + } + }, + "additionalProperties": false + }, + "image": { + "type": "object", + "properties": { + "format": { + "type": "string", + "enum": [ + "aki", + "ami", + "ari", + "iso", + "qcow2", + "raw", + "vdi", + "vhd", + "vmdk" + ], + "default": "qcow2" + }, + "providedBy": { + "type": "string", + "enum": [ + "Vendor" + ], + "default": "Vendor" + }, + "bootDiskSizePerVM": { + "type": "number", + "maximum": 100 + }, + "ephemeralDiskSizePerVM": { + "type": "number", + "maximum": 400 + } + }, + "additionalProperties": false + }, + "recovery": { + "type": "object", + "properties": { + "pointObjective": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true, + "maximum": 15, + "exclusiveMaximum ": true + }, + "timeObjective": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true, + "maximum": 300, + "exclusiveMaximum ": true + }, + "vmProcessFailuresHandling": { + "type": "string" + } + }, + "additionalProperties": false + }, + "dnsConfiguration": { + "type": "string" + }, + "vmCloneUsage": { + "type": "string", + "maximum": 300 + } + }, + "additionalProperties": false + }, + "compute": { + "type": "object", + "properties": { + "vmSizing": { + "type": "object", + "properties": { + "numOfCPUs": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true, + "maximum": 16, + "default": 2 + }, + "fileSystemSizeGB": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true, + "default": 5 + }, + "persistentStorageVolumeSize": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true + }, + "IOOperationsPerSec": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true + } + }, + "additionalProperties": false + }, + "numOfVMs": { + "type": "object", + "properties": { + "minimum": { + "type": "number", + "minimum": 0, + "exclusiveMinimum": true, + "maximum": 100 + }, + "maximum": { + "type": "number", + "minimum": <#if (componentQuestionnaireData.compute.numOfVMs.minimum)?? + && (componentQuestionnaireData.compute.numOfVMs.minimum)?is_number + && ((componentQuestionnaireData.compute.numOfVMs.minimum) > 0 + && (componentQuestionnaireData.compute.numOfVMs.minimum) <= 100)> + ${componentQuestionnaireData.compute.numOfVMs.minimum}<#else> + 0 , + "exclusiveMinimum": true, + "maximum": 100 + }, + "CpuOverSubscriptionRatio": { + "type": "string", + "enum": [ + "1:1", + "4:1", + "16:1" + ], + "default": "4:1" + }, + "MemoryRAM": { + "type": "string", + "enum": [ + "2 GB", + "4 GB", + "8 GB" + ], + "default": "2 GB" + } + }, + "additionalProperties": false + }, + "guestOS": { + "type": "object", + "properties": { + "name": { + "type": "string", + "maxLength": 50 + }, + "bitSize": { + "type": "number", + "enum": [ + 64, + 32 + ], + "default": 64 + }, + "tools": { + "type": "string" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "highAvailabilityAndLoadBalancing": { + "type": "object", + "properties": { + "failureLoadDistribution": { + "type": "string", + "maxLength": 1000 + }, + "nkModelImplementation": { + "type": "string", + "maxLength": 1000 + }, + "architectureChoice": { + "type": "string", + "maxLength": 1000 + }, + "slaRequirements": { + "type": "string", + "maxLength": 1000 + }, + "horizontalScaling": { + "type": "string", + "maxLength": 1000 + }, + "loadDistributionMechanism": { + "type": "string", + "maxLength": 1000 + } + }, + "additionalProperties": false + }, + "network": { + "type": "object", + "properties": { + "networkCapacity": { + "type": "object", + "properties": { + "protocolWithHighestTrafficProfileAcrossAllNICs": { + "type": "string", + "enum": [ + "", + "TCP", + "UDP", + "SCTP", + "IPsec" + ], + "default": "" + }, + "networkTransactionsPerSecond": { + "type": "number" + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + }, + "storage": { + "type": "object", + "properties": { + "backup": { + "type": "object", + "properties": { + "backupType": { + "type": "string", + "enum": [ + "On Site", + "Off Site" + ], + "default": "On Site" + }, + "backupStorageSize": { + "type": "number" + }, + "backupSolution": { + "type": "string" + }, + "backupNIC": { + "type": "string", + "enum": [ + "", <#if nicNames??><#list nicNames as nicName> + "${nicName}"<#sep>, + ], + "default": "" + } + }, + "additionalProperties": false + }, + "snapshotBackup": { + "type": "object", + "properties": { + "snapshotFrequency": { + "type": "number", + "default": 24, + "minimum": 1, + "exclusiveMinimum": true + } + }, + "additionalProperties": false + }, + "logBackup": { + "type": "object", + "properties": { + "sizeOfLogFiles": { + "type": "number", + "maximum": 5, + "exclusiveMaximum": true + }, + "logBackupFrequency": { + "type": "number", + "maximum": 4, + "exclusiveMaximum": true + }, + "logRetentionPeriod": { + "type": "number", + "maximum": 15, + "exclusiveMaximum": true + }, + "logFileLocation": { + "type": "string", + "maxLength": 300 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/nic.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/nic.ftl new file mode 100644 index 0000000000..f5ea08b98a --- /dev/null +++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/nic.ftl @@ -0,0 +1,120 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "protocols": { + "type": "object", + "properties": { + "protocols": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "", + "TCP", + "UDP", + "SCTP", + "IPsec" + ], + "default": "" + }, + "minItems": 1 + }, + "protocolWithHighestTrafficProfile": { + "$ref": "#/properties/protocols/properties/protocols/items" + } + }, + "additionalProperties": false + }, + "ipConfiguration": { + "type": "object", + "properties": { + "ipv4Required": { + "type": "boolean", + "default": true + }, + "ipv6Required": { + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "network": { + "type": "object", + "properties": { + "networkDescription": { + "type": "string", + "pattern": "[A-Za-z]+", + "maxLength": 300 + } + }, + "additionalProperties": false + }, + "sizing": { + "type": "object", + "definitions": { + "peakAndAvg": { + "type": "object", + "properties": { + "peak": { + "type": "number" + }, + "avg": { + "type": "number" + } + }, + "additionalProperties": false + }, + "packetsAndBytes": { + "type": "object", + "properties": { + "packets": { + "$ref": "#/properties/sizing/definitions/peakAndAvg" + }, + "bytes": { + "$ref": "#/properties/sizing/definitions/peakAndAvg" + } + }, + "additionalProperties": false + } + }, + "properties": { + "describeQualityOfService": { + "type": "string" + }, + "inflowTrafficPerSecond": { + "$ref": "#/properties/sizing/definitions/packetsAndBytes" + }, + "outflowTrafficPerSecond": { + "$ref": "#/properties/sizing/definitions/packetsAndBytes" + }, + "flowLength": { + "$ref": "#/properties/sizing/definitions/packetsAndBytes" + }, + "acceptableJitter": { + "type": "object", + "properties": { + "mean": { + "type": "number" + }, + "max": { + "type": "number" + }, + "variable": { + "type": "number" + } + }, + "additionalProperties": false + }, + "acceptablePacketLoss": { + "type": "number", + "minimum": 0, + "maximum": 100 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/openecomp-be/tools/install/database/schemaTemplates/questionnaire/vsp.ftl b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/vsp.ftl new file mode 100644 index 0000000000..6b1502c4a2 --- /dev/null +++ b/openecomp-be/tools/install/database/schemaTemplates/questionnaire/vsp.ftl @@ -0,0 +1,89 @@ +{ + "$schema": "http://json-schema.org/draft-04/schema#", + "type": "object", + "properties": { + "general": { + "type": "object", + "properties": { + "affinityData": { + "type": "string", + "enum": [ + "", + "Affinity", + "Anti Affinity", + "None" + ], + "default": "" + }, + "availability": { + "type": "object", + "properties": { + "useAvailabilityZonesForHighAvailability": { + "type": "boolean", + "default": false + } + }, + "additionalProperties": false + }, + "regionsData": { + "type": "object", + "properties": { + "multiRegion": { + "type": "boolean", + "default": false + }, + "regions": { + "type": "array", + "items": { + "type": "string", + "enum": [ + "", + "1", + "2", + "3", + "4", + "5", + "6", + "7", + "8", + "9" + ], + "default": "" + } + } + }, + "additionalProperties": false + }, + "storageDataReplication": { + "type": "object", + "properties": { + "storageReplicationAcrossRegion": { + "type": "boolean", + "default": false + }, + "storageReplicationSize": { + "type": "number", + "maximum": 100, + "exclusiveMaximum": true + }, + "storageReplicationFrequency": { + "type": "number", + "minimum": 5 + }, + "storageReplicationSource": { + "type": "string", + "maxLength": 300 + }, + "storageReplicationDestination": { + "type": "string", + "maxLength": 300 + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false + } + }, + "additionalProperties": false +} \ No newline at end of file diff --git a/openecomp-be/tools/migration/1607_to_1610.py b/openecomp-be/tools/migration/1607_to_1610.py new file mode 100644 index 0000000000..2cec48b04d --- /dev/null +++ b/openecomp-be/tools/migration/1607_to_1610.py @@ -0,0 +1,281 @@ +#!/usr/bin/python +import os +import sys,json,datetime,time,types,httplib,re +import mimetypes + +DEFAULT_HOST = "127.0.0.1" +OPENECOMP_BE = "127.0.0.1" + +HOST = DEFAULT_HOST +DEFAULT_PORT = "8080" +DEFAULT_USERNAME = "cs0008" +DEFAULT_PASSWORD = "cs0008" + +ONBOARD_BASE_PATH = "/onboarding-api/v1.0" +VSP_LIST_PATH = "{0}/vendor-software-products".format(ONBOARD_BASE_PATH) +VSP_ACTIONS_PATH = "{0}/vendor-software-products/{{vspId}}/actions".format(ONBOARD_BASE_PATH) +VSP_UPLOAD_PATH = "{0}/vendor-software-products/{{vspId}}/upload".format(ONBOARD_BASE_PATH) +VSP_DOWNLOAD_PATH = "{0}/vendor-software-products/{{vspId}}/downloadHeat".format(ONBOARD_BASE_PATH) +VSP_GET_URL = "{0}/vendor-software-products/{{vspId}}".format(ONBOARD_BASE_PATH) + +def main(argv): + username=DEFAULT_USERNAME + password=DEFAULT_PASSWORD + host=DEFAULT_HOST + + if not argv: + print "Going to use default values" + else: + if argv[0].lower() == 'h' or argv[0].lower() == '-h': + printHelp() + return + + if argv[0] == '-ip': + host=argv[1] + else: + if argv[0].lower() == '-a' and '/' not in argv[1]: + print '\n>>> Error: Credentials required (username/password)\n' + printHelp() + return + + else: + creds = argv[1].split('/') + username = creds[0] + password = creds[1] # not used + + try: + cmdIp=argv[2] + host=argv[3] + except IndexError: + host=DEFAULT_HOST + print "Going to use user defined values" + Service.server(host) + + webHandler=WebHandler(host=host, port=DEFAULT_PORT) + response, headers = webHandler.rest(url=VSP_LIST_PATH, method='GET', data=None, attuid=username) + jResult = json.loads(response) + jSrvices = jResult["results"] + reportFileName = 'upgradereport.csv' #datetime.now() + reportFile = open(reportFileName, 'w') + reportFile.write(Service.header()) + + for jService in jSrvices: + serviceName = jService["name"] + vendorName = jService["vendorName"] + vspId = jService["id"] + status = jService["status"] + if status != "Locked": + lockingUser = "None" + else: + lockingUser = jService["lockingUser"] + + service = Service(serviceName=serviceName, vspId=vspId, vendorName=vendorName, lockingUser=lockingUser ) + print service + # Will try to GET the service + res = service.Get() + if res == 500: + serviceMigration(service, status, username) + else: + print "Service {0} was tested and does not need a migration".format(serviceName) + + reportFile.write(service.line()) + reportFile.close() + + +def serviceMigration(service, serviceStatus, username): + print "Service {0} was tested and it needs a migration".format(service.serviceName) + print "Service {0} - Migration start" + if serviceStatus == "Locked": + print "Service {0} is locked - forcing checkin".format(service.serviceName) + service.Checkin() + print "Doing new checkout" + service.Checkout(username) + + zipName = service.DownloadHeat() + if not zipName: + print "no heat found" + service.uploadStatus = "no heat found" + else: + uploadResponse = service.UploadHeat(zipName) + uploadResults = json.loads(uploadResponse) + if uploadResults['status'] == 'Success' and uploadResults['errors'].__len__() == 0: + service.uploadStatus = "Heat uploaded successfully" + else: + service.uploadStatus = "Heat uploaded with errors" + print "Doing new checkin" + service.Checkin() + + print "Service {0} - Migration end" + + +def printHelp(): + print("Upgrade script Help:") + print("==================================") + print("1607_to_1610 -h --> get help") + print("1607_to_1610 -a / [-ip {ip}]") + print("Example: 1607_to_1610 -a root/secret") + +class Service(object): + def __init__(self, serviceName, vspId ,vendorName, lockingUser): + self.serviceName = serviceName + self.vspId = vspId + self.vendorName = vendorName + self.lockingUser = lockingUser + self.webHandler = WebHandler(host=Service.serveraddress, port=DEFAULT_PORT) # Schema? + self.uploadStatus = "not started" + + def __repr__(self): + return 'Name: {0}, Id: {1}, Vendor: {2}, locked by: {3}, status {4}'.format(self.serviceName, self.vspId ,self.vendorName, self.lockingUser, self.uploadStatus) + @classmethod + def header(cls): + return 'Name,Id,Vendor,locked-by,status\n' + + @classmethod + def server(cls, address): + cls.serveraddress=address + + def line(self): + return '{0},{1},{2},{3},{4}\n'.format(self.serviceName, self.vspId ,self.vendorName, self.lockingUser, self.uploadStatus) + + def Checkout(self, attuid): + # /v1.0/vendor-software-products/{vspId}/actions + urlpath=VSP_ACTIONS_PATH.format(vspId=self.vspId) + response, headers = self.webHandler.rest( url=urlpath, method='PUT', data={"action": "Checkout"}, attuid=attuid) + self.lockingUser=attuid #we will later use this user to checkin + return response + + def Checkin(self): + # /v1.0/vendor-software-products/{vspId}/actions + urlpath = VSP_ACTIONS_PATH.format(vspId=self.vspId) + response, headers = self.webHandler.rest(url=urlpath, method='PUT', data={"action": "Checkin"}, attuid=self.lockingUser) + return response + + def Get(self): + # /v1.0/vendor-software-products/{vspId} + urlpath = VSP_GET_URL.format(vspId=self.vspId) + try: + response, headers = self.webHandler.rest(url=urlpath, method='GET', data=None, attuid=self.lockingUser) + except HttpError as e: + print e.message + response = e.status + return response + + def UploadHeat(self, zipName): + #/v1.0/vendor-software-products/{vspId}/upload + urlpath = VSP_UPLOAD_PATH.format(vspId=self.vspId) + try: + fields = [] + with open(zipName, 'rb') as fin: + buffer = fin.read() + fin.close() + files = [('upload', 'heatfile.zip', buffer)] + response = self.webHandler.post_multipart('HTTP', urlpath, fields, files, self.lockingUser) + + return response + finally: + print "done upload" + + def DownloadHeat(self): + urlpath=VSP_DOWNLOAD_PATH.format(vspId=self.vspId) + try: + response, headers = self.webHandler.rest(url=urlpath, method='Get', data=None, attuid=self.lockingUser, accept='application/octet-stream') + except HttpError as e: + if e.status == 404: + return "" + + for (key, value) in headers: + if key.lower() == "content-disposition": + file_name = value[value.index('=')+1:] + break + heatsDir= os.path.join(os.path.dirname(__file__), 'heats') + if not os.path.exists(heatsDir): + os.makedirs(heatsDir) + file_name = os.path.join(heatsDir, file_name) + with open(file_name, "wb") as fout: + fout.write(response) + fout.close() + + return file_name + + + +class WebHandler(object): + def __init__(self, host, port): + self.host = host + self.port = port + + def rest(self, url, method, data, attuid, accept='application/json', content_type='application/json'): + connection = httplib.HTTPConnection(host=self.host, port=self.port) + + try: + headers = {'Content-Type':content_type ,'Accept':accept} + headers['USER_ID'] = attuid + + connection.request(method=method, headers=headers, body=json.dumps(data), url=url) + response = connection.getresponse() + if response.status not in range(200, 300): + raise HttpError(status= response.status, message=response.reason) + + return response.read(), response.getheaders() + finally: + connection.close() + + def post_multipart(self, scheme, selector, fields, files, attuid): + """ + Post fields and files to an http host as multipart/form-data. + fields is a sequence of (name, value) elements for regular form fields. + files is a sequence of (name, filename, value) elements for data to be uploaded as files + Return the server's response page. + """ + content_type, body = self.encode_multipart_form_data(fields, files) + if scheme and scheme.lower() == "http": + h = httplib.HTTP(self.host, self.port) + else: + h = httplib.HTTPS(self.host, self.port) + h.putrequest('POST', selector) + h.putheader('content-type', content_type) + h.putheader('content-length', str(len(body))) + h.putheader('Accept', 'application/json') + h.putheader('USER_ID', attuid) + + h.endheaders() + h.send(body) + errcode, errmsg, headers = h.getreply() + print errcode, errmsg, headers + return h.file.read() + + def encode_multipart_form_data(self, fields, files): + LIMIT = '----------lImIt_of_THE_fIle_eW_$' + CRLF = '\r\n' + L = [] + for (key, value) in fields: + L.append('--' + LIMIT) + L.append('Content-Disposition: form-data; name="%s"' % key) + L.append('') + L.append(value) + for (key, filename, value) in files: + L.append('--' + LIMIT) + L.append('Content-Disposition: form-data; name="%s"; filename="%s"' % (key, filename)) + L.append('Content-Type: %s' % self.get_content_type(filename)) + L.append('') + L.append(value) + L.append('--' + LIMIT + '--') + L.append('') + body = CRLF.join(L) + content_type = 'multipart/form-data; boundary=%s' % LIMIT + return content_type, body + + def get_content_type(self, filename): + return mimetypes.guess_type(filename)[0] or 'application/octet-stream' + +class HttpError(Exception): + def __init__(self, status, message): + self.status = status + self.message=message + def __str__(self): + return repr(self.value, self.message) + +if __name__ == "__main__": + main(sys.argv[1:]) + + diff --git a/openecomp-be/tools/migration/README b/openecomp-be/tools/migration/README new file mode 100644 index 0000000000..7bca1f3f5e --- /dev/null +++ b/openecomp-be/tools/migration/README @@ -0,0 +1,88 @@ +Info - + Name: 1607 to 1610 ASDC VSP migration tool + Version: 4.0 + Date: 15 Sep, 2016 + +General - + This is a utility used for migration of VSP data from ASDC version 1607 to version 1610. + This utility will be executed post upgrade process to 1610. + This utility must run from the ASDC backend (BE) machine. + + From version 3.0 the tool can be run several times without changing a VSP version more then once, the first time. + Once the VSP is "fixed" it will not be migrated by this tool. + +Concept - + Once migrating ASDC from 1607 to 1610 changes were made in the VSP load/validation. + In order to support these changes and force a valid HEAT file upload, the migration process should be + run on the existing data. + Not doing so will result in VSPs that will not open for update action. + + The migration will run on VSPs that were upgraded from 1607 to 1610 and are not able to be retrieved. + +Pre ASDC upgrade requisite - + In order to achieve the best result from this tool users must check-in ALL VSPs. + +Limitations - + + * Will not work if user did not create a first version of the VSP, i.e. at least one time check-in action. + * Once run, user must checkout a VSP, go to General and re select a license model version. + + +Usage - + + Note: There are default values if the script is run without arguments. + The values are credentials: cs0008/cs0008, with host: 127.0.0.1 + 1607_to_1610 -h --> get help + 1607_to_1610 -a / [-ip {ip}] + Example: + using cassandra on localhost - 1607_to_1610 -a root/secret + using cassandra on remote host - 1607_to_1610 -a root/secert -ip 10.147.97.191 + + Result: + The migration result will be listed in a CSV file: upgradereport.csv + "None" is an indication that the VSP was not in a checkout status prior to the upgrade. + + Exmample for a valid output: + + Name: VSP-OK, Id: 9DB0E1563B22481D911ECD33989E1FDD, Vendor: OPENECOMP, locked by: None, status not started + Service VSP-OK was tested and does not need a migration + Name: VSP02-Checkout, Id: 8DF8D65535414AAAA23682E2532675E6, Vendor: OPENECOMP, locked by: cs0008, status not started + Server Error + Service VSP02-Checkout was tested and it needs a migration + Service VSP02 - Migration start + Service VSP02-Checkout is locked - forcing checkin + Doing new checkout + 200 OK Content-Type: application/json + Date: Thu, 08 Sep 2016 13:25:21 GMT + Server: Jetty(9.3.6.v20151106) + + done upload + Doing new checkin + Service VSP-EMPTY - Migration end + Name: VSP-EMPTY, Id: D26892D2839746E18075EF49C4586320, Vendor: OPENECOMP, locked by: None, status not started + Service VSP-EMPTY was tested and does not need a migration + Name: VSP01, Id: 98F5DDFD4F684086801E86A88A0D77AB, Vendor: OPENECOMP, locked by: None, status not started + Server Error + Service VSP01 was tested and it needs a migration + Service VSP-EMPTY - Migration start + Doing new checkout + 200 OK Content-Type: application/json + Date: Thu, 08 Sep 2016 13:25:22 GMT + Server: Jetty(9.3.6.v20151106) + + done upload + Doing new checkin + Service {0} - Migration end + + Example for a case with no migration needed: + + Name: VSP-OK, Id: 9DB0E1563B22481D911ECD33989E1FDD, Vendor: OPENECOMP, locked by: None, status not started + Service VSP-OK was tested and does not need a migration + Name: VSP02-Checkout, Id: 8DF8D65535414AAAA23682E2532675E6, Vendor: OPENECOMP, locked by: None, status not started + Service VSP02-Checkout was tested and does not need a migration + Name: VSP-EMPTY, Id: D26892D2839746E18075EF49C4586320, Vendor: OPENECOMP, locked by: None, status not started + Service VSP-EMPTY was tested and does not need a migration + Name: VSP01, Id: 98F5DDFD4F684086801E86A88A0D77AB, Vendor: OPENECOMP, locked by: None, status not started + Service VSP01 was tested and does not need a migration + + diff --git a/openecomp-be/tools/scripts/generate-manifest.py b/openecomp-be/tools/scripts/generate-manifest.py new file mode 100644 index 0000000000..87968e0f89 --- /dev/null +++ b/openecomp-be/tools/scripts/generate-manifest.py @@ -0,0 +1,435 @@ +#!/usr/bin/python + +############################################################################## +### +### generate-manifest.py +### +### A Vendor utility to generate a valid heat zip manifest file for the AT&T onboarding. +### +### Usage: +### +### generate-manifest.py [-f|--folder] vendor-heat-directory [-n|--name] manifest-name [-d|--description] manifet-description +### +### For example: +### +### ./generate-manifest.py --folder ./vota --name vOTA --description "HOT template to create vOTA server" +### +### Help: +### The script is doing the following: +### 1) Split the files into different types +### a. .env files +### b. Network files (anything containing the string network) +### c. Volume files (anything containing the string volume) +### d. Top level Heat files +### e. Other types +### 2) Match env files to heat files – looking for same name ignoring suffix and extension +### 3) Match Network childs +### a. Look for Top level heats which name is a substring of the name of the Network heat name. +### 4) Match Volume childs +### a. Look for Top level heats which name is a substring of the name of the Volume heat name. +### 5) Generate the JSON file from the above +### +### +### Author: Avi Ziv +### Version 1.4 for OPENECOMP 1.0 +### Date: 13 July 2016 (c) OPENECOMP +### +############################################################################## + +# import os,sys,getopt,json,re +import os, sys, getopt, re +from collections import OrderedDict +from json import JSONEncoder +import json + +VERSION = "1.4" +ENV_EXT = ".env" +SHELL_EXT = ".sh" +YAML_EXT = [".yaml", ".yml"] +# VERSION_DELIMITER_PATTERN='_v\d{*}.\d{*}' +# VERSION_DELIMITER_PATTERN='_v*.*' +#v1.0 +VERSION_DELIMITER_PATTERN = '_v\d+.\d+' +#07_12_2016 +VERSION_DELIMITER_PATTERN2 = '_\d+-\d+-\d+' + +# types +HEAT = "HEAT" +HEAT_BASE = "HEAT_BASE" +HEAT_NET = "HEAT_NET" +HEAT_VOL = "HEAT_VOL" +HEAT_ENV = "HEAT_ENV" +SHELL = "SHELL" +OTHER = "OTHER" + +globalVolumeVal = "VOLUME" +globalNetworkVal = "NETWORK" +globalBaseVal = "BASE" + + +def version(): + return VERSION + + +def usage(): + print ('usage: ' + sys.argv[0] + ' [-f|--folder] vendor-heat-directory [-n|--name] manifest-name [-d|--description] manifet-description' ) + + +def header(): + print ("\nASDC Vendor manifest file generator, version " + version() + "\n") + + +def getEnvVariables(value, defaultValue): + try: + eVal = os.environ[value] + return eVal + except KeyError: + print ("Missing ${" + value + "} envirunment variable. Using default value: " + defaultValue) + return defaultValue + + +def getF(listFiles): + print ("Analyzing files ...") + foundABase = False + files = listFiles + jsons = {} + lOfEnvs = {} + lOfVolumes = {} + lOfNetworks = {} + lOfHeats = {} + lOfShels = {} + lOfArtifacts = {} + + for f in files: + fullFilename = f[1] + fObj = ManifestFileInfo(fullFilename) + if fObj.isEnv(): + lOfEnvs[fObj.file_name] = fObj + elif fObj.isShell(): + lOfShels[fObj.file_name] = fObj + elif fObj.isVolume(): + lOfVolumes[fObj.file_name] = fObj + elif fObj.isNetwork(): + lOfNetworks[fObj.file_name] = fObj + elif (fObj.isYaml() and not fObj.isBase()): + lOfHeats[fObj.file_name] = fObj + elif fObj.isArtifact(): + lOfArtifacts[fObj.file_name] = fObj + elif (fObj.isBase() and fObj.isYaml()): + foundABase = True + lOfHeats[fObj.file_name] = fObj + + jsons['heats'] = lOfHeats + jsons['envs'] = lOfEnvs + jsons['shells'] = lOfShels + jsons['volumes'] = lOfVolumes + jsons['networks'] = lOfNetworks + jsons['artifacts'] = lOfArtifacts + + if not foundABase: + print (">>> Warning: No Base was found") + return jsons + +def loadFilesToList(folder): + print ("Analyzing files in folder: << " + folder + " >>") + files = os.listdir(folder) + listOfFiles = [] + for f in files: + if os.path.isdir(os.path.join(folder, f)): + ConsoleLogger.warning("Sub folders are ignored by this script, you may want to remove it before archiving") + continue + + filename, file_extension = os.path.splitext(f) + if filename == 'MANIFEST': + ConsoleLogger.warning("Your folder already contains a manifest file that will be overridden") + continue + listOfFiles.append([filename, f]) + return listOfFiles + + +def make(files): + flist = [] + dEnvs = {} + dEnvs = files['envs'] + dHeats = files['heats'] + dNetworks = files['networks'] + dVolumes = files['volumes'] + dArtifacts = files['artifacts'] + dShells = files['shells'] + + env_items = dEnvs.items() + for fileItem in env_items: + env_name = fileItem[1].file_name + env_base = fileItem[1].base_file_name + if env_name in dHeats: + dHeats[env_name].add(fileItem[1]) + continue + + if env_name in dNetworks.items(): + dNetworks[env_name].add(fileItem[1]) + continue + + if env_name in dVolumes.items(): + dVolumes[env_name[0]].add(env_name[1]) + continue + + for fName in dHeats: + heat_base = dHeats[fName].base_file_name + if env_base in heat_base: + dHeats[fName].add(dEnvs[env_name]) + break + else: + for fName in dNetworks: + net_base = dNetworks[fName].base_file_name + if env_base in net_base: + dNetworks[fName].add(dEnvs[env_name]) + break + else: + for fName in dVolumes: + vol_base = dVolumes[fName].base_file_name + if env_base in vol_base: + dVolumes[fName].add(dEnvs[env_name]) + break + + else: + flist.append(dEnvs[env_name]) + + for fName in dVolumes: + vol_base = dVolumes[fName].base_file_name + for hfName in dHeats: + heat_base = dHeats[hfName].base_file_name + if heat_base in vol_base: + dHeats[hfName].add(dVolumes[fName]) + break + else: + flist.append(dVolumes[fName]) + + for fName in dNetworks: + net_base = dNetworks[fName].base_file_name + for hfName in dHeats: + heat_base = dHeats[hfName].base_file_name + if heat_base in net_base: + dHeats[hfName].add(dNetworks[fName]) + break + else: + flist.append(dNetworks[fName]) + + for fName in dHeats: + flist.append(dHeats[fName]) + for fName in dShells: + flist.append(dShells[fName]) + for fName in dArtifacts: + flist.append(dArtifacts[fName]) + + print ("\n------------------------------------------------------------\n") + return flist + + +def generate(folder, name, description): + print ("Checking envirunment variables ...") + global globalVolumeVal + globalVolumeVal = getEnvVariables("VOLUME", globalVolumeVal) + + global globalNetworkVal + globalNetworkVal = getEnvVariables("NETWORK", globalNetworkVal) + + global globalBaseVal + globalBaseVal = getEnvVariables("BASE", globalBaseVal) + + YamlTabCleaner(folder).cleanYamlTabs() + + print ("Generating manifest file ...") + jsons = getF(loadFilesToList(folder)) + + lFiles = make(jsons) + manifest = Manifest(name, description, '1.0', lFiles) + output_json = json.dumps(manifest, default=jdefault, indent=4, sort_keys=False) + + f = open(os.path.join(folder, 'MANIFEST.json'), 'w') + f.write(output_json) + print("MANIFEST file created") + + +################ + +def jdefault(obj): + if hasattr(obj, '__json__'): + return obj.__json__() + else: + return obj.__dict__ + + +class ManifestFileInfo(object): + def __init__(self, filename): + self.name = filename + self.base = 'false' + self.data = [] + self.file_name, self.file_extension = os.path.splitext(filename) + self.base_file_name = re.sub(VERSION_DELIMITER_PATTERN, '', self.file_name) + self.base_file_name = re.sub(VERSION_DELIMITER_PATTERN2, '', self.base_file_name) + + if self.isEnv(): + self.heat_type = Types.ENV + elif self.isShell(): + self.heat_type = Types.SHELL + elif self.isVolume(): + self.heat_type = Types.VOL + elif self.isNetwork(): + self.heat_type = Types.NET + elif self.isYaml() and not self.isBase(): + self.heat_type = Types.HEAT + elif self.isArtifact(): + self.heat_type = Types.OTHER + elif (self.isBase() and self.isYaml()): + self.heat_type = Types.HEAT + self.base = 'true' + + def set(self, data): + self.data = data + + def add(self, item): + self.data.append(item) + + def isYaml(self): + return any(val in self.file_extension.lower() for val in YAML_EXT) + + def isEnv(self): + return self.file_extension.lower() == ENV_EXT.lower() + + def isShell(self): + return self.file_extension.lower() == SHELL_EXT.lower() + + def isVolume(self): + res = globalVolumeVal.lower() in self.file_name.lower() + return res + + def isNetwork(self): + res = globalNetworkVal.lower() in self.file_name.lower() + return res + + def isBase(self): + res = globalBaseVal.lower() in self.file_name.lower() + return res + + def isArtifact(self): + return (not self.isBase() and not self.isVolume() and not self.isNetwork() and not self.isEnv()) + + def isHEAT(self): + return ((self.heat_type == Types.HEAT) | (self.heat_type == Types.BASE) | (self.heat_type == Types.NET) | ( + self.heat_type == Types.VOL)) + + def __json__(self): + dict = OrderedDict( + [('file', self.name), ('type', self.heat_type)]) + if self.isHEAT(): + dict['isBase'] = self.base + if self.data != []: + dict['data'] = self.data + + return dict + + +class Manifest(object): + def __init__(self, name, description, version, data): + self.name = name + self.description = description + self.version = version + self.data = data + + def add(self, data): + self.data.append(data) + + def __json__(self): + return OrderedDict([('name', self.name), ('description', self.description), ('data', self.data)]) + + +class YamlTabCleaner(object): + def __init__(self, folder): + self.folder = folder + + def replaceTabs(self, sourceFile, targetFile): + with open(sourceFile, "rt") as fin: + if '\t' in fin.read(): + print("\'tab\' character was found in the file: " + sourceFile + "\na clean version of the file can be found under \'clean\' folder") + target = os.path.dirname(targetFile) + if not os.path.exists(target): + os.makedirs(target) + fin.seek(0) + with open(targetFile, "wt") as fout: + for line in fin: + fout.write(line.replace('\t', ' ')) + + def cleanYamlTabs(self): + included_extenstions = ['yml', 'yaml'] + files = [fn for fn in os.listdir(self.folder) + if any(fn.endswith(ext) for ext in included_extenstions)] + target = os.path.join(self.folder, "clean") + for file in files: + self.replaceTabs(os.path.join(self.folder, file), os.path.join(target, file)) + +class ConsoleLogger(object): + @classmethod + def error(cls, message): + print(">>> Error: " + message) + + @classmethod + def warning(cls, message): + print(">>> Warning: " + message) + + + @classmethod + def info(cls, message): + print(">>> Info: " + message) + + +def enum(**named_values): + return type('Enum', (), named_values) + + +################ + +def main(argv): + action = '' + folderName = '.' + name = '' + description = '' + version = '' + + try: + opts, args = getopt.getopt(argv, "h:f:n:d", ["folder=", "name=", "description=", ]) + except getopt.GetoptError as err: + # print help information and exit: + print ('>>>>' + str(err)) + usage() + sys.exit(2) + for opt, arg in opts: + if opt == '-h': + usage() + sys.exit() + elif opt in ('-f', '--folder'): + action = 'generate' + if not arg: + print ("Error: missing heat files directory") + usage() + sys.exit(2) + else: + folderName = arg + elif opt in ('-n', '--name'): + name = arg + elif opt in ('-d', '--description'): + description = arg + else: + usage() + + if action == 'generate': + generate(folderName, name, description) + sys.exit() + else: + usage() + + +if __name__ == "__main__": + header() + Types = enum(HEAT='HEAT', BASE='HEAT_BASE', NET='HEAT_NET', VOL='HEAT_VOL', ENV='HEAT_ENV', SHELL='SHELL', + OTHER='OTHER') + main(sys.argv[1:]) diff --git a/openecomp-be/tools/swagger-ui/WEB-INF/jetty-web.xml b/openecomp-be/tools/swagger-ui/WEB-INF/jetty-web.xml new file mode 100644 index 0000000000..11f2d9ec9e --- /dev/null +++ b/openecomp-be/tools/swagger-ui/WEB-INF/jetty-web.xml @@ -0,0 +1,8 @@ + + + + + /api-docs + diff --git a/openecomp-be/tools/swagger-ui/api-docs/api.html b/openecomp-be/tools/swagger-ui/api-docs/api.html new file mode 100644 index 0000000000..35bf7db136 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/api-docs/api.html @@ -0,0 +1,13140 @@ + + +API Document + + + +#Rest API + + +## HTTP:///onboarding-api + + +Rest API Documentation + + + +**Version** v1.0, build #${buildNumber} + + + + + + + + + + + + +# APIs + + +## /v1.0/application-configuration + + + + + + +### POST + + +<a id="insertToTable">Insert JSON schema into application config table</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>namespace</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>key</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/InputStream">InputStream</a> + </td> + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/application-configuration/{namespace} + + +### GET + +<a id="getListOfConfigurationByNamespaceFromTable">Get List of keys and values by namespace</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>namespace</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + + + +## /v1.0/application-configuration/{namespace}/{key} + + +### GET + +<a id="getFromTable">Get JSON schema by namespace and key</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>namespace</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>key</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/ConfigurationDataDto">ConfigurationDataDto</a>| + + + + + + + + + + + + + + + + + +## /v1.0/validation/{type}/validate + + + + + + +### POST + + +<a id="validateFile">Validate a package</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>type</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/InputStream">InputStream</a> + </td> + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-license-models + + +### GET + +<a id="listLicenseModels">List vendor license models</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>versionFilter</th> + <td>query</td> + <td>no</td> + <td>Currently supported value: &#x27;Final&#x27; - only vendor License models with final versions will be return - with their latest final version</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/VendorLicenseModelEntity">VendorLicenseModelEntity</a>]| + + + + + + +### POST + + +<a id="createLicenseModel">Create vendor license model</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/VendorLicenseModelRequest">VendorLicenseModelRequest</a> + </td> + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId} + + +### GET + +<a id="getLicenseModel">Get vendor license model</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/VendorLicenseModelEntity">VendorLicenseModelEntity</a>| + + + + +### PUT + +<a id="updateLicenseModel">Update vendor license model</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/VendorLicenseModelRequest">VendorLicenseModelRequest</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="deleteLicenseModel">Delete vendor license model</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/actions + + + + +### PUT + +<a id="actOnLicenseModel">Update vendor license model</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/VendorLicenseModelActionRequestDto">VendorLicenseModelActionRequestDto</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/entitlement-pools + + +### GET + +<a id="listEntitlementPools">List vendor entitlement pools</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a>]| + + + + + + +### POST + + +<a id="createEntitlementPool">Create vendor entitlement pool</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/EntitlementPoolRequest">EntitlementPoolRequest</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/entitlement-pools/{entitlementPoolId} + + +### GET + +<a id="getEntitlementPool">Get vendor entitlement pool</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>entitlementPoolId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a>| + + + + +### PUT + +<a id="updateEntitlementPool">Update vendor entitlement pool</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/EntitlementPoolRequest">EntitlementPoolRequest</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>entitlementPoolId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="deleteEntitlementPool">Delete vendor entitlement pool</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>entitlementPoolId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/feature-groups + + +### GET + +<a id="listFeatureGroups">List vendor feature groups</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/FeatureGroupEntity">FeatureGroupEntity</a>]| + + + + + + +### POST + + +<a id="createFeatureGroup">Create vendor feature group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/FeatureGroupRequest">FeatureGroupRequest</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/feature-groups/{featureGroupId} + + +### GET + +<a id="getFeatureGroup">Get vendor feature group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>featureGroupId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/FeatureGroupModel">FeatureGroupModel</a>| + + + + +### PUT + +<a id="updateFeatureGroup">Update vendor feature group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/FeatureGroupUpdateRequest">FeatureGroupUpdateRequest</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>featureGroupId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="deleteFeatureGroup">Delete vendor feature group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>featureGroupId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/license-agreements + + +### GET + +<a id="listLicenseAgreements">List vendor license agreements</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/LicenseAgreementEntity">LicenseAgreementEntity</a>]| + + + + + + +### POST + + +<a id="createLicenseAgreement">Create vendor license agreement</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/LicenseAgreementRequest">LicenseAgreementRequest</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/license-agreements/{licenseAgreementId} + + +### GET + +<a id="getLicenseAgreement">Get vendor license agreement</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>licenseAgreementId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/LicenseAgreementModel">LicenseAgreementModel</a>| + + + + +### PUT + +<a id="updateLicenseAgreement">Update vendor license agreement</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/LicenseAgreementUpdateRequest">LicenseAgreementUpdateRequest</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>licenseAgreementId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="deleteLicenseAgreement">Delete vendor license agreement</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>licenseAgreementId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/license-key-groups + + +### GET + +<a id="listLicenseKeyGroups">List vendor license key groups</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a>]| + + + + + + +### POST + + +<a id="createLicenseKeyGroup">Create vendor license key group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/LicenseKeyGroupRequestDto">LicenseKeyGroupRequestDto</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-license-models/{vlmId}/license-key-groups/{licenseKeyGroupId} + + +### GET + +<a id="getLicenseKeyGroup">Get vendor license key group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>licenseKeyGroupId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a>| + + + + +### PUT + +<a id="updateLicenseKeyGroup">Update vendor license key group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/LicenseKeyGroupRequestDto">LicenseKeyGroupRequestDto</a> + </td> + +</tr> + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>licenseKeyGroupId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="deleteLicenseKeyGroup">Delete vendor license key group</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vlmId</th> + <td>path</td> + <td>yes</td> + <td>Vendor license model Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>licenseKeyGroupId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products + + +### GET + +<a id="getVspList">Get list of vendor software products and their description</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>versionFilter</th> + <td>query</td> + <td>no</td> + <td>Currently supported values: &#x27;Final&#x27; - only vendor software products with final version will be return - with their latest final version</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### POST + + +<a id="createNewVsp">Create a new vendor software product</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/VspDescriptionDto">VspDescriptionDto</a> + </td> + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/VspCreationDto">VspCreationDto</a>| + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/packages + + +### GET + +<a id="listPackages">Get list of translated CSAR files details</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>category</th> + <td>query</td> + <td>no</td> + <td>Category</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>subCategory</th> + <td>query</td> + <td>no</td> + <td>Sub-category</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/PackageInfoDto">PackageInfoDto</a>]| + + + + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/packages/{vspId} + + +### GET + +<a id="getTranslatedFile">Get translated CSAR file</a> + +Exports translated file to a zip file + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/octet-stream + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/File">File</a>| + + + + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId} + + +### GET + +<a id="getVspDetails">Get details of a vendor software product</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + +### PUT + +<a id="updateVsp">Update an existing vendor software product</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/VspDescriptionDto">VspDescriptionDto</a> + </td> + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="deleteVsp">Deletes vendor software product by given id</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/actions + + + + +### PUT + +<a id="actOnVendorSoftwareProduct">Actions on a vendor software product</a> + +Performs one of the following actions on a vendor software product: |Checkout: Locks it for edits by other users. Only the locking user sees the edited version.|Undo_Checkout: Unlocks it and deletes the edits that were done.|Checkin: Unlocks it and activates the edited version to all users.| Submit: Finalize its active version.|Create_Package: Creates a CSAR zip file.| + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/VersionSoftwareProductActionRequestDto">VersionSoftwareProductActionRequestDto</a> + </td> + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components + + +### GET + +<a id="list">List vendor software product components</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/ComponentDto">ComponentDto</a>]| + + + + + + +### POST + + +<a id="create">Create a vendor software product component</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/ComponentRequestDto">ComponentRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + +### DELETE + +<a id="deleteList">Delete vendor software product components</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId} + + +### GET + +<a id="get">Get vendor software product component</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/ComponentData">ComponentData</a>| + + + + +### PUT + +<a id="update">Update vendor software product component</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/ComponentRequestDto">ComponentRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="delete">Delete vendor software product component</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp + + +### GET + +<a id="list">Get the filenames of uploaded MIB definitions</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/MibUploadStatusDto">MibUploadStatusDto</a>| + + + + + + + + +### DELETE + +<a id="deletePollMibFile">Delete vendor software product MIB Poll Definitions file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp-trap + + + + + + + + +### DELETE + +<a id="deleteTrapMibFile">Delete vendor software product MIB Trap Definitions file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp-trap/upload + + + + + + +### POST + + +<a id="uploadTrapMibFile">Upload vendor software product MIB Trap Definitions file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/Attachment">Attachment</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp/upload + + + + + + +### POST + + +<a id="uploadPollMibFile">Upload vendor software product MIB Poll Definitions file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/Attachment">Attachment</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/nics + + +### GET + +<a id="list">List vendor software product component NICs</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/NicDto">NicDto</a>]| + + + + + + +### POST + + +<a id="create">Create a vendor software product NIC</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/NicRequestDto">NicRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/nics/{nicId} + + +### GET + +<a id="get">Get vendor software product NIC</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>nicId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product NIC Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/NicDto">NicDto</a>| + + + + +### PUT + +<a id="update">Update vendor software product NIC</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/NicRequestDto">NicRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>nicId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product NIC Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="delete">Delete vendor software product NIC</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>nicId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product NIC Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/nics/{nicId}/questionnaire + + +### GET + +<a id="getQuestionnaire">Get vendor software product component NIC questionnaire</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>nicId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product NIC Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a>| + + + + +### PUT + +<a id="updateQuestionnaire">Update vendor software product component NIC questionnaire</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>nicId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product NIC Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/processes + + +### GET + +<a id="list">List vendor software product component processes</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>]| + + + + + + +### POST + + +<a id="create">Create a vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + +### DELETE + +<a id="deleteList">Delete vendor software product processes</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/processes/{processId} + + +### GET + +<a id="get">Get vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>| + + + + +### PUT + +<a id="update">Update vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="delete">Delete vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/processes/{processId}/upload + + +### GET + +<a id="getUploadedFile">Get vendor software product process uploaded file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/octet-stream + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### POST + + +<a id="uploadFile">Update vendor software product process upload</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/Attachment">Attachment</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + +### DELETE + +<a id="deleteUploadedFile">Delete vendor software product process uploaded file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/components/{componentId}/questionnaire + + +### GET + +<a id="getQuestionnaire">Get vendor software product component questionnaire</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a>| + + + + +### PUT + +<a id="updateQuestionnaire">Update vendor software product component questionnaire</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product component Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/downloadHeat + + +### GET + +<a id="getLatestHeatPackage">Get uploaded HEAT file</a> + +Downloads the latest HEAT package + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/octet-stream + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/File">File</a>| + + + + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/networks + + +### GET + +<a id="list">List vendor software product networks</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/NetworkDto">NetworkDto</a>]| + + + + + + +### POST + + +<a id="create">Create a vendor software product network</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/NetworkRequestDto">NetworkRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/networks/{networkId} + + +### GET + +<a id="get">Get vendor software product network</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>networkId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product network Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/NetworkDto">NetworkDto</a>| + + + + +### PUT + +<a id="update">Update vendor software product network</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/NetworkRequestDto">NetworkRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>networkId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product network Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="delete">Delete vendor software product network</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>networkId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product network Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/processes + + +### GET + +<a id="list">List vendor software product processes</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | Array[<a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>]| + + + + + + +### POST + + +<a id="create">Create a vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + +### DELETE + +<a id="deleteList">Delete vendor software product processes</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/processes/{processId} + + +### GET + +<a id="get">Get vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/ProcessEntityDto">ProcessEntityDto</a>| + + + + +### PUT + +<a id="update">Update vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/ProcessRequestDto">ProcessRequestDto</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="delete">Delete vendor software product process</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/processes/{processId}/upload + + +### GET + +<a id="getUploadedFile">Get vendor software product process uploaded file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/octet-stream + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### POST + + +<a id="uploadFile">Update vendor software product process upload</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/Attachment">Attachment</a> + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + +### DELETE + +<a id="deleteUploadedFile">Delete vendor software product process uploaded file</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>processId</th> + <td>path</td> + <td>yes</td> + <td>Vendor software product process Id</td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/questionnaire + + +### GET + +<a id="getQuestionnaire">Get vendor software product questionnaire</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a>| + + + + +### PUT + +<a id="updateQuestionnaire">Update vendor software product questionnaire</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + +## /v1.0/vendor-software-products/{vspId}/upload + + + + + + +### POST + + +<a id="uploadFile">Uploads a HEAT package to translate</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vspId</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/InputStream">InputStream</a> + </td> + +</tr> + +<tr> + <th>USER_ID</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| 200 | successful operation | <a href="#/definitions/UploadFileResponseDto">UploadFileResponseDto</a>| + + + + + + + + + + + + + + +## /workflow/v1.0/actions + + +### GET + +<a id="getFilteredActions">List Filtered Actions </a> + +Get list of actions based on a filter criteria | If no filter is sent all actions will be returned + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>vendor</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>category</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>name</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>modelId</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>componentId</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### POST + + +<a id="createAction">Create a new Action</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /workflow/v1.0/actions/components + + +### GET + +<a id="getEcompComponents">List ECOMP Components supported by Action Library</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + + + + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + + + +## /workflow/v1.0/actions/{actionInvariantUUID} + + +### GET + +<a id="getActionsByActionInvariantUuId">List Actions For Given Action Invariant UUID</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionInvariantUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>version</th> + <td>query</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + +### PUT + +<a id="updateAction">Update an existing action</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionInvariantUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + +### POST + + +<a id="actOnAction">Actions on a action</a> + +Performs one of the following actions on a action: |Checkout: Locks it for edits by other users. Only the locking user sees the edited version.|Undo_Checkout: Unlocks it and deletes the edits that were done.|Checkin: Unlocks it and activates the edited version to all users.| Submit: Finalize its active version.| + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionInvariantUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + +### DELETE + +<a id="deleteAction">Delete Action</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionInvariantUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /workflow/v1.0/actions/{actionInvariantUUID}/artifacts + + + + + + +### POST + + +<a id="uploadArtifact">Upload new Artifact</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionInvariantUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>Content-MD5</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/Attachment">Attachment</a> + </td> + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + +## /workflow/v1.0/actions/{actionInvariantUUID}/artifacts/{artifactUUID} + + + + +### PUT + +<a id="updateArtifact">Update an existing artifact</a> + + + + + + + + + +#### Request + + +**Content-Type: ** multipart/form-data + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionInvariantUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>artifactUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + + </td> + +</tr> + +<tr> + <th>Content-MD5</th> + <td>header</td> + <td>no</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>body</th> + <td>body</td> + <td>no</td> + <td></td> + <td> - </td> + + <td> + + <a href="#/definitions/Attachment">Attachment</a> + </td> + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + +### DELETE + +<a id="deleteArtifact">Delete Artifact</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionInvariantUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>artifactUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/json + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + +## /workflow/v1.0/actions/{actionUUID}/artifacts/{artifactUUID} + + +### GET + +<a id="downloadArtifact">Downloads artifact for action</a> + + + + + + + + + +#### Request + + +**Content-Type: ** application/json + +##### Parameters + +<table border="1"> + <tr> + <th>Name</th> + <th>Located in</th> + <th>Required</th> + <th>Description</th> + <th>Default</th> + <th>Schema</th> + </tr> + + + +<tr> + <th>actionUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + +<tr> + <th>artifactUUID</th> + <td>path</td> + <td>yes</td> + <td></td> + <td> - </td> + + + <td>string </td> + + +</tr> + + +</table> + + + +#### Response + +**Content-Type: ** application/octet-stream + + +| Status Code | Reason | Response Model | +|-------------|-------------|----------------| +| default | successful operation | - | + + + + + + + + + + + + + + + + + + +# Definitions + +## <a name="/definitions/Attachment">Attachment</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>headers</td> + <td> + + + object + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>object</td> + <td> + + + object + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>contentType</td> + <td> + + <a href="#/definitions/MediaType">MediaType</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>contentDisposition</td> + <td> + + <a href="#/definitions/ContentDisposition">ContentDisposition</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>dataHandler</td> + <td> + + <a href="#/definitions/DataHandler">DataHandler</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>contentId</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ChoiceOrOtherDtoAggregationFunction">ChoiceOrOtherDtoAggregationFunction</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>choice</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>other</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ChoiceOrOtherDtoEntitlementMetric">ChoiceOrOtherDtoEntitlementMetric</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>choice</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>other</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ChoiceOrOtherDtoEntitlementTime">ChoiceOrOtherDtoEntitlementTime</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>choice</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>other</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>choice</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>other</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/CommandInfo">CommandInfo</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>commandClass</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>commandName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ComponentData">ComponentData</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>displayName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ComponentDto">ComponentDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>displayName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ComponentRequestDto">ComponentRequestDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>displayName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ConfigurationDataDto">ConfigurationDataDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>value</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>timeStamp</td> + <td> + + + integer (int64) + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ContentDisposition">ContentDisposition</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>type</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>parameters</td> + <td> + + + object + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>filename</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/DataFlavor">DataFlavor</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>mimeType</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>humanPresentableName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>subType</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>defaultRepresentationClassAsString</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>primaryType</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>flavorJavaFileListType</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>flavorRemoteObjectType</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>flavorSerializedObjectType</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>flavorTextType</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>mimeTypeSerializedObject</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>representationClassByteBuffer</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>representationClassCharBuffer</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>representationClassInputStream</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>representationClassReader</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>representationClassRemote</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>representationClassSerializable</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/DataHandler">DataHandler</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>dataSource</td> + <td> + + <a href="#/definitions/DataSource">DataSource</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>inputStream</td> + <td> + + <a href="#/definitions/InputStream">InputStream</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>content</td> + <td> + + + object + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>contentType</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>outputStream</td> + <td> + + <a href="#/definitions/OutputStream">OutputStream</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>allCommands</td> + <td> + + + array[<a href="#/definitions/CommandInfo">CommandInfo</a>] + + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>preferredCommands</td> + <td> + + + array[<a href="#/definitions/CommandInfo">CommandInfo</a>] + + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>transferDataFlavors</td> + <td> + + + array[<a href="#/definitions/DataFlavor">DataFlavor</a>] + + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/DataSource">DataSource</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>inputStream</td> + <td> + + <a href="#/definitions/InputStream">InputStream</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>contentType</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>outputStream</td> + <td> + + <a href="#/definitions/OutputStream">OutputStream</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>thresholdValue</td> + <td> + + + integer (int32) + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>thresholdUnits</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>entitlementMetric</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoEntitlementMetric">ChoiceOrOtherDtoEntitlementMetric</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>increments</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>aggregationFunction</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoAggregationFunction">ChoiceOrOtherDtoAggregationFunction</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>operationalScope</td> + <td> + + <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>time</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoEntitlementTime">ChoiceOrOtherDtoEntitlementTime</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>manufacturerReferenceNumber</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>referencingFeatureGroups</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/EntitlementPoolRequest">EntitlementPoolRequest</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>thresholdValue</td> + <td> + + + integer (int32) + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>thresholdUnits</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>entitlementMetric</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoEntitlementMetric">ChoiceOrOtherDtoEntitlementMetric</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>increments</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>aggregationFunction</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoAggregationFunction">ChoiceOrOtherDtoAggregationFunction</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>operationalScope</td> + <td> + + <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>time</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoEntitlementTime">ChoiceOrOtherDtoEntitlementTime</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>manufacturerReferenceNumber</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ErrorMessage">ErrorMessage</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>level</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>message</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/FeatureGroupEntity">FeatureGroupEntity</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>partNumber</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licenseKeyGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>entitlementPoolsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>referencingLicenseAgreements</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/FeatureGroupModel">FeatureGroupModel</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>partNumber</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>referencingLicenseAgreements</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licenseKeyGroups</td> + <td> + + + array[<a href="#/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a>] + + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>entitlementPools</td> + <td> + + + array[<a href="#/definitions/EntitlementPoolEntity">EntitlementPoolEntity</a>] + + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/FeatureGroupRequest">FeatureGroupRequest</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>partNumber</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>addedLicenseKeyGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>addedEntitlementPoolsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/FeatureGroupUpdateRequest">FeatureGroupUpdateRequest</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>partNumber</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>addedLicenseKeyGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>addedEntitlementPoolsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>removedLicenseKeyGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>removedEntitlementPoolsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/File">File</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>path</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>canonicalPath</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>parent</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>absolute</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>absoluteFile</td> + <td> + + <a href="#/definitions/File">File</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>absolutePath</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>canonicalFile</td> + <td> + + <a href="#/definitions/File">File</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>freeSpace</td> + <td> + + + integer (int64) + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>parentFile</td> + <td> + + <a href="#/definitions/File">File</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>totalSpace</td> + <td> + + + integer (int64) + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>usableSpace</td> + <td> + + + integer (int64) + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>directory</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>file</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>hidden</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/InputStream">InputStream</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + +</table> + +## <a name="/definitions/LicenseAgreementEntity">LicenseAgreementEntity</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licenseTerm</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>requirementsAndConstrains</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>featureGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/LicenseAgreementModel">LicenseAgreementModel</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licenseTerm</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>requirementsAndConstrains</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>featureGroups</td> + <td> + + + array[<a href="#/definitions/FeatureGroupEntity">FeatureGroupEntity</a>] + + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/LicenseAgreementRequest">LicenseAgreementRequest</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licenseTerm</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>requirementsAndConstrains</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>addedFeatureGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/LicenseAgreementUpdateRequest">LicenseAgreementUpdateRequest</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licenseTerm</td> + <td> + + <a href="#/definitions/ChoiceOrOtherDtoLicenseTerm">ChoiceOrOtherDtoLicenseTerm</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>requirementsAndConstrains</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>addedFeatureGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>removedFeatureGroupsIds</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/LicenseKeyGroupEntityDto">LicenseKeyGroupEntityDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>type</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>operationalScope</td> + <td> + + <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>referencingFeatureGroups</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/LicenseKeyGroupRequestDto">LicenseKeyGroupRequestDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>type</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>operationalScope</td> + <td> + + <a href="#/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a> + + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/LicensingData">LicensingData</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>licenseAgreement</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>featureGroups</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/MediaType">MediaType</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>type</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>subtype</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>parameters</td> + <td> + + + object + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>wildcardSubtype</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>wildcardType</td> + <td> + + + boolean + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/MibUploadStatusDto">MibUploadStatusDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>snmpTrap</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>snmpPoll</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/MultiChoiceOrOtherDtoOperationalScope">MultiChoiceOrOtherDtoOperationalScope</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>choices</td> + <td> + + + array[string] + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>other</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/NetworkDto">NetworkDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>dhcp</td> + <td> + + + boolean + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/NetworkRequestDto">NetworkRequestDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>dhcp</td> + <td> + + + boolean + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/NicDto">NicDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>networkId</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>networkName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/NicRequestDto">NicRequestDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>networkId</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/OutputStream">OutputStream</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + +</table> + +## <a name="/definitions/PackageInfoDto">PackageInfoDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>displayName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>vspName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>version</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>packageId</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>category</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>subCategory</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>vendorName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>vendorRelease</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>packageChecksum</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>packageType</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ProcessEntityDto">ProcessEntityDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>artifactName</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/ProcessRequestDto">ProcessRequestDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/QuestionnaireResponseDto">QuestionnaireResponseDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>schema</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>data</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/UploadFileResponseDto">UploadFileResponseDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>fileNames</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>errors</td> + <td> + + + object + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>status</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/VendorLicenseModelActionRequestDto">VendorLicenseModelActionRequestDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>action</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/VendorLicenseModelEntity">VendorLicenseModelEntity</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>vendorName</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>iconRef</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>id</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>version</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>status</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>lockingUser</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>viewableVersions</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>finalVersions</td> + <td> + + + array[string] + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/VendorLicenseModelRequest">VendorLicenseModelRequest</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>vendorName</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>iconRef</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/VersionSoftwareProductActionRequestDto">VersionSoftwareProductActionRequestDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>action</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/VspCreationDto">VspCreationDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>vspId</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + +## <a name="/definitions/VspDescriptionDto">VspDescriptionDto</a> + +<table border="1"> + <tr> + <th>name</th> + <th>type</th> + <th>required</th> + <th>description</th> + <th>example</th> + </tr> + + <tr> + <td>name</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>description</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>icon</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>category</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>subCategory</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>vendorName</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>vendorId</td> + <td> + + + string + + </td> + <td>required</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licensingVersion</td> + <td> + + + string + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + + <tr> + <td>licensingData</td> + <td> + + <a href="#/definitions/LicensingData">LicensingData</a> + + + </td> + <td>optional</td> + <td>-</td> + <td></td> + </tr> + +</table> + + + + + \ No newline at end of file diff --git a/openecomp-be/tools/swagger-ui/api-docs/api.json b/openecomp-be/tools/swagger-ui/api-docs/api.json new file mode 100644 index 0000000000..8396339628 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/api-docs/api.json @@ -0,0 +1,4676 @@ +{ + "swagger" : "2.0", + "info" : { + "description" : "Rest API Documentation", + "version" : "v1.0, build #${buildNumber}", + "title" : "Rest API", + "termsOfService" : "http://www.github.com/kongchen/swagger-maven-plugin" + }, + "basePath" : "/onboarding-api", + "tags" : [ { + "name" : "Vendor License Models" + }, { + "name" : "Vendor License Model - Entitlement Pools" + }, { + "name" : "Vendor Software Product Processes" + }, { + "name" : "Application Configuration" + }, { + "name" : "Actions" + }, { + "name" : "Vendor License Model - License Key Groups" + }, { + "name" : "Vendor Software Product Component Processes" + }, { + "name" : "Vendor Software Product Components" + }, { + "name" : "Validation" + }, { + "name" : "Vendor Software Product Component MIB Uploads" + }, { + "name" : "Vendor License Model - License Agreements" + }, { + "name" : "Vendor Software Product Networks" + }, { + "name" : "Vendor Software Products" + }, { + "name" : "Vendor Software Product Component NICs" + }, { + "name" : "Vendor License Model - Feature Groups" + } ], + "schemes" : [ "http" ], + "paths" : { + "/v1.0/application-configuration" : { + "post" : { + "tags" : [ "Application Configuration" ], + "summary" : "Insert JSON schema into application config table", + "description" : "", + "operationId" : "insertToTable", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "namespace", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "key", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/InputStream" + } + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/application-configuration/{namespace}" : { + "get" : { + "tags" : [ "Application Configuration" ], + "summary" : "Get List of keys and values by namespace", + "description" : "", + "operationId" : "getListOfConfigurationByNamespaceFromTable", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "namespace", + "in" : "path", + "required" : true, + "type" : "string" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/application-configuration/{namespace}/{key}" : { + "get" : { + "tags" : [ "Application Configuration" ], + "summary" : "Get JSON schema by namespace and key", + "description" : "", + "operationId" : "getFromTable", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "namespace", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "key", + "in" : "path", + "required" : true, + "type" : "string" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/ConfigurationDataDto" + } + } + } + } + }, + "/v1.0/validation/{type}/validate" : { + "post" : { + "tags" : [ "Validation" ], + "summary" : "Validate a package", + "description" : "", + "operationId" : "validateFile", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "type", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/InputStream" + } + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models" : { + "get" : { + "tags" : [ "Vendor License Models" ], + "summary" : "List vendor license models", + "description" : "", + "operationId" : "listLicenseModels", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "versionFilter", + "in" : "query", + "description" : "Currently supported value: 'Final' - only vendor License models with final versions will be return - with their latest final version", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/VendorLicenseModelEntity" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor License Models" ], + "summary" : "Create vendor license model", + "description" : "", + "operationId" : "createLicenseModel", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/VendorLicenseModelRequest" + } + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}" : { + "get" : { + "tags" : [ "Vendor License Models" ], + "summary" : "Get vendor license model", + "description" : "", + "operationId" : "getLicenseModel", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/VendorLicenseModelEntity" + } + } + } + }, + "put" : { + "tags" : [ "Vendor License Models" ], + "summary" : "Update vendor license model", + "description" : "", + "operationId" : "updateLicenseModel", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/VendorLicenseModelRequest" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor License Models" ], + "summary" : "Delete vendor license model", + "description" : "", + "operationId" : "deleteLicenseModel", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/actions" : { + "put" : { + "tags" : [ "Vendor License Models" ], + "summary" : "Update vendor license model", + "description" : "", + "operationId" : "actOnLicenseModel", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/VendorLicenseModelActionRequestDto" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/entitlement-pools" : { + "get" : { + "tags" : [ "Vendor License Model - Entitlement Pools" ], + "summary" : "List vendor entitlement pools", + "description" : "", + "operationId" : "listEntitlementPools", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/EntitlementPoolEntity" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor License Model - Entitlement Pools" ], + "summary" : "Create vendor entitlement pool", + "description" : "", + "operationId" : "createEntitlementPool", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/EntitlementPoolRequest" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/entitlement-pools/{entitlementPoolId}" : { + "get" : { + "tags" : [ "Vendor License Model - Entitlement Pools" ], + "summary" : "Get vendor entitlement pool", + "description" : "", + "operationId" : "getEntitlementPool", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "entitlementPoolId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/EntitlementPoolEntity" + } + } + } + }, + "put" : { + "tags" : [ "Vendor License Model - Entitlement Pools" ], + "summary" : "Update vendor entitlement pool", + "description" : "", + "operationId" : "updateEntitlementPool", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/EntitlementPoolRequest" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "entitlementPoolId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor License Model - Entitlement Pools" ], + "summary" : "Delete vendor entitlement pool", + "description" : "", + "operationId" : "deleteEntitlementPool", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "entitlementPoolId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/feature-groups" : { + "get" : { + "tags" : [ "Vendor License Model - Feature Groups" ], + "summary" : "List vendor feature groups", + "description" : "", + "operationId" : "listFeatureGroups", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/FeatureGroupEntity" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor License Model - Feature Groups" ], + "summary" : "Create vendor feature group", + "description" : "", + "operationId" : "createFeatureGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/FeatureGroupRequest" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/feature-groups/{featureGroupId}" : { + "get" : { + "tags" : [ "Vendor License Model - Feature Groups" ], + "summary" : "Get vendor feature group", + "description" : "", + "operationId" : "getFeatureGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "featureGroupId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/FeatureGroupModel" + } + } + } + }, + "put" : { + "tags" : [ "Vendor License Model - Feature Groups" ], + "summary" : "Update vendor feature group", + "description" : "", + "operationId" : "updateFeatureGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/FeatureGroupUpdateRequest" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "featureGroupId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor License Model - Feature Groups" ], + "summary" : "Delete vendor feature group", + "description" : "", + "operationId" : "deleteFeatureGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "featureGroupId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/license-agreements" : { + "get" : { + "tags" : [ "Vendor License Model - License Agreements" ], + "summary" : "List vendor license agreements", + "description" : "", + "operationId" : "listLicenseAgreements", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/LicenseAgreementEntity" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor License Model - License Agreements" ], + "summary" : "Create vendor license agreement", + "description" : "", + "operationId" : "createLicenseAgreement", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/LicenseAgreementRequest" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/license-agreements/{licenseAgreementId}" : { + "get" : { + "tags" : [ "Vendor License Model - License Agreements" ], + "summary" : "Get vendor license agreement", + "description" : "", + "operationId" : "getLicenseAgreement", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "licenseAgreementId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/LicenseAgreementModel" + } + } + } + }, + "put" : { + "tags" : [ "Vendor License Model - License Agreements" ], + "summary" : "Update vendor license agreement", + "description" : "", + "operationId" : "updateLicenseAgreement", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/LicenseAgreementUpdateRequest" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "licenseAgreementId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor License Model - License Agreements" ], + "summary" : "Delete vendor license agreement", + "description" : "", + "operationId" : "deleteLicenseAgreement", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "licenseAgreementId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/license-key-groups" : { + "get" : { + "tags" : [ "Vendor License Model - License Key Groups" ], + "summary" : "List vendor license key groups", + "description" : "", + "operationId" : "listLicenseKeyGroups", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/LicenseKeyGroupEntityDto" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor License Model - License Key Groups" ], + "summary" : "Create vendor license key group", + "description" : "", + "operationId" : "createLicenseKeyGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/LicenseKeyGroupRequestDto" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-license-models/{vlmId}/license-key-groups/{licenseKeyGroupId}" : { + "get" : { + "tags" : [ "Vendor License Model - License Key Groups" ], + "summary" : "Get vendor license key group", + "description" : "", + "operationId" : "getLicenseKeyGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "licenseKeyGroupId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/LicenseKeyGroupEntityDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor License Model - License Key Groups" ], + "summary" : "Update vendor license key group", + "description" : "", + "operationId" : "updateLicenseKeyGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/LicenseKeyGroupRequestDto" + } + }, { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "licenseKeyGroupId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor License Model - License Key Groups" ], + "summary" : "Delete vendor license key group", + "description" : "", + "operationId" : "deleteLicenseKeyGroup", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vlmId", + "in" : "path", + "description" : "Vendor license model Id", + "required" : true, + "type" : "string" + }, { + "name" : "licenseKeyGroupId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products" : { + "get" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Get list of vendor software products and their description", + "description" : "", + "operationId" : "getVspList", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "versionFilter", + "in" : "query", + "description" : "Currently supported values: 'Final' - only vendor software products with final version will be return - with their latest final version", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "post" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Create a new vendor software product", + "description" : "", + "operationId" : "createNewVsp", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/VspDescriptionDto" + } + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/VspCreationDto" + } + } + } + } + }, + "/v1.0/vendor-software-products/packages" : { + "get" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Get list of translated CSAR files details", + "description" : "", + "operationId" : "listPackages", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "category", + "in" : "query", + "description" : "Category", + "required" : false, + "type" : "string" + }, { + "name" : "subCategory", + "in" : "query", + "description" : "Sub-category", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/PackageInfoDto" + } + } + } + } + } + }, + "/v1.0/vendor-software-products/packages/{vspId}" : { + "get" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Get translated CSAR file", + "description" : "Exports translated file to a zip file", + "operationId" : "getTranslatedFile", + "consumes" : [ "application/json" ], + "produces" : [ "application/octet-stream" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/File" + } + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}" : { + "get" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Get details of a vendor software product", + "description" : "", + "operationId" : "getVspDetails", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "put" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Update an existing vendor software product", + "description" : "", + "operationId" : "updateVsp", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/VspDescriptionDto" + } + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Deletes vendor software product by given id", + "description" : "", + "operationId" : "deleteVsp", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/actions" : { + "put" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Actions on a vendor software product", + "description" : "Performs one of the following actions on a vendor software product: |Checkout: Locks it for edits by other users. Only the locking user sees the edited version.|Undo_Checkout: Unlocks it and deletes the edits that were done.|Checkin: Unlocks it and activates the edited version to all users.| Submit: Finalize its active version.|Create_Package: Creates a CSAR zip file.|", + "operationId" : "actOnVendorSoftwareProduct", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/VersionSoftwareProductActionRequestDto" + } + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components" : { + "get" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "List vendor software product components", + "description" : "", + "operationId" : "list", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ComponentDto" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "Create a vendor software product component", + "description" : "", + "operationId" : "create", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/ComponentRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "Delete vendor software product components", + "description" : "", + "operationId" : "deleteList", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}" : { + "get" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "Get vendor software product component", + "description" : "", + "operationId" : "get", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/ComponentData" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "Update vendor software product component", + "description" : "", + "operationId" : "update", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/ComponentRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "Delete vendor software product component", + "description" : "", + "operationId" : "delete", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp" : { + "get" : { + "tags" : [ "Vendor Software Product Component MIB Uploads" ], + "summary" : "Get the filenames of uploaded MIB definitions", + "description" : "", + "operationId" : "list", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/MibUploadStatusDto" + } + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Component MIB Uploads" ], + "summary" : "Delete vendor software product MIB Poll Definitions file", + "description" : "", + "operationId" : "deletePollMibFile", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp-trap" : { + "delete" : { + "tags" : [ "Vendor Software Product Component MIB Uploads" ], + "summary" : "Delete vendor software product MIB Trap Definitions file", + "description" : "", + "operationId" : "deleteTrapMibFile", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp-trap/upload" : { + "post" : { + "tags" : [ "Vendor Software Product Component MIB Uploads" ], + "summary" : "Upload vendor software product MIB Trap Definitions file", + "description" : "", + "operationId" : "uploadTrapMibFile", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Attachment" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/monitors/snmp/upload" : { + "post" : { + "tags" : [ "Vendor Software Product Component MIB Uploads" ], + "summary" : "Upload vendor software product MIB Poll Definitions file", + "description" : "", + "operationId" : "uploadPollMibFile", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Attachment" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/nics" : { + "get" : { + "tags" : [ "Vendor Software Product Component NICs" ], + "summary" : "List vendor software product component NICs", + "description" : "", + "operationId" : "list", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/NicDto" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor Software Product Component NICs" ], + "summary" : "Create a vendor software product NIC", + "description" : "", + "operationId" : "create", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/NicRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/nics/{nicId}" : { + "get" : { + "tags" : [ "Vendor Software Product Component NICs" ], + "summary" : "Get vendor software product NIC", + "description" : "", + "operationId" : "get", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "nicId", + "in" : "path", + "description" : "Vendor software product NIC Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/NicDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Product Component NICs" ], + "summary" : "Update vendor software product NIC", + "description" : "", + "operationId" : "update", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/NicRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "nicId", + "in" : "path", + "description" : "Vendor software product NIC Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Component NICs" ], + "summary" : "Delete vendor software product NIC", + "description" : "", + "operationId" : "delete", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "nicId", + "in" : "path", + "description" : "Vendor software product NIC Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/nics/{nicId}/questionnaire" : { + "get" : { + "tags" : [ "Vendor Software Product Component NICs" ], + "summary" : "Get vendor software product component NIC questionnaire", + "description" : "", + "operationId" : "getQuestionnaire", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "nicId", + "in" : "path", + "description" : "Vendor software product NIC Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/QuestionnaireResponseDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Product Component NICs" ], + "summary" : "Update vendor software product component NIC questionnaire", + "description" : "", + "operationId" : "updateQuestionnaire", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "nicId", + "in" : "path", + "description" : "Vendor software product NIC Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/processes" : { + "get" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "List vendor software product component processes", + "description" : "", + "operationId" : "list", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ProcessEntityDto" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Create a vendor software product process", + "description" : "", + "operationId" : "create", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/ProcessRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Delete vendor software product processes", + "description" : "", + "operationId" : "deleteList", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/processes/{processId}" : { + "get" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Get vendor software product process", + "description" : "", + "operationId" : "get", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/ProcessEntityDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Update vendor software product process", + "description" : "", + "operationId" : "update", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/ProcessRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Delete vendor software product process", + "description" : "", + "operationId" : "delete", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/processes/{processId}/upload" : { + "get" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Get vendor software product process uploaded file", + "description" : "", + "operationId" : "getUploadedFile", + "consumes" : [ "application/json" ], + "produces" : [ "application/octet-stream" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "post" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Update vendor software product process upload", + "description" : "", + "operationId" : "uploadFile", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Attachment" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Component Processes" ], + "summary" : "Delete vendor software product process uploaded file", + "description" : "", + "operationId" : "deleteUploadedFile", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/components/{componentId}/questionnaire" : { + "get" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "Get vendor software product component questionnaire", + "description" : "", + "operationId" : "getQuestionnaire", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/QuestionnaireResponseDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Product Components" ], + "summary" : "Update vendor software product component questionnaire", + "description" : "", + "operationId" : "updateQuestionnaire", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "componentId", + "in" : "path", + "description" : "Vendor software product component Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/downloadHeat" : { + "get" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Get uploaded HEAT file", + "description" : "Downloads the latest HEAT package", + "operationId" : "getLatestHeatPackage", + "consumes" : [ "application/json" ], + "produces" : [ "application/octet-stream" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/File" + } + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/networks" : { + "get" : { + "tags" : [ "Vendor Software Product Networks" ], + "summary" : "List vendor software product networks", + "description" : "", + "operationId" : "list", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/NetworkDto" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor Software Product Networks" ], + "summary" : "Create a vendor software product network", + "description" : "", + "operationId" : "create", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/NetworkRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/networks/{networkId}" : { + "get" : { + "tags" : [ "Vendor Software Product Networks" ], + "summary" : "Get vendor software product network", + "description" : "", + "operationId" : "get", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "networkId", + "in" : "path", + "description" : "Vendor software product network Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/NetworkDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Product Networks" ], + "summary" : "Update vendor software product network", + "description" : "", + "operationId" : "update", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/NetworkRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "networkId", + "in" : "path", + "description" : "Vendor software product network Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Networks" ], + "summary" : "Delete vendor software product network", + "description" : "", + "operationId" : "delete", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "networkId", + "in" : "path", + "description" : "Vendor software product network Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/processes" : { + "get" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "List vendor software product processes", + "description" : "", + "operationId" : "list", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ProcessEntityDto" + } + } + } + } + }, + "post" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Create a vendor software product process", + "description" : "", + "operationId" : "create", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/ProcessRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Delete vendor software product processes", + "description" : "", + "operationId" : "deleteList", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/processes/{processId}" : { + "get" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Get vendor software product process", + "description" : "", + "operationId" : "get", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/ProcessEntityDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Update vendor software product process", + "description" : "", + "operationId" : "update", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/ProcessRequestDto" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Delete vendor software product process", + "description" : "", + "operationId" : "delete", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/processes/{processId}/upload" : { + "get" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Get vendor software product process uploaded file", + "description" : "", + "operationId" : "getUploadedFile", + "consumes" : [ "application/json" ], + "produces" : [ "application/octet-stream" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "post" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Update vendor software product process upload", + "description" : "", + "operationId" : "uploadFile", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Attachment" + } + }, { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Vendor Software Product Processes" ], + "summary" : "Delete vendor software product process uploaded file", + "description" : "", + "operationId" : "deleteUploadedFile", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "description" : "Vendor software product Id", + "required" : true, + "type" : "string" + }, { + "name" : "processId", + "in" : "path", + "description" : "Vendor software product process Id", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/questionnaire" : { + "get" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Get vendor software product questionnaire", + "description" : "", + "operationId" : "getQuestionnaire", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/QuestionnaireResponseDto" + } + } + } + }, + "put" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Update vendor software product questionnaire", + "description" : "", + "operationId" : "updateQuestionnaire", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/v1.0/vendor-software-products/{vspId}/upload" : { + "post" : { + "tags" : [ "Vendor Software Products" ], + "summary" : "Uploads a HEAT package to translate", + "description" : "", + "operationId" : "uploadFile", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vspId", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/InputStream" + } + }, { + "name" : "USER_ID", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + } ], + "responses" : { + "200" : { + "description" : "successful operation", + "schema" : { + "$ref" : "#/definitions/UploadFileResponseDto" + } + } + } + } + }, + "/workflow/v1.0/actions" : { + "get" : { + "tags" : [ "Actions" ], + "summary" : "List Filtered Actions ", + "description" : "Get list of actions based on a filter criteria | If no filter is sent all actions will be returned", + "operationId" : "getFilteredActions", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "vendor", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "category", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "name", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "modelId", + "in" : "query", + "required" : false, + "type" : "string" + }, { + "name" : "componentId", + "in" : "query", + "required" : false, + "type" : "string" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "post" : { + "tags" : [ "Actions" ], + "summary" : "Create a new Action", + "description" : "", + "operationId" : "createAction", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/workflow/v1.0/actions/components" : { + "get" : { + "tags" : [ "Actions" ], + "summary" : "List ECOMP Components supported by Action Library", + "description" : "", + "operationId" : "getEcompComponents", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/workflow/v1.0/actions/{actionInvariantUUID}" : { + "get" : { + "tags" : [ "Actions" ], + "summary" : "List Actions For Given Action Invariant UUID", + "description" : "", + "operationId" : "getActionsByActionInvariantUuId", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "actionInvariantUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "version", + "in" : "query", + "required" : false, + "type" : "string" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "post" : { + "tags" : [ "Actions" ], + "summary" : "Actions on a action", + "description" : "Performs one of the following actions on a action: |Checkout: Locks it for edits by other users. Only the locking user sees the edited version.|Undo_Checkout: Unlocks it and deletes the edits that were done.|Checkin: Unlocks it and activates the edited version to all users.| Submit: Finalize its active version.|", + "operationId" : "actOnAction", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "actionInvariantUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "put" : { + "tags" : [ "Actions" ], + "summary" : "Update an existing action", + "description" : "", + "operationId" : "updateAction", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "actionInvariantUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Actions" ], + "summary" : "Delete Action", + "description" : "", + "operationId" : "deleteAction", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "actionInvariantUUID", + "in" : "path", + "required" : true, + "type" : "string" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/workflow/v1.0/actions/{actionInvariantUUID}/artifacts" : { + "post" : { + "tags" : [ "Actions" ], + "summary" : "Upload new Artifact", + "description" : "", + "operationId" : "uploadArtifact", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "actionInvariantUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "Content-MD5", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Attachment" + } + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/workflow/v1.0/actions/{actionInvariantUUID}/artifacts/{artifactUUID}" : { + "put" : { + "tags" : [ "Actions" ], + "summary" : "Update an existing artifact", + "description" : "", + "operationId" : "updateArtifact", + "consumes" : [ "multipart/form-data" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "actionInvariantUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "artifactUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "type" : "string" + } + }, { + "name" : "Content-MD5", + "in" : "header", + "required" : false, + "type" : "string", + "default" : "" + }, { + "in" : "body", + "name" : "body", + "required" : false, + "schema" : { + "$ref" : "#/definitions/Attachment" + } + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + }, + "delete" : { + "tags" : [ "Actions" ], + "summary" : "Delete Artifact", + "description" : "", + "operationId" : "deleteArtifact", + "consumes" : [ "application/json" ], + "produces" : [ "application/json" ], + "parameters" : [ { + "name" : "actionInvariantUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "artifactUUID", + "in" : "path", + "required" : true, + "type" : "string" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + }, + "/workflow/v1.0/actions/{actionUUID}/artifacts/{artifactUUID}" : { + "get" : { + "tags" : [ "Actions" ], + "summary" : "Downloads artifact for action", + "description" : "", + "operationId" : "downloadArtifact", + "consumes" : [ "application/json" ], + "produces" : [ "application/octet-stream" ], + "parameters" : [ { + "name" : "actionUUID", + "in" : "path", + "required" : true, + "type" : "string" + }, { + "name" : "artifactUUID", + "in" : "path", + "required" : true, + "type" : "string" + } ], + "responses" : { + "default" : { + "description" : "successful operation" + } + } + } + } + }, + "definitions" : { + "Attachment" : { + "type" : "object", + "properties" : { + "headers" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + }, + "object" : { + "type" : "object" + }, + "contentType" : { + "$ref" : "#/definitions/MediaType" + }, + "contentDisposition" : { + "$ref" : "#/definitions/ContentDisposition" + }, + "dataHandler" : { + "$ref" : "#/definitions/DataHandler" + }, + "contentId" : { + "type" : "string" + } + } + }, + "ChoiceOrOtherDtoAggregationFunction" : { + "type" : "object", + "required" : [ "choice", "other" ], + "properties" : { + "choice" : { + "type" : "string", + "enum" : [ "Peak", "Average", "Other" ] + }, + "other" : { + "type" : "string" + } + } + }, + "ChoiceOrOtherDtoEntitlementMetric" : { + "type" : "object", + "required" : [ "choice", "other" ], + "properties" : { + "choice" : { + "type" : "string", + "enum" : [ "Software_Instances_Count", "Core", "CPU", "Trunks", "User", "Subscribers", "Tenants", "Tokens", "Seats", "Units_TB", "Units_MB", "Units_GB", "Other" ] + }, + "other" : { + "type" : "string" + } + } + }, + "ChoiceOrOtherDtoEntitlementTime" : { + "type" : "object", + "required" : [ "choice", "other" ], + "properties" : { + "choice" : { + "type" : "string", + "enum" : [ "Hour", "Day", "Month", "Quarter", "Year", "Other" ] + }, + "other" : { + "type" : "string" + } + } + }, + "ChoiceOrOtherDtoLicenseTerm" : { + "type" : "object", + "required" : [ "choice", "other" ], + "properties" : { + "choice" : { + "type" : "string", + "enum" : [ "Fixed_Term", "Perpetual", "Unlimited", "Other" ] + }, + "other" : { + "type" : "string" + } + } + }, + "CommandInfo" : { + "type" : "object", + "properties" : { + "commandClass" : { + "type" : "string" + }, + "commandName" : { + "type" : "string" + } + } + }, + "ComponentData" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + } + } + }, + "ComponentDto" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "string" + } + } + }, + "ComponentRequestDto" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "displayName" : { + "type" : "string" + }, + "description" : { + "type" : "string" + } + } + }, + "ConfigurationDataDto" : { + "type" : "object", + "properties" : { + "value" : { + "type" : "string" + }, + "timeStamp" : { + "type" : "integer", + "format" : "int64" + } + } + }, + "ContentDisposition" : { + "type" : "object", + "properties" : { + "type" : { + "type" : "string" + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "filename" : { + "type" : "string" + } + } + }, + "DataFlavor" : { + "type" : "object", + "properties" : { + "mimeType" : { + "type" : "string" + }, + "humanPresentableName" : { + "type" : "string" + }, + "subType" : { + "type" : "string" + }, + "defaultRepresentationClassAsString" : { + "type" : "string" + }, + "primaryType" : { + "type" : "string" + }, + "flavorJavaFileListType" : { + "type" : "boolean", + "default" : false + }, + "flavorRemoteObjectType" : { + "type" : "boolean", + "default" : false + }, + "flavorSerializedObjectType" : { + "type" : "boolean", + "default" : false + }, + "flavorTextType" : { + "type" : "boolean", + "default" : false + }, + "mimeTypeSerializedObject" : { + "type" : "boolean", + "default" : false + }, + "representationClassByteBuffer" : { + "type" : "boolean", + "default" : false + }, + "representationClassCharBuffer" : { + "type" : "boolean", + "default" : false + }, + "representationClassInputStream" : { + "type" : "boolean", + "default" : false + }, + "representationClassReader" : { + "type" : "boolean", + "default" : false + }, + "representationClassRemote" : { + "type" : "boolean", + "default" : false + }, + "representationClassSerializable" : { + "type" : "boolean", + "default" : false + } + } + }, + "DataHandler" : { + "type" : "object", + "properties" : { + "dataSource" : { + "$ref" : "#/definitions/DataSource" + }, + "name" : { + "type" : "string" + }, + "inputStream" : { + "$ref" : "#/definitions/InputStream" + }, + "content" : { + "type" : "object" + }, + "contentType" : { + "type" : "string" + }, + "outputStream" : { + "$ref" : "#/definitions/OutputStream" + }, + "allCommands" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/CommandInfo" + } + }, + "preferredCommands" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/CommandInfo" + } + }, + "transferDataFlavors" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/DataFlavor" + } + } + } + }, + "DataSource" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "inputStream" : { + "$ref" : "#/definitions/InputStream" + }, + "contentType" : { + "type" : "string" + }, + "outputStream" : { + "$ref" : "#/definitions/OutputStream" + } + } + }, + "EntitlementPoolEntity" : { + "type" : "object", + "required" : [ "aggregationFunction", "description", "entitlementMetric", "manufacturerReferenceNumber", "name", "operationalScope", "thresholdUnits", "thresholdValue", "time" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "thresholdValue" : { + "type" : "integer", + "format" : "int32" + }, + "thresholdUnits" : { + "type" : "string", + "enum" : [ "Absolute", "Percentage" ] + }, + "entitlementMetric" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoEntitlementMetric" + }, + "increments" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "aggregationFunction" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoAggregationFunction" + }, + "operationalScope" : { + "$ref" : "#/definitions/MultiChoiceOrOtherDtoOperationalScope" + }, + "time" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoEntitlementTime" + }, + "manufacturerReferenceNumber" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 100 + }, + "id" : { + "type" : "string" + }, + "referencingFeatureGroups" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "EntitlementPoolRequest" : { + "type" : "object", + "required" : [ "aggregationFunction", "description", "entitlementMetric", "manufacturerReferenceNumber", "name", "operationalScope", "thresholdUnits", "thresholdValue", "time" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "thresholdValue" : { + "type" : "integer", + "format" : "int32" + }, + "thresholdUnits" : { + "type" : "string", + "enum" : [ "Absolute", "Percentage" ] + }, + "entitlementMetric" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoEntitlementMetric" + }, + "increments" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "aggregationFunction" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoAggregationFunction" + }, + "operationalScope" : { + "$ref" : "#/definitions/MultiChoiceOrOtherDtoOperationalScope" + }, + "time" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoEntitlementTime" + }, + "manufacturerReferenceNumber" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 100 + } + } + }, + "ErrorMessage" : { + "type" : "object", + "properties" : { + "level" : { + "type" : "string", + "enum" : [ "ERROR", "WARNING", "INFO" ] + }, + "message" : { + "type" : "string" + } + } + }, + "FeatureGroupEntity" : { + "type" : "object", + "required" : [ "description", "name", "partNumber" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "partNumber" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "licenseKeyGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "entitlementPoolsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "referencingLicenseAgreements" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "FeatureGroupModel" : { + "type" : "object", + "required" : [ "description", "name", "partNumber" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "partNumber" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "referencingLicenseAgreements" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "licenseKeyGroups" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/LicenseKeyGroupEntityDto" + } + }, + "entitlementPools" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/EntitlementPoolEntity" + } + } + } + }, + "FeatureGroupRequest" : { + "type" : "object", + "required" : [ "description", "name", "partNumber" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "partNumber" : { + "type" : "string" + }, + "addedLicenseKeyGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "addedEntitlementPoolsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "FeatureGroupUpdateRequest" : { + "type" : "object", + "required" : [ "description", "name", "partNumber" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "partNumber" : { + "type" : "string" + }, + "addedLicenseKeyGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "addedEntitlementPoolsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "removedLicenseKeyGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "removedEntitlementPoolsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "File" : { + "type" : "object", + "properties" : { + "path" : { + "type" : "string" + }, + "name" : { + "type" : "string" + }, + "canonicalPath" : { + "type" : "string" + }, + "parent" : { + "type" : "string" + }, + "absolute" : { + "type" : "boolean", + "default" : false + }, + "absoluteFile" : { + "$ref" : "#/definitions/File" + }, + "absolutePath" : { + "type" : "string" + }, + "canonicalFile" : { + "$ref" : "#/definitions/File" + }, + "freeSpace" : { + "type" : "integer", + "format" : "int64" + }, + "parentFile" : { + "$ref" : "#/definitions/File" + }, + "totalSpace" : { + "type" : "integer", + "format" : "int64" + }, + "usableSpace" : { + "type" : "integer", + "format" : "int64" + }, + "directory" : { + "type" : "boolean", + "default" : false + }, + "file" : { + "type" : "boolean", + "default" : false + }, + "hidden" : { + "type" : "boolean", + "default" : false + } + } + }, + "InputStream" : { + "type" : "object" + }, + "LicenseAgreementEntity" : { + "type" : "object", + "required" : [ "description", "licenseTerm", "name" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "licenseTerm" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoLicenseTerm" + }, + "requirementsAndConstrains" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "id" : { + "type" : "string" + }, + "featureGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "LicenseAgreementModel" : { + "type" : "object", + "required" : [ "description", "licenseTerm", "name" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "licenseTerm" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoLicenseTerm" + }, + "requirementsAndConstrains" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "id" : { + "type" : "string" + }, + "featureGroups" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "$ref" : "#/definitions/FeatureGroupEntity" + } + } + } + }, + "LicenseAgreementRequest" : { + "type" : "object", + "required" : [ "description", "licenseTerm", "name" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "licenseTerm" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoLicenseTerm" + }, + "requirementsAndConstrains" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "addedFeatureGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "LicenseAgreementUpdateRequest" : { + "type" : "object", + "required" : [ "description", "licenseTerm", "name" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "licenseTerm" : { + "$ref" : "#/definitions/ChoiceOrOtherDtoLicenseTerm" + }, + "requirementsAndConstrains" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "addedFeatureGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + }, + "removedFeatureGroupsIds" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "LicenseKeyGroupEntityDto" : { + "type" : "object", + "required" : [ "description", "name", "operationalScope", "type" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "type" : { + "type" : "string", + "enum" : [ "Universal", "Unique", "One_Time" ] + }, + "operationalScope" : { + "$ref" : "#/definitions/MultiChoiceOrOtherDtoOperationalScope" + }, + "id" : { + "type" : "string" + }, + "referencingFeatureGroups" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string" + } + } + } + }, + "LicenseKeyGroupRequestDto" : { + "type" : "object", + "required" : [ "description", "name", "operationalScope", "type" ], + "properties" : { + "name" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 120 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "type" : { + "type" : "string", + "enum" : [ "Universal", "Unique", "One_Time" ] + }, + "operationalScope" : { + "$ref" : "#/definitions/MultiChoiceOrOtherDtoOperationalScope" + } + } + }, + "LicensingData" : { + "type" : "object", + "properties" : { + "licenseAgreement" : { + "type" : "string" + }, + "featureGroups" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "MediaType" : { + "type" : "object", + "properties" : { + "type" : { + "type" : "string" + }, + "subtype" : { + "type" : "string" + }, + "parameters" : { + "type" : "object", + "additionalProperties" : { + "type" : "string" + } + }, + "wildcardSubtype" : { + "type" : "boolean", + "default" : false + }, + "wildcardType" : { + "type" : "boolean", + "default" : false + } + } + }, + "MibUploadStatusDto" : { + "type" : "object", + "properties" : { + "snmpTrap" : { + "type" : "string" + }, + "snmpPoll" : { + "type" : "string" + } + } + }, + "MultiChoiceOrOtherDtoOperationalScope" : { + "type" : "object", + "required" : [ "choices", "other" ], + "properties" : { + "choices" : { + "type" : "array", + "uniqueItems" : true, + "items" : { + "type" : "string", + "enum" : [ "Network_Wide", "Availability_Zone", "Data_Center", "Tenant", "VM", "CPU", "Core", "Other" ] + } + }, + "other" : { + "type" : "string" + } + } + }, + "NetworkDto" : { + "type" : "object", + "required" : [ "dhcp", "name" ], + "properties" : { + "name" : { + "type" : "string" + }, + "dhcp" : { + "type" : "boolean", + "default" : false + }, + "id" : { + "type" : "string" + } + } + }, + "NetworkRequestDto" : { + "type" : "object", + "required" : [ "dhcp", "name" ], + "properties" : { + "name" : { + "type" : "string" + }, + "dhcp" : { + "type" : "boolean", + "default" : false + } + } + }, + "NicDto" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "networkId" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "networkName" : { + "type" : "string" + } + } + }, + "NicRequestDto" : { + "type" : "object", + "properties" : { + "name" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "networkId" : { + "type" : "string" + } + } + }, + "OutputStream" : { + "type" : "object" + }, + "PackageInfoDto" : { + "type" : "object", + "properties" : { + "displayName" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "vspName" : { + "type" : "string" + }, + "version" : { + "type" : "string" + }, + "packageId" : { + "type" : "string" + }, + "category" : { + "type" : "string" + }, + "subCategory" : { + "type" : "string" + }, + "vendorName" : { + "type" : "string" + }, + "vendorRelease" : { + "type" : "string" + }, + "packageChecksum" : { + "type" : "string" + }, + "packageType" : { + "type" : "string" + } + } + }, + "ProcessEntityDto" : { + "type" : "object", + "required" : [ "name" ], + "properties" : { + "name" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "artifactName" : { + "type" : "string" + } + } + }, + "ProcessRequestDto" : { + "type" : "object", + "required" : [ "name" ], + "properties" : { + "name" : { + "type" : "string" + }, + "description" : { + "type" : "string" + } + } + }, + "QuestionnaireResponseDto" : { + "type" : "object", + "properties" : { + "schema" : { + "type" : "string" + }, + "data" : { + "type" : "string" + } + } + }, + "UploadFileResponseDto" : { + "type" : "object", + "properties" : { + "fileNames" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "errors" : { + "type" : "object", + "additionalProperties" : { + "type" : "array", + "items" : { + "$ref" : "#/definitions/ErrorMessage" + } + } + }, + "status" : { + "type" : "string", + "enum" : [ "Success", "Failure" ] + } + } + }, + "VendorLicenseModelActionRequestDto" : { + "type" : "object", + "properties" : { + "action" : { + "type" : "string", + "enum" : [ "Checkout", "Undo_Checkout", "Checkin", "Submit" ] + } + } + }, + "VendorLicenseModelEntity" : { + "type" : "object", + "required" : [ "description", "iconRef", "vendorName" ], + "properties" : { + "vendorName" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 25 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "iconRef" : { + "type" : "string" + }, + "id" : { + "type" : "string" + }, + "version" : { + "type" : "string" + }, + "status" : { + "type" : "string", + "enum" : [ "Available", "Locked", "Final" ] + }, + "lockingUser" : { + "type" : "string" + }, + "viewableVersions" : { + "type" : "array", + "items" : { + "type" : "string" + } + }, + "finalVersions" : { + "type" : "array", + "items" : { + "type" : "string" + } + } + } + }, + "VendorLicenseModelRequest" : { + "type" : "object", + "required" : [ "description", "iconRef", "vendorName" ], + "properties" : { + "vendorName" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 25 + }, + "description" : { + "type" : "string", + "minLength" : 0, + "maxLength" : 1000 + }, + "iconRef" : { + "type" : "string" + } + } + }, + "VersionSoftwareProductActionRequestDto" : { + "type" : "object", + "properties" : { + "action" : { + "type" : "string", + "enum" : [ "Checkout", "Undo_Checkout", "Checkin", "Submit", "Create_Package" ] + } + } + }, + "VspCreationDto" : { + "type" : "object", + "properties" : { + "vspId" : { + "type" : "string" + } + } + }, + "VspDescriptionDto" : { + "type" : "object", + "required" : [ "category", "description", "name", "subCategory", "vendorId", "vendorName" ], + "properties" : { + "name" : { + "type" : "string" + }, + "description" : { + "type" : "string" + }, + "icon" : { + "type" : "string" + }, + "category" : { + "type" : "string" + }, + "subCategory" : { + "type" : "string" + }, + "vendorName" : { + "type" : "string" + }, + "vendorId" : { + "type" : "string" + }, + "licensingVersion" : { + "type" : "string" + }, + "licensingData" : { + "$ref" : "#/definitions/LicensingData" + } + } + } + } +} \ No newline at end of file diff --git a/openecomp-be/tools/swagger-ui/assembly/swagger.xml b/openecomp-be/tools/swagger-ui/assembly/swagger.xml new file mode 100644 index 0000000000..769cc64840 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/assembly/swagger.xml @@ -0,0 +1,76 @@ + + + war + + false + + + + css + /css + + + fonts + /fonts + + + images + /images + + + lang + /lang + + + lib + /lib + + + WEB-INF + /WEB-INF + + + . + / + + index.html + o2c.html + swagger-ui.js + swagger-ui.min.js + + + + ./target + /css + + ${ncso.style.css.file} + + + + ./target + /fonts + + SourceSansPro-Light.otf + SourceSansPro-Regular.otf + SourceSansPro-Semibold.otf + + + + ./target + / + + ${api.json.file} + + + + ./target + /images + + favicon.ico + + + + \ No newline at end of file diff --git a/openecomp-be/tools/swagger-ui/css/ncso-style.css b/openecomp-be/tools/swagger-ui/css/ncso-style.css new file mode 100644 index 0000000000..fd1283918f --- /dev/null +++ b/openecomp-be/tools/swagger-ui/css/ncso-style.css @@ -0,0 +1,8659 @@ +/*! + * Bootstrap v3.3.2 (http://getbootstrap.com) + * Copyright 2011-2015 Twitter, Inc. + * Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE) + */ +/*! normalize.css v3.0.2 | MIT License | git.io/normalize */ +html { + font-family: sans-serif; + -webkit-text-size-adjust: 100%; + -ms-text-size-adjust: 100%; } + +body { + margin: 0; } + +article, aside, details, figcaption, figure, footer, header, hgroup, main, menu, nav, section, summary { + display: block; } + +audio, canvas, progress, video { + display: inline-block; + vertical-align: baseline; } + +audio:not([controls]) { + display: none; + height: 0; } + +[hidden], template { + display: none; } + +a { + background-color: transparent; } + +a:active, a:hover { + outline: 0; } + +abbr[title] { + border-bottom: 1px dotted; } + +b, strong { + font-weight: 700; } + +dfn { + font-style: italic; } + +h1 { + margin: .67em 0; + font-size: 2em; } + +mark { + color: #000; + background: #ff0; } + +small { + font-size: 80%; } + +sub, sup { + position: relative; + font-size: 75%; + line-height: 0; + vertical-align: baseline; } + +sup { + top: -.5em; } + +sub { + bottom: -.25em; } + +img { + border: 0; } + +svg:not(:root) { + overflow: hidden; } + +figure { + margin: 1em 40px; } + +hr { + height: 0; + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; } + +pre { + overflow: auto; } + +code, kbd, pre, samp { + font-family: monospace, monospace; + font-size: 1em; } + +button, input, optgroup, select, textarea { + margin: 0; + font: inherit; + color: inherit; } + +button { + overflow: visible; } + +button, select { + text-transform: none; } + +button, html input[type=button], input[type=reset], input[type=submit] { + -webkit-appearance: button; + cursor: pointer; } + +button[disabled], html input[disabled] { + cursor: default; } + +button::-moz-focus-inner, input::-moz-focus-inner { + padding: 0; + border: 0; } + +input { + line-height: normal; } + +input[type=checkbox], input[type=radio] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; + padding: 0; } + +input[type=number]::-webkit-inner-spin-button, input[type=number]::-webkit-outer-spin-button { + height: auto; } + +input[type=search] { + -webkit-box-sizing: content-box; + -moz-box-sizing: content-box; + box-sizing: content-box; + -webkit-appearance: textfield; } + +input[type=search]::-webkit-search-cancel-button, input[type=search]::-webkit-search-decoration { + -webkit-appearance: none; } + +fieldset { + padding: 0.35em 0.625em 0.75em; + margin: 0 2px; + border: 1px solid silver; } + +legend { + padding: 0; + border: 0; } + +textarea { + overflow: auto; } + +optgroup { + font-weight: 700; } + +table { + border-spacing: 0; + border-collapse: collapse; } + +td, th { + padding: 0; } + +/*! Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css */ +@media print { + *, :after, :before { + color: #000 !important; + text-shadow: none !important; + background: 0 0 !important; + -webkit-box-shadow: none !important; + box-shadow: none !important; } + a, a:visited { + text-decoration: underline; } + a[href]:after { + content: " (" attr(href) ")"; } + abbr[title]:after { + content: " (" attr(title) ")"; } + a[href^="javascript:"]:after, a[href^="#"]:after { + content: ""; } + blockquote, pre { + border: 1px solid #999; + page-break-inside: avoid; } + thead { + display: table-header-group; } + img, tr { + page-break-inside: avoid; } + img { + max-width: 100% !important; } + h2, h3, p { + orphans: 3; + widows: 3; } + h2, h3 { + page-break-after: avoid; } + select { + background: #fff !important; } + .navbar { + display: none; } + .btn > .caret, .dropup > .btn > .caret { + border-top-color: #000 !important; } } + +/*@font-face { + font-family: 'Glyphicons Halflings'; + src: url(../fonts/glyphicons-halflings-regular.eot); + src: url(../fonts/glyphicons-halflings-regular.eot?#iefix) format('embedded-opentype'), url(../fonts/glyphicons-halflings-regular.woff2) format('woff2'), url(../fonts/glyphicons-halflings-regular.woff) format('woff'), url(../fonts/glyphicons-halflings-regular.ttf) format('truetype'), url(../fonts/glyphicons-halflings-regular.svg#glyphicons_halflingsregular) format('svg') +}*/ +.glyphicon { + position: relative; + top: 1px; + display: inline-block; + font-family: 'Glyphicons Halflings'; + font-style: normal; + font-weight: 400; + line-height: 1; + -webkit-font-smoothing: antialiased; + -moz-osx-font-smoothing: grayscale; } + +.glyphicon-asterisk:before { + content: "\2a"; } + +.glyphicon-plus:before { + content: "\2b"; } + +.glyphicon-eur:before, .glyphicon-euro:before { + content: "\20ac"; } + +.glyphicon-minus:before { + content: "\2212"; } + +.glyphicon-cloud:before { + content: "\2601"; } + +.glyphicon-envelope:before { + content: "\2709"; } + +.glyphicon-pencil:before { + content: "\270f"; } + +.glyphicon-glass:before { + content: "\e001"; } + +.glyphicon-music:before { + content: "\e002"; } + +.glyphicon-search:before { + content: "\e003"; } + +.glyphicon-heart:before { + content: "\e005"; } + +.glyphicon-star:before { + content: "\e006"; } + +.glyphicon-star-empty:before { + content: "\e007"; } + +.glyphicon-user:before { + content: "\e008"; } + +.glyphicon-film:before { + content: "\e009"; } + +.glyphicon-th-large:before { + content: "\e010"; } + +.glyphicon-th:before { + content: "\e011"; } + +.glyphicon-th-list:before { + content: "\e012"; } + +.glyphicon-ok:before { + content: "\e013"; } + +.glyphicon-remove:before { + content: "\e014"; } + +.glyphicon-zoom-in:before { + content: "\e015"; } + +.glyphicon-zoom-out:before { + content: "\e016"; } + +.glyphicon-off:before { + content: "\e017"; } + +.glyphicon-signal:before { + content: "\e018"; } + +.glyphicon-cog:before { + content: "\e019"; } + +.glyphicon-trash:before { + content: "\e020"; } + +.glyphicon-home:before { + content: "\e021"; } + +.glyphicon-file:before { + content: "\e022"; } + +.glyphicon-time:before { + content: "\e023"; } + +.glyphicon-road:before { + content: "\e024"; } + +.glyphicon-download-alt:before { + content: "\e025"; } + +.glyphicon-download:before { + content: "\e026"; } + +.glyphicon-upload:before { + content: "\e027"; } + +.glyphicon-inbox:before { + content: "\e028"; } + +.glyphicon-play-circle:before { + content: "\e029"; } + +.glyphicon-repeat:before { + content: "\e030"; } + +.glyphicon-refresh:before { + content: "\e031"; } + +.glyphicon-list-alt:before { + content: "\e032"; } + +.glyphicon-lock:before { + content: "\e033"; } + +.glyphicon-flag:before { + content: "\e034"; } + +.glyphicon-headphones:before { + content: "\e035"; } + +.glyphicon-volume-off:before { + content: "\e036"; } + +.glyphicon-volume-down:before { + content: "\e037"; } + +.glyphicon-volume-up:before { + content: "\e038"; } + +.glyphicon-qrcode:before { + content: "\e039"; } + +.glyphicon-barcode:before { + content: "\e040"; } + +.glyphicon-tag:before { + content: "\e041"; } + +.glyphicon-tags:before { + content: "\e042"; } + +.glyphicon-book:before { + content: "\e043"; } + +.glyphicon-bookmark:before { + content: "\e044"; } + +.glyphicon-print:before { + content: "\e045"; } + +.glyphicon-camera:before { + content: "\e046"; } + +.glyphicon-font:before { + content: "\e047"; } + +.glyphicon-bold:before { + content: "\e048"; } + +.glyphicon-italic:before { + content: "\e049"; } + +.glyphicon-text-height:before { + content: "\e050"; } + +.glyphicon-text-width:before { + content: "\e051"; } + +.glyphicon-align-left:before { + content: "\e052"; } + +.glyphicon-align-center:before { + content: "\e053"; } + +.glyphicon-align-right:before { + content: "\e054"; } + +.glyphicon-align-justify:before { + content: "\e055"; } + +.glyphicon-list:before { + content: "\e056"; } + +.glyphicon-indent-left:before { + content: "\e057"; } + +.glyphicon-indent-right:before { + content: "\e058"; } + +.glyphicon-facetime-video:before { + content: "\e059"; } + +.glyphicon-picture:before { + content: "\e060"; } + +.glyphicon-map-marker:before { + content: "\e062"; } + +.glyphicon-adjust:before { + content: "\e063"; } + +.glyphicon-tint:before { + content: "\e064"; } + +.glyphicon-edit:before { + content: "\e065"; } + +.glyphicon-share:before { + content: "\e066"; } + +.glyphicon-check:before { + content: "\e067"; } + +.glyphicon-move:before { + content: "\e068"; } + +.glyphicon-step-backward:before { + content: "\e069"; } + +.glyphicon-fast-backward:before { + content: "\e070"; } + +.glyphicon-backward:before { + content: "\e071"; } + +.glyphicon-play:before { + content: "\e072"; } + +.glyphicon-pause:before { + content: "\e073"; } + +.glyphicon-stop:before { + content: "\e074"; } + +.glyphicon-forward:before { + content: "\e075"; } + +.glyphicon-fast-forward:before { + content: "\e076"; } + +.glyphicon-step-forward:before { + content: "\e077"; } + +.glyphicon-eject:before { + content: "\e078"; } + +.glyphicon-chevron-left:before { + content: "\e079"; } + +.glyphicon-chevron-right:before { + content: "\e080"; } + +.glyphicon-plus-sign:before { + content: "\e081"; } + +.glyphicon-minus-sign:before { + content: "\e082"; } + +.glyphicon-remove-sign:before { + content: "\e083"; } + +.glyphicon-ok-sign:before { + content: "\e084"; } + +.glyphicon-question-sign:before { + content: "\e085"; } + +.glyphicon-info-sign:before { + content: "\e086"; } + +.glyphicon-screenshot:before { + content: "\e087"; } + +.glyphicon-remove-circle:before { + content: "\e088"; } + +.glyphicon-ok-circle:before { + content: "\e089"; } + +.glyphicon-ban-circle:before { + content: "\e090"; } + +.glyphicon-arrow-left:before { + content: "\e091"; } + +.glyphicon-arrow-right:before { + content: "\e092"; } + +.glyphicon-arrow-up:before { + content: "\e093"; } + +.glyphicon-arrow-down:before { + content: "\e094"; } + +.glyphicon-share-alt:before { + content: "\e095"; } + +.glyphicon-resize-full:before { + content: "\e096"; } + +.glyphicon-resize-small:before { + content: "\e097"; } + +.glyphicon-exclamation-sign:before { + content: "\e101"; } + +.glyphicon-gift:before { + content: "\e102"; } + +.glyphicon-leaf:before { + content: "\e103"; } + +.glyphicon-fire:before { + content: "\e104"; } + +.glyphicon-eye-open:before { + content: "\e105"; } + +.glyphicon-eye-close:before { + content: "\e106"; } + +.glyphicon-warning-sign:before { + content: "\e107"; } + +.glyphicon-plane:before { + content: "\e108"; } + +.glyphicon-calendar:before { + content: "\e109"; } + +.glyphicon-random:before { + content: "\e110"; } + +.glyphicon-comment:before { + content: "\e111"; } + +.glyphicon-magnet:before { + content: "\e112"; } + +.glyphicon-chevron-up:before { + content: "\e113"; } + +.glyphicon-chevron-down:before { + content: "\e114"; } + +.glyphicon-retweet:before { + content: "\e115"; } + +.glyphicon-shopping-cart:before { + content: "\e116"; } + +.glyphicon-folder-close:before { + content: "\e117"; } + +.glyphicon-folder-open:before { + content: "\e118"; } + +.glyphicon-resize-vertical:before { + content: "\e119"; } + +.glyphicon-resize-horizontal:before { + content: "\e120"; } + +.glyphicon-hdd:before { + content: "\e121"; } + +.glyphicon-bullhorn:before { + content: "\e122"; } + +.glyphicon-bell:before { + content: "\e123"; } + +.glyphicon-certificate:before { + content: "\e124"; } + +.glyphicon-thumbs-up:before { + content: "\e125"; } + +.glyphicon-thumbs-down:before { + content: "\e126"; } + +.glyphicon-hand-right:before { + content: "\e127"; } + +.glyphicon-hand-left:before { + content: "\e128"; } + +.glyphicon-hand-up:before { + content: "\e129"; } + +.glyphicon-hand-down:before { + content: "\e130"; } + +.glyphicon-circle-arrow-right:before { + content: "\e131"; } + +.glyphicon-circle-arrow-left:before { + content: "\e132"; } + +.glyphicon-circle-arrow-up:before { + content: "\e133"; } + +.glyphicon-circle-arrow-down:before { + content: "\e134"; } + +.glyphicon-globe:before { + content: "\e135"; } + +.glyphicon-wrench:before { + content: "\e136"; } + +.glyphicon-tasks:before { + content: "\e137"; } + +.glyphicon-filter:before { + content: "\e138"; } + +.glyphicon-briefcase:before { + content: "\e139"; } + +.glyphicon-fullscreen:before { + content: "\e140"; } + +.glyphicon-dashboard:before { + content: "\e141"; } + +.glyphicon-paperclip:before { + content: "\e142"; } + +.glyphicon-heart-empty:before { + content: "\e143"; } + +.glyphicon-link:before { + content: "\e144"; } + +.glyphicon-phone:before { + content: "\e145"; } + +.glyphicon-pushpin:before { + content: "\e146"; } + +.glyphicon-usd:before { + content: "\e148"; } + +.glyphicon-gbp:before { + content: "\e149"; } + +.glyphicon-sort:before { + content: "\e150"; } + +.glyphicon-sort-by-alphabet:before { + content: "\e151"; } + +.glyphicon-sort-by-alphabet-alt:before { + content: "\e152"; } + +.glyphicon-sort-by-order:before { + content: "\e153"; } + +.glyphicon-sort-by-order-alt:before { + content: "\e154"; } + +.glyphicon-sort-by-attributes:before { + content: "\e155"; } + +.glyphicon-sort-by-attributes-alt:before { + content: "\e156"; } + +.glyphicon-unchecked:before { + content: "\e157"; } + +.glyphicon-expand:before { + content: "\e158"; } + +.glyphicon-collapse-down:before { + content: "\e159"; } + +.glyphicon-collapse-up:before { + content: "\e160"; } + +.glyphicon-log-in:before { + content: "\e161"; } + +.glyphicon-flash:before { + content: "\e162"; } + +.glyphicon-log-out:before { + content: "\e163"; } + +.glyphicon-new-window:before { + content: "\e164"; } + +.glyphicon-record:before { + content: "\e165"; } + +.glyphicon-save:before { + content: "\e166"; } + +.glyphicon-open:before { + content: "\e167"; } + +.glyphicon-saved:before { + content: "\e168"; } + +.glyphicon-import:before { + content: "\e169"; } + +.glyphicon-export:before { + content: "\e170"; } + +.glyphicon-send:before { + content: "\e171"; } + +.glyphicon-floppy-disk:before { + content: "\e172"; } + +.glyphicon-floppy-saved:before { + content: "\e173"; } + +.glyphicon-floppy-remove:before { + content: "\e174"; } + +.glyphicon-floppy-save:before { + content: "\e175"; } + +.glyphicon-floppy-open:before { + content: "\e176"; } + +.glyphicon-credit-card:before { + content: "\e177"; } + +.glyphicon-transfer:before { + content: "\e178"; } + +.glyphicon-cutlery:before { + content: "\e179"; } + +.glyphicon-header:before { + content: "\e180"; } + +.glyphicon-compressed:before { + content: "\e181"; } + +.glyphicon-earphone:before { + content: "\e182"; } + +.glyphicon-phone-alt:before { + content: "\e183"; } + +.glyphicon-tower:before { + content: "\e184"; } + +.glyphicon-stats:before { + content: "\e185"; } + +.glyphicon-sd-video:before { + content: "\e186"; } + +.glyphicon-hd-video:before { + content: "\e187"; } + +.glyphicon-subtitles:before { + content: "\e188"; } + +.glyphicon-sound-stereo:before { + content: "\e189"; } + +.glyphicon-sound-dolby:before { + content: "\e190"; } + +.glyphicon-sound-5-1:before { + content: "\e191"; } + +.glyphicon-sound-6-1:before { + content: "\e192"; } + +.glyphicon-sound-7-1:before { + content: "\e193"; } + +.glyphicon-copyright-mark:before { + content: "\e194"; } + +.glyphicon-registration-mark:before { + content: "\e195"; } + +.glyphicon-cloud-download:before { + content: "\e197"; } + +.glyphicon-cloud-upload:before { + content: "\e198"; } + +.glyphicon-tree-conifer:before { + content: "\e199"; } + +.glyphicon-tree-deciduous:before { + content: "\e200"; } + +.glyphicon-cd:before { + content: "\e201"; } + +.glyphicon-save-file:before { + content: "\e202"; } + +.glyphicon-open-file:before { + content: "\e203"; } + +.glyphicon-level-up:before { + content: "\e204"; } + +.glyphicon-copy:before { + content: "\e205"; } + +.glyphicon-paste:before { + content: "\e206"; } + +.glyphicon-alert:before { + content: "\e209"; } + +.glyphicon-equalizer:before { + content: "\e210"; } + +.glyphicon-king:before { + content: "\e211"; } + +.glyphicon-queen:before { + content: "\e212"; } + +.glyphicon-pawn:before { + content: "\e213"; } + +.glyphicon-bishop:before { + content: "\e214"; } + +.glyphicon-knight:before { + content: "\e215"; } + +.glyphicon-baby-formula:before { + content: "\e216"; } + +.glyphicon-tent:before { + content: "\26fa"; } + +.glyphicon-blackboard:before { + content: "\e218"; } + +.glyphicon-bed:before { + content: "\e219"; } + +.glyphicon-apple:before { + content: "\f8ff"; } + +.glyphicon-erase:before { + content: "\e221"; } + +.glyphicon-hourglass:before { + content: "\231b"; } + +.glyphicon-lamp:before { + content: "\e223"; } + +.glyphicon-duplicate:before { + content: "\e224"; } + +.glyphicon-piggy-bank:before { + content: "\e225"; } + +.glyphicon-scissors:before { + content: "\e226"; } + +.glyphicon-bitcoin:before { + content: "\e227"; } + +.glyphicon-yen:before { + content: "\00a5"; } + +.glyphicon-ruble:before { + content: "\20bd"; } + +.glyphicon-scale:before { + content: "\e230"; } + +.glyphicon-ice-lolly:before { + content: "\e231"; } + +.glyphicon-ice-lolly-tasted:before { + content: "\e232"; } + +.glyphicon-education:before { + content: "\e233"; } + +.glyphicon-option-horizontal:before { + content: "\e234"; } + +.glyphicon-option-vertical:before { + content: "\e235"; } + +.glyphicon-menu-hamburger:before { + content: "\e236"; } + +.glyphicon-modal-window:before { + content: "\e237"; } + +.glyphicon-oil:before { + content: "\e238"; } + +.glyphicon-grain:before { + content: "\e239"; } + +.glyphicon-sunglasses:before { + content: "\e240"; } + +.glyphicon-text-size:before { + content: "\e241"; } + +.glyphicon-text-color:before { + content: "\e242"; } + +.glyphicon-text-background:before { + content: "\e243"; } + +.glyphicon-object-align-top:before { + content: "\e244"; } + +.glyphicon-object-align-bottom:before { + content: "\e245"; } + +.glyphicon-object-align-horizontal:before { + content: "\e246"; } + +.glyphicon-object-align-left:before { + content: "\e247"; } + +.glyphicon-object-align-vertical:before { + content: "\e248"; } + +.glyphicon-object-align-right:before { + content: "\e249"; } + +.glyphicon-triangle-right:before { + content: "\e250"; } + +.glyphicon-triangle-left:before { + content: "\e251"; } + +.glyphicon-triangle-bottom:before { + content: "\e252"; } + +.glyphicon-triangle-top:before { + content: "\e253"; } + +.glyphicon-console:before { + content: "\e254"; } + +.glyphicon-superscript:before { + content: "\e255"; } + +.glyphicon-subscript:before { + content: "\e256"; } + +.glyphicon-menu-left:before { + content: "\e257"; } + +.glyphicon-menu-right:before { + content: "\e258"; } + +.glyphicon-menu-down:before { + content: "\e259"; } + +.glyphicon-menu-up:before { + content: "\e260"; } + +/** { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box +} +*/ +:after, :before { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +html { + font-size: 10px; + -webkit-tap-highlight-color: transparent; } + +body { + color: #333; + background-color: #fff; } + +button, input, select, textarea { + font-family: inherit; + font-size: inherit; + line-height: inherit; } + +a { + color: #337ab7; + text-decoration: none; } + +a:focus, a:hover { + color: #23527c; + text-decoration: underline; } + +a:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + +figure { + margin: 0; } + +img { + vertical-align: middle; } + +.carousel-inner > .item > a > img, .carousel-inner > .item > img, .img-responsive, .thumbnail a > img, .thumbnail > img { + display: block; + max-width: 100%; + height: auto; } + +.img-rounded { + border-radius: 6px; } + +.img-thumbnail { + display: inline-block; + max-width: 100%; + height: auto; + padding: 4px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: all 0.2s ease-in-out; + -o-transition: all 0.2s ease-in-out; + transition: all 0.2s ease-in-out; } + +.img-circle { + border-radius: 50%; } + +hr { + margin-top: 20px; + margin-bottom: 20px; + border: 0; + border-top: 1px solid #eee; } + +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + border: 0; } + +.sr-only-focusable:active, .sr-only-focusable:focus { + position: static; + width: auto; + height: auto; + margin: 0; + overflow: visible; + clip: auto; } + +.h1, .h2, .h3, .h4, .h5, .h6, h1, h2, h3, h4, h5, h6 { + font-family: inherit; + font-weight: 500; + line-height: 1.1; + color: inherit; } + +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, .h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small, h4 .small, h4 small, h5 .small, h5 small, h6 .small, h6 small { + font-weight: 400; + line-height: 1; + color: #777; } + +.h1, .h2, .h3, h1, h2, h3 { + margin-top: 20px; + margin-bottom: 10px; } + +.h1 .small, .h1 small, .h2 .small, .h2 small, .h3 .small, .h3 small, h1 .small, h1 small, h2 .small, h2 small, h3 .small, h3 small { + font-size: 65%; } + +.h4, .h5, .h6, h4, h5, h6 { + margin-top: 10px; + margin-bottom: 10px; } + +.h4 .small, .h4 small, .h5 .small, .h5 small, .h6 .small, .h6 small, h4 .small, h4 small, h5 .small, h5 small, h6 .small, h6 small { + font-size: 75%; } + +.h1, h1 { + font-size: 36px; } + +.h2, h2 { + font-size: 30px; } + +.h3, h3 { + font-size: 24px; } + +.h4, h4 { + font-size: 18px; } + +.h5, h5 { + font-size: 14px; } + +.h6, h6 { + font-size: 12px; } + +p { + margin: 0 0 10px; } + +.lead { + margin-bottom: 20px; + font-size: 16px; + font-weight: 300; + line-height: 1.4; } + +@media (min-width: 768px) { + .lead { + font-size: 21px; } } + +.small, small { + font-size: 85%; } + +.mark, mark { + padding: .2em; + background-color: #fcf8e3; } + +.text-left { + text-align: left; } + +.text-right { + text-align: right; } + +.text-center { + text-align: center; } + +.text-justify { + text-align: justify; } + +.text-nowrap { + white-space: nowrap; } + +.text-lowercase { + text-transform: lowercase; } + +.text-uppercase { + text-transform: uppercase; } + +.text-capitalize { + text-transform: capitalize; } + +.text-muted { + color: #777; } + +.text-primary { + color: #337ab7; } + +a.text-primary:hover { + color: #286090; } + +.text-success { + color: #3c763d; } + +a.text-success:hover { + color: #2b542c; } + +.text-info { + color: #31708f; } + +a.text-info:hover { + color: #245269; } + +.text-warning { + color: #8a6d3b; } + +a.text-warning:hover { + color: #66512c; } + +.text-danger { + color: #a94442; } + +a.text-danger:hover { + color: #843534; } + +.bg-primary { + color: #fff; + background-color: #337ab7; } + +a.bg-primary:hover { + background-color: #286090; } + +.bg-success { + background-color: #dff0d8; } + +a.bg-success:hover { + background-color: #c1e2b3; } + +.bg-info { + background-color: #d9edf7; } + +a.bg-info:hover { + background-color: #afd9ee; } + +.bg-warning { + background-color: #fcf8e3; } + +a.bg-warning:hover { + background-color: #f7ecb5; } + +.bg-danger { + background-color: #f2dede; } + +a.bg-danger:hover { + background-color: #e4b9b9; } + +.page-header { + padding-bottom: 9px; + margin: 40px 0 20px; + border-bottom: 1px solid #eee; } + +ol, ul { + margin-top: 0; + margin-bottom: 10px; } + +ol ol, ol ul, ul ol, ul ul { + margin-bottom: 0; } + +.list-unstyled { + padding-left: 0; + list-style: none; } + +.list-inline { + padding-left: 0; + margin-left: -5px; + list-style: none; } + +.list-inline > li { + display: inline-block; + padding-right: 5px; + padding-left: 5px; } + +dl { + margin-top: 0; + margin-bottom: 20px; } + +dd, dt { + line-height: 1.42857143; } + +dt { + font-weight: 700; } + +dd { + margin-left: 0; } + +@media (min-width: 768px) { + .dl-horizontal dt { + float: left; + width: 160px; + overflow: hidden; + clear: left; + text-align: right; + text-overflow: ellipsis; + white-space: nowrap; } + .dl-horizontal dd { + margin-left: 180px; } } + +abbr[data-original-title], abbr[title] { + cursor: help; + border-bottom: 1px dotted #777; } + +.initialism { + font-size: 90%; + text-transform: uppercase; } + +blockquote { + padding: 10px 20px; + margin: 0 0 20px; + font-size: 17.5px; + border-left: 5px solid #eee; } + +blockquote ol:last-child, blockquote p:last-child, blockquote ul:last-child { + margin-bottom: 0; } + +blockquote .small, blockquote footer, blockquote small { + display: block; + font-size: 80%; + line-height: 1.42857143; + color: #777; } + +blockquote .small:before, blockquote footer:before, blockquote small:before { + content: '\2014 \00A0'; } + +.blockquote-reverse, blockquote.pull-right { + padding-right: 15px; + padding-left: 0; + text-align: right; + border-right: 5px solid #eee; + border-left: 0; } + +.blockquote-reverse .small:before, .blockquote-reverse footer:before, .blockquote-reverse small:before, blockquote.pull-right .small:before, blockquote.pull-right footer:before, blockquote.pull-right small:before { + content: ''; } + +.blockquote-reverse .small:after, .blockquote-reverse footer:after, .blockquote-reverse small:after, blockquote.pull-right .small:after, blockquote.pull-right footer:after, blockquote.pull-right small:after { + content: '\00A0 \2014'; } + +address { + margin-bottom: 20px; + font-style: normal; + line-height: 1.42857143; } + +code, kbd, pre, samp { + font-family: Menlo, Monaco, Consolas, "Courier New", monospace; } + +code { + padding: 2px 4px; + font-size: 90%; + color: #c7254e; + background-color: #f9f2f4; + border-radius: 4px; } + +kbd { + padding: 2px 4px; + font-size: 90%; + color: #fff; + background-color: #333; + border-radius: 3px; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.25); } + +kbd kbd { + padding: 0; + font-size: 100%; + font-weight: 700; + -webkit-box-shadow: none; + box-shadow: none; } + +pre { + display: block; + padding: 9.5px; + margin: 0 0 10px; + font-size: 13px; + line-height: 1.42857143; + color: #333; + word-break: break-all; + word-wrap: break-word; + background-color: #f5f5f5; + border: 1px solid #ccc; + border-radius: 4px; } + +pre code { + padding: 0; + font-size: inherit; + color: inherit; + white-space: pre-wrap; + background-color: transparent; + border-radius: 0; } + +.pre-scrollable { + max-height: 340px; + overflow-y: scroll; } + +.container { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } + +@media (min-width: 768px) { + .container { + width: 750px; } } + +@media (min-width: 992px) { + .container { + width: 970px; } } + +@media (min-width: 1200px) { + .container { + width: 1170px; } } + +.container-fluid { + padding-right: 15px; + padding-left: 15px; + margin-right: auto; + margin-left: auto; } + +.row { + margin-right: -15px; + margin-left: -15px; } + +.col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9, .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9, .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9, .col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 { + position: relative; + min-height: 1px; + padding-right: 15px; + padding-left: 15px; } + +.col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9 { + float: left; } + +.col-xs-12 { + width: 100%; } + +.col-xs-11 { + width: 91.66666667%; } + +.col-xs-10 { + width: 83.33333333%; } + +.col-xs-9 { + width: 75%; } + +.col-xs-8 { + width: 66.66666667%; } + +.col-xs-7 { + width: 58.33333333%; } + +.col-xs-6 { + width: 50%; } + +.col-xs-5 { + width: 41.66666667%; } + +.col-xs-4 { + width: 33.33333333%; } + +.col-xs-3 { + width: 25%; } + +.col-xs-2 { + width: 16.66666667%; } + +.col-xs-1 { + width: 8.33333333%; } + +.col-xs-pull-12 { + right: 100%; } + +.col-xs-pull-11 { + right: 91.66666667%; } + +.col-xs-pull-10 { + right: 83.33333333%; } + +.col-xs-pull-9 { + right: 75%; } + +.col-xs-pull-8 { + right: 66.66666667%; } + +.col-xs-pull-7 { + right: 58.33333333%; } + +.col-xs-pull-6 { + right: 50%; } + +.col-xs-pull-5 { + right: 41.66666667%; } + +.col-xs-pull-4 { + right: 33.33333333%; } + +.col-xs-pull-3 { + right: 25%; } + +.col-xs-pull-2 { + right: 16.66666667%; } + +.col-xs-pull-1 { + right: 8.33333333%; } + +.col-xs-pull-0 { + right: auto; } + +.col-xs-push-12 { + left: 100%; } + +.col-xs-push-11 { + left: 91.66666667%; } + +.col-xs-push-10 { + left: 83.33333333%; } + +.col-xs-push-9 { + left: 75%; } + +.col-xs-push-8 { + left: 66.66666667%; } + +.col-xs-push-7 { + left: 58.33333333%; } + +.col-xs-push-6 { + left: 50%; } + +.col-xs-push-5 { + left: 41.66666667%; } + +.col-xs-push-4 { + left: 33.33333333%; } + +.col-xs-push-3 { + left: 25%; } + +.col-xs-push-2 { + left: 16.66666667%; } + +.col-xs-push-1 { + left: 8.33333333%; } + +.col-xs-push-0 { + left: auto; } + +.col-xs-offset-12 { + margin-left: 100%; } + +.col-xs-offset-11 { + margin-left: 91.66666667%; } + +.col-xs-offset-10 { + margin-left: 83.33333333%; } + +.col-xs-offset-9 { + margin-left: 75%; } + +.col-xs-offset-8 { + margin-left: 66.66666667%; } + +.col-xs-offset-7 { + margin-left: 58.33333333%; } + +.col-xs-offset-6 { + margin-left: 50%; } + +.col-xs-offset-5 { + margin-left: 41.66666667%; } + +.col-xs-offset-4 { + margin-left: 33.33333333%; } + +.col-xs-offset-3 { + margin-left: 25%; } + +.col-xs-offset-2 { + margin-left: 16.66666667%; } + +.col-xs-offset-1 { + margin-left: 8.33333333%; } + +.col-xs-offset-0 { + margin-left: 0; } + +@media (min-width: 768px) { + .col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9 { + float: left; } + .col-sm-12 { + width: 98%; } + .col-sm-11 { + width: 91.66666667%; } + .col-sm-10 { + width: 83.33333333%; } + .col-sm-9 { + width: 75%; } + .col-sm-8 { + width: 66.66666667%; } + .col-sm-7 { + width: 58.33333333%; } + .col-sm-6 { + width: 48%; } + .col-sm-5 { + width: 41.66666667%; } + .col-sm-4 { + width: 33.33333333%; } + .col-sm-3 { + width: 25%; } + .col-sm-2 { + width: 16.66666667%; } + .col-sm-1 { + width: 8.33333333%; } + .col-sm-pull-12 { + right: 100%; } + .col-sm-pull-11 { + right: 91.66666667%; } + .col-sm-pull-10 { + right: 83.33333333%; } + .col-sm-pull-9 { + right: 75%; } + .col-sm-pull-8 { + right: 66.66666667%; } + .col-sm-pull-7 { + right: 58.33333333%; } + .col-sm-pull-6 { + right: 50%; } + .col-sm-pull-5 { + right: 41.66666667%; } + .col-sm-pull-4 { + right: 33.33333333%; } + .col-sm-pull-3 { + right: 25%; } + .col-sm-pull-2 { + right: 16.66666667%; } + .col-sm-pull-1 { + right: 8.33333333%; } + .col-sm-pull-0 { + right: auto; } + .col-sm-push-12 { + left: 100%; } + .col-sm-push-11 { + left: 91.66666667%; } + .col-sm-push-10 { + left: 83.33333333%; } + .col-sm-push-9 { + left: 75%; } + .col-sm-push-8 { + left: 66.66666667%; } + .col-sm-push-7 { + left: 58.33333333%; } + .col-sm-push-6 { + left: 50%; } + .col-sm-push-5 { + left: 41.66666667%; } + .col-sm-push-4 { + left: 33.33333333%; } + .col-sm-push-3 { + left: 25%; } + .col-sm-push-2 { + left: 16.66666667%; } + .col-sm-push-1 { + left: 8.33333333%; } + .col-sm-push-0 { + left: auto; } + .col-sm-offset-12 { + margin-left: 100%; } + .col-sm-offset-11 { + margin-left: 91.66666667%; } + .col-sm-offset-10 { + margin-left: 83.33333333%; } + .col-sm-offset-9 { + margin-left: 75%; } + .col-sm-offset-8 { + margin-left: 66.66666667%; } + .col-sm-offset-7 { + margin-left: 58.33333333%; } + .col-sm-offset-6 { + margin-left: 50%; } + .col-sm-offset-5 { + margin-left: 41.66666667%; } + .col-sm-offset-4 { + margin-left: 33.33333333%; } + .col-sm-offset-3 { + margin-left: 25%; } + .col-sm-offset-2 { + margin-left: 16.66666667%; } + .col-sm-offset-1 { + margin-left: 8.33333333%; } + .col-sm-offset-0 { + margin-left: 0; } } + +@media (min-width: 992px) { + .col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9 { + float: left; } + .col-md-12 { + width: 100%; } + .col-md-11 { + width: 91.66666667%; } + .col-md-10 { + width: 83.33333333%; } + .col-md-9 { + width: 75%; } + .col-md-8 { + width: 66.66666667%; } + .col-md-7 { + width: 58.33333333%; } + .col-md-6 { + width: 50%; } + .col-md-5 { + width: 41.66666667%; } + .col-md-4 { + width: 33.33333333%; } + .col-md-3 { + width: 25%; } + .col-md-2 { + width: 16.66666667%; } + .col-md-1 { + width: 8.33333333%; } + .col-md-pull-12 { + right: 100%; } + .col-md-pull-11 { + right: 91.66666667%; } + .col-md-pull-10 { + right: 83.33333333%; } + .col-md-pull-9 { + right: 75%; } + .col-md-pull-8 { + right: 66.66666667%; } + .col-md-pull-7 { + right: 58.33333333%; } + .col-md-pull-6 { + right: 50%; } + .col-md-pull-5 { + right: 41.66666667%; } + .col-md-pull-4 { + right: 33.33333333%; } + .col-md-pull-3 { + right: 25%; } + .col-md-pull-2 { + right: 16.66666667%; } + .col-md-pull-1 { + right: 8.33333333%; } + .col-md-pull-0 { + right: auto; } + .col-md-push-12 { + left: 100%; } + .col-md-push-11 { + left: 91.66666667%; } + .col-md-push-10 { + left: 83.33333333%; } + .col-md-push-9 { + left: 75%; } + .col-md-push-8 { + left: 66.66666667%; } + .col-md-push-7 { + left: 58.33333333%; } + .col-md-push-6 { + left: 50%; } + .col-md-push-5 { + left: 41.66666667%; } + .col-md-push-4 { + left: 33.33333333%; } + .col-md-push-3 { + left: 25%; } + .col-md-push-2 { + left: 16.66666667%; } + .col-md-push-1 { + left: 8.33333333%; } + .col-md-push-0 { + left: auto; } + .col-md-offset-12 { + margin-left: 100%; } + .col-md-offset-11 { + margin-left: 91.66666667%; } + .col-md-offset-10 { + margin-left: 83.33333333%; } + .col-md-offset-9 { + margin-left: 75%; } + .col-md-offset-8 { + margin-left: 66.66666667%; } + .col-md-offset-7 { + margin-left: 58.33333333%; } + .col-md-offset-6 { + margin-left: 50%; } + .col-md-offset-5 { + margin-left: 41.66666667%; } + .col-md-offset-4 { + margin-left: 33.33333333%; } + .col-md-offset-3 { + margin-left: 25%; } + .col-md-offset-2 { + margin-left: 16.66666667%; } + .col-md-offset-1 { + margin-left: 8.33333333%; } + .col-md-offset-0 { + margin-left: 0; } } + +@media (min-width: 1200px) { + .col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9 { + float: left; } + .col-lg-12 { + width: 100%; } + .col-lg-11 { + width: 91.66666667%; } + .col-lg-10 { + width: 83.33333333%; } + .col-lg-9 { + width: 75%; } + .col-lg-8 { + width: 66.66666667%; } + .col-lg-7 { + width: 58.33333333%; } + .col-lg-6 { + width: 50%; } + .col-lg-5 { + width: 41.66666667%; } + .col-lg-4 { + width: 33.33333333%; } + .col-lg-3 { + width: 25%; } + .col-lg-2 { + width: 16.66666667%; } + .col-lg-1 { + width: 8.33333333%; } + .col-lg-pull-12 { + right: 100%; } + .col-lg-pull-11 { + right: 91.66666667%; } + .col-lg-pull-10 { + right: 83.33333333%; } + .col-lg-pull-9 { + right: 75%; } + .col-lg-pull-8 { + right: 66.66666667%; } + .col-lg-pull-7 { + right: 58.33333333%; } + .col-lg-pull-6 { + right: 50%; } + .col-lg-pull-5 { + right: 41.66666667%; } + .col-lg-pull-4 { + right: 33.33333333%; } + .col-lg-pull-3 { + right: 25%; } + .col-lg-pull-2 { + right: 16.66666667%; } + .col-lg-pull-1 { + right: 8.33333333%; } + .col-lg-pull-0 { + right: auto; } + .col-lg-push-12 { + left: 100%; } + .col-lg-push-11 { + left: 91.66666667%; } + .col-lg-push-10 { + left: 83.33333333%; } + .col-lg-push-9 { + left: 75%; } + .col-lg-push-8 { + left: 66.66666667%; } + .col-lg-push-7 { + left: 58.33333333%; } + .col-lg-push-6 { + left: 50%; } + .col-lg-push-5 { + left: 41.66666667%; } + .col-lg-push-4 { + left: 33.33333333%; } + .col-lg-push-3 { + left: 25%; } + .col-lg-push-2 { + left: 16.66666667%; } + .col-lg-push-1 { + left: 8.33333333%; } + .col-lg-push-0 { + left: auto; } + .col-lg-offset-12 { + margin-left: 100%; } + .col-lg-offset-11 { + margin-left: 91.66666667%; } + .col-lg-offset-10 { + margin-left: 83.33333333%; } + .col-lg-offset-9 { + margin-left: 75%; } + .col-lg-offset-8 { + margin-left: 66.66666667%; } + .col-lg-offset-7 { + margin-left: 58.33333333%; } + .col-lg-offset-6 { + margin-left: 50%; } + .col-lg-offset-5 { + margin-left: 41.66666667%; } + .col-lg-offset-4 { + margin-left: 33.33333333%; } + .col-lg-offset-3 { + margin-left: 25%; } + .col-lg-offset-2 { + margin-left: 16.66666667%; } + .col-lg-offset-1 { + margin-left: 8.33333333%; } + .col-lg-offset-0 { + margin-left: 0; } } + +table { + background-color: transparent; } + +caption { + padding-top: 8px; + padding-bottom: 8px; + color: #777; + text-align: left; } + +th { + text-align: left; } + +.table { + width: 100%; + max-width: 100%; + margin-bottom: 20px; } + +.table > tbody > tr > td, .table > tbody > tr > th, .table > tfoot > tr > td, .table > tfoot > tr > th, .table > thead > tr > td, .table > thead > tr > th { + padding: 8px; + line-height: 1.42857143; + vertical-align: top; } + +.table > thead > tr > th { + vertical-align: bottom; } + +.table > caption + thead > tr:first-child > td, .table > caption + thead > tr:first-child > th, .table > colgroup + thead > tr:first-child > td, .table > colgroup + thead > tr:first-child > th, .table > thead:first-child > tr:first-child > td, .table > thead:first-child > tr:first-child > th { + border-top: 0; } + +.table .table { + background-color: #fff; } + +.table-condensed > tbody > tr > td, .table-condensed > tbody > tr > th, .table-condensed > tfoot > tr > td, .table-condensed > tfoot > tr > th, .table-condensed > thead > tr > td, .table-condensed > thead > tr > th { + padding: 5px; } + +.table-bordered > thead > tr > td, .table-bordered > thead > tr > th { + border-bottom-width: 1px; } + +table col[class*=col-] { + position: static; + display: table-column; + float: none; } + +table td[class*=col-], table th[class*=col-] { + position: static; + display: table-cell; + float: none; } + +.table-responsive { + min-height: .01%; + overflow-x: auto; } + +@media screen and (max-width: 767px) { + .table-responsive { + width: 100%; + margin-bottom: 15px; + overflow-y: hidden; + -ms-overflow-style: -ms-autohiding-scrollbar; } + .table-responsive > .table { + margin-bottom: 0; } + .table-responsive > .table > tbody > tr > td, .table-responsive > .table > tbody > tr > th, .table-responsive > .table > tfoot > tr > td, .table-responsive > .table > tfoot > tr > th, .table-responsive > .table > thead > tr > td, .table-responsive > .table > thead > tr > th { + white-space: nowrap; } + .table-responsive > .table-bordered { + border: 0; } + .table-responsive > .table-bordered > tbody > tr > td:first-child, .table-responsive > .table-bordered > tbody > tr > th:first-child, .table-responsive > .table-bordered > tfoot > tr > td:first-child, .table-responsive > .table-bordered > tfoot > tr > th:first-child, .table-responsive > .table-bordered > thead > tr > td:first-child, .table-responsive > .table-bordered > thead > tr > th:first-child { + border-left: 0; } + .table-responsive > .table-bordered > tbody > tr > td:last-child, .table-responsive > .table-bordered > tbody > tr > th:last-child, .table-responsive > .table-bordered > tfoot > tr > td:last-child, .table-responsive > .table-bordered > tfoot > tr > th:last-child, .table-responsive > .table-bordered > thead > tr > td:last-child, .table-responsive > .table-bordered > thead > tr > th:last-child { + border-right: 0; } + .table-responsive > .table-bordered > tbody > tr:last-child > td, .table-responsive > .table-bordered > tbody > tr:last-child > th, .table-responsive > .table-bordered > tfoot > tr:last-child > td, .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; } } + +input[type=search] { + -webkit-box-sizing: border-box; + -moz-box-sizing: border-box; + box-sizing: border-box; } + +input[type=checkbox], input[type=radio] { + margin: 4px 0 0; + margin-top: 1px \9; + line-height: normal; } + +input[type=range] { + display: block; + width: 100%; } + +select[multiple], select[size] { + height: auto; } + +input[type=file]:focus, input[type=checkbox]:focus, input[type=radio]:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + +output { + display: block; + padding-top: 7px; + font-size: 14px; + line-height: 1.42857143; + color: #555; } + +.form-control { + display: block; + width: 100%; + height: 34px; + padding: 6px 12px; + font-size: 14px; + line-height: 1.42857143; + color: #555; + background-color: #fff; + background-image: none; + border: 1px solid #ccc; + border-radius: 4px; } + +.form-control:focus { + border-color: #66afe9; + outline: 0; } + +.form-control::-moz-placeholder { + color: #999; + opacity: 1; } + +.form-control:-ms-input-placeholder { + color: #999; } + +.form-control::-webkit-input-placeholder { + color: #999; } + +.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control { + cursor: not-allowed; + background-color: #eee; + opacity: 1; } + +textarea.form-control { + height: auto; } + +input[type=search] { + -webkit-appearance: none; } + +@media screen and (-webkit-min-device-pixel-ratio: 0) { + input[type=date], input[type=time], input[type=datetime-local], input[type=month] { + line-height: 34px; } + .input-group-sm input[type=date], .input-group-sm input[type=time], .input-group-sm input[type=datetime-local], .input-group-sm input[type=month], input[type=date].input-sm, input[type=time].input-sm, input[type=datetime-local].input-sm, input[type=month].input-sm { + line-height: 30px; } + .input-group-lg input[type=date], .input-group-lg input[type=time], .input-group-lg input[type=datetime-local], .input-group-lg input[type=month], input[type=date].input-lg, input[type=time].input-lg, input[type=datetime-local].input-lg, input[type=month].input-lg { + line-height: 46px; } } + +.form-group { + margin-bottom: 15px; } + +.checkbox, .radio { + position: relative; + display: block; + margin-top: 10px; + margin-bottom: 10px; } + +.checkbox label, .radio label { + min-height: 20px; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + cursor: pointer; } + +.checkbox input[type=checkbox], .checkbox-inline input[type=checkbox], .radio input[type=radio], .radio-inline input[type=radio] { + position: absolute; + margin-top: 4px \9; + margin-left: -20px; } + +.checkbox + .checkbox, .radio + .radio { + margin-top: -5px; } + +.checkbox-inline, .radio-inline { + display: inline-block; + padding-left: 20px; + margin-bottom: 0; + font-weight: 400; + vertical-align: middle; + cursor: pointer; } + +.checkbox-inline + .checkbox-inline, .radio-inline + .radio-inline { + margin-top: 0; + margin-left: 10px; } + +fieldset[disabled] input[type=checkbox], fieldset[disabled] input[type=radio], input[type=checkbox].disabled, input[type=checkbox][disabled], input[type=radio].disabled, input[type=radio][disabled] { + cursor: not-allowed; } + +.checkbox-inline.disabled, .radio-inline.disabled, fieldset[disabled] .checkbox-inline, fieldset[disabled] .radio-inline { + cursor: not-allowed; } + +.checkbox.disabled label, .radio.disabled label, fieldset[disabled] .checkbox label, fieldset[disabled] .radio label { + cursor: not-allowed; } + +.form-control-static { + padding-top: 7px; + padding-bottom: 7px; + margin-bottom: 0; } + +.form-control-static.input-lg, .form-control-static.input-sm { + padding-right: 0; + padding-left: 0; } + +.input-sm { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } + +select.input-sm { + height: 30px; + line-height: 30px; } + +select[multiple].input-sm, textarea.input-sm { + height: auto; } + +.form-group-sm .form-control { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } + +select.form-group-sm .form-control { + height: 30px; + line-height: 30px; } + +select[multiple].form-group-sm .form-control, textarea.form-group-sm .form-control { + height: auto; } + +.form-group-sm .form-control-static { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; } + +.input-lg { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; } + +select.input-lg { + height: 46px; + line-height: 46px; } + +select[multiple].input-lg, textarea.input-lg { + height: auto; } + +.form-group-lg .form-control { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; } + +select.form-group-lg .form-control { + height: 46px; + line-height: 46px; } + +select[multiple].form-group-lg .form-control, textarea.form-group-lg .form-control { + height: auto; } + +.form-group-lg .form-control-static { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; } + +.has-feedback { + position: relative; } + +.has-feedback .form-control { + padding-right: 42.5px; } + +.form-control-feedback { + position: absolute; + top: 0; + right: 0; + z-index: 2; + display: block; + width: 34px; + height: 34px; + line-height: 34px; + text-align: center; + pointer-events: none; } + +.input-lg + .form-control-feedback { + width: 46px; + height: 46px; + line-height: 46px; } + +.input-sm + .form-control-feedback { + width: 30px; + height: 30px; + line-height: 30px; } + +.has-success .checkbox, .has-success .checkbox-inline, .has-success .control-label, .has-success .help-block, .has-success .radio, .has-success .radio-inline, .has-success.checkbox label, .has-success.checkbox-inline label, .has-success.radio label, .has-success.radio-inline label { + color: #3c763d; } + +.has-success .form-control { + border-color: #3c763d; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } + +.has-success .form-control:focus { + border-color: #2b542c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #67b168; } + +.has-success .input-group-addon { + color: #3c763d; + background-color: #dff0d8; + border-color: #3c763d; } + +.has-success .form-control-feedback { + color: #3c763d; } + +.has-warning .checkbox, .has-warning .checkbox-inline, .has-warning .control-label, .has-warning .help-block, .has-warning .radio, .has-warning .radio-inline, .has-warning.checkbox label, .has-warning.checkbox-inline label, .has-warning.radio label, .has-warning.radio-inline label { + color: #8a6d3b; } + +.has-warning .form-control { + border-color: #8a6d3b; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } + +.has-warning .form-control:focus { + border-color: #66512c; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #c0a16b; } + +.has-warning .input-group-addon { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #8a6d3b; } + +.has-warning .form-control-feedback { + color: #8a6d3b; } + +.has-error .checkbox, .has-error .checkbox-inline, .has-error .control-label, .has-error .help-block, .has-error .radio, .has-error .radio-inline, .has-error.checkbox label, .has-error.checkbox-inline label, .has-error.radio label, .has-error.radio-inline label { + color: #a94442; } + +.has-error .form-control { + border-color: #a94442; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); } + +.has-error .form-control:focus { + border-color: #843534; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075), 0 0 6px #ce8483; } + +.has-error .input-group-addon { + color: #a94442; + background-color: #f2dede; + border-color: #a94442; } + +.has-error .form-control-feedback { + color: #a94442; } + +.has-feedback label ~ .form-control-feedback { + top: 25px; } + +.has-feedback label.sr-only ~ .form-control-feedback { + top: 0; } + +.help-block { + display: block; + margin-top: 5px; + margin-bottom: 10px; + color: #737373; } + +@media (min-width: 768px) { + .form-inline .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; } + .form-inline .form-control { + display: inline-block; + width: auto; + vertical-align: middle; } + .form-inline .form-control-static { + display: inline-block; } + .form-inline .input-group { + display: inline-table; + vertical-align: middle; } + .form-inline .input-group .form-control, .form-inline .input-group .input-group-addon, .form-inline .input-group .input-group-btn { + width: auto; } + .form-inline .input-group > .form-control { + width: 100%; } + .form-inline .control-label { + margin-bottom: 0; + vertical-align: middle; } + .form-inline .checkbox, .form-inline .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; } + .form-inline .checkbox label, .form-inline .radio label { + padding-left: 0; } + .form-inline .checkbox input[type=checkbox], .form-inline .radio input[type=radio] { + position: relative; + margin-left: 0; } + .form-inline .has-feedback .form-control-feedback { + top: 0; } } + +.form-horizontal .checkbox, .form-horizontal .checkbox-inline, .form-horizontal .radio, .form-horizontal .radio-inline { + padding-top: 7px; + margin-top: 0; + margin-bottom: 0; } + +.form-horizontal .checkbox, .form-horizontal .radio { + min-height: 27px; } + +.form-horizontal .form-group { + margin-right: -15px; + margin-left: -15px; } + +@media (min-width: 768px) { + .form-horizontal .control-label { + padding-top: 7px; + margin-bottom: 0; + text-align: right; } } + +.form-horizontal .has-feedback .form-control-feedback { + right: 15px; } + +@media (min-width: 768px) { + .form-horizontal .form-group-lg .control-label { + padding-top: 14.33px; } } + +@media (min-width: 768px) { + .form-horizontal .form-group-sm .control-label { + padding-top: 6px; } } + +.btn { + display: inline-block; + padding: 6px 12px; + margin-bottom: 0; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: center; + white-space: nowrap; + vertical-align: middle; + -ms-touch-action: manipulation; + touch-action: manipulation; + cursor: pointer; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; } + +.btn.active.focus, .btn.active:focus, .btn.focus, .btn:active.focus, .btn:active:focus, .btn:focus { + outline: thin dotted; + outline: 5px auto -webkit-focus-ring-color; + outline-offset: -2px; } + +.btn.focus, .btn:focus, .btn:hover { + color: #333; + text-decoration: none; } + +.btn.active, .btn:active { + background-image: none; + outline: 0; + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } + +.btn.disabled, .btn[disabled], fieldset[disabled] .btn { + pointer-events: none; + cursor: not-allowed; + filter: alpha(opacity=65); + -webkit-box-shadow: none; + box-shadow: none; + opacity: .65; } + +.btn-default { + color: #333; + background-color: #fff; + border-color: #ccc; } + +.btn-default.active, .btn-default.focus, .btn-default:active, .btn-default:focus, .btn-default:hover, .open > .dropdown-toggle.btn-default { + color: #333; + background-color: #e6e6e6; + border-color: #adadad; } + +.btn-default.active, .btn-default:active, .open > .dropdown-toggle.btn-default { + background-image: none; } + +.btn-default.disabled, .btn-default.disabled.active, .btn-default.disabled.focus, .btn-default.disabled:active, .btn-default.disabled:focus, .btn-default.disabled:hover, .btn-default[disabled], .btn-default[disabled].active, .btn-default[disabled].focus, .btn-default[disabled]:active, .btn-default[disabled]:focus, .btn-default[disabled]:hover, fieldset[disabled] .btn-default, fieldset[disabled] .btn-default.active, fieldset[disabled] .btn-default.focus, fieldset[disabled] .btn-default:active, fieldset[disabled] .btn-default:focus, fieldset[disabled] .btn-default:hover { + background-color: #fff; + border-color: #ccc; } + +.btn-default .badge { + color: #fff; + background-color: #333; } + +.btn-primary { + color: #fff; + background-color: #337ab7; + border-color: #2e6da4; } + +.btn-primary.active, .btn-primary.focus, .btn-primary:active, .btn-primary:focus, .btn-primary:hover, .open > .dropdown-toggle.btn-primary { + color: #fff; + background-color: #286090; + border-color: #204d74; } + +.btn-primary.active, .btn-primary:active, .open > .dropdown-toggle.btn-primary { + background-image: none; } + +.btn-primary.disabled, .btn-primary.disabled.active, .btn-primary.disabled.focus, .btn-primary.disabled:active, .btn-primary.disabled:focus, .btn-primary.disabled:hover, .btn-primary[disabled], .btn-primary[disabled].active, .btn-primary[disabled].focus, .btn-primary[disabled]:active, .btn-primary[disabled]:focus, .btn-primary[disabled]:hover, fieldset[disabled] .btn-primary, fieldset[disabled] .btn-primary.active, fieldset[disabled] .btn-primary.focus, fieldset[disabled] .btn-primary:active, fieldset[disabled] .btn-primary:focus, fieldset[disabled] .btn-primary:hover { + background-color: #337ab7; + border-color: #2e6da4; } + +.btn-primary .badge { + color: #337ab7; + background-color: #fff; } + +.btn-success { + color: #fff; + background-color: #5cb85c; + border-color: #4cae4c; } + +.btn-success.active, .btn-success.focus, .btn-success:active, .btn-success:focus, .btn-success:hover, .open > .dropdown-toggle.btn-success { + color: #fff; + background-color: #449d44; + border-color: #398439; } + +.btn-success.active, .btn-success:active, .open > .dropdown-toggle.btn-success { + background-image: none; } + +.btn-success.disabled, .btn-success.disabled.active, .btn-success.disabled.focus, .btn-success.disabled:active, .btn-success.disabled:focus, .btn-success.disabled:hover, .btn-success[disabled], .btn-success[disabled].active, .btn-success[disabled].focus, .btn-success[disabled]:active, .btn-success[disabled]:focus, .btn-success[disabled]:hover, fieldset[disabled] .btn-success, fieldset[disabled] .btn-success.active, fieldset[disabled] .btn-success.focus, fieldset[disabled] .btn-success:active, fieldset[disabled] .btn-success:focus, fieldset[disabled] .btn-success:hover { + background-color: #5cb85c; + border-color: #4cae4c; } + +.btn-success .badge { + color: #5cb85c; + background-color: #fff; } + +.btn-info { + color: #fff; + background-color: #5bc0de; + border-color: #46b8da; } + +.btn-info.active, .btn-info.focus, .btn-info:active, .btn-info:focus, .btn-info:hover, .open > .dropdown-toggle.btn-info { + color: #fff; + background-color: #31b0d5; + border-color: #269abc; } + +.btn-info.active, .btn-info:active, .open > .dropdown-toggle.btn-info { + background-image: none; } + +.btn-info.disabled, .btn-info.disabled.active, .btn-info.disabled.focus, .btn-info.disabled:active, .btn-info.disabled:focus, .btn-info.disabled:hover, .btn-info[disabled], .btn-info[disabled].active, .btn-info[disabled].focus, .btn-info[disabled]:active, .btn-info[disabled]:focus, .btn-info[disabled]:hover, fieldset[disabled] .btn-info, fieldset[disabled] .btn-info.active, fieldset[disabled] .btn-info.focus, fieldset[disabled] .btn-info:active, fieldset[disabled] .btn-info:focus, fieldset[disabled] .btn-info:hover { + background-color: #5bc0de; + border-color: #46b8da; } + +.btn-info .badge { + color: #5bc0de; + background-color: #fff; } + +.btn-warning { + color: #fff; + background-color: #f0ad4e; + border-color: #eea236; } + +.btn-warning.active, .btn-warning.focus, .btn-warning:active, .btn-warning:focus, .btn-warning:hover, .open > .dropdown-toggle.btn-warning { + color: #fff; + background-color: #ec971f; + border-color: #d58512; } + +.btn-warning.active, .btn-warning:active, .open > .dropdown-toggle.btn-warning { + background-image: none; } + +.btn-warning.disabled, .btn-warning.disabled.active, .btn-warning.disabled.focus, .btn-warning.disabled:active, .btn-warning.disabled:focus, .btn-warning.disabled:hover, .btn-warning[disabled], .btn-warning[disabled].active, .btn-warning[disabled].focus, .btn-warning[disabled]:active, .btn-warning[disabled]:focus, .btn-warning[disabled]:hover, fieldset[disabled] .btn-warning, fieldset[disabled] .btn-warning.active, fieldset[disabled] .btn-warning.focus, fieldset[disabled] .btn-warning:active, fieldset[disabled] .btn-warning:focus, fieldset[disabled] .btn-warning:hover { + background-color: #f0ad4e; + border-color: #eea236; } + +.btn-warning .badge { + color: #f0ad4e; + background-color: #fff; } + +.btn-danger { + color: #fff; + background-color: #d9534f; + border-color: #d43f3a; } + +.btn-danger.active, .btn-danger.focus, .btn-danger:active, .btn-danger:focus, .btn-danger:hover, .open > .dropdown-toggle.btn-danger { + color: #fff; + background-color: #c9302c; + border-color: #ac2925; } + +.btn-danger.active, .btn-danger:active, .open > .dropdown-toggle.btn-danger { + background-image: none; } + +.btn-danger.disabled, .btn-danger.disabled.active, .btn-danger.disabled.focus, .btn-danger.disabled:active, .btn-danger.disabled:focus, .btn-danger.disabled:hover, .btn-danger[disabled], .btn-danger[disabled].active, .btn-danger[disabled].focus, .btn-danger[disabled]:active, .btn-danger[disabled]:focus, .btn-danger[disabled]:hover, fieldset[disabled] .btn-danger, fieldset[disabled] .btn-danger.active, fieldset[disabled] .btn-danger.focus, fieldset[disabled] .btn-danger:active, fieldset[disabled] .btn-danger:focus, fieldset[disabled] .btn-danger:hover { + background-color: #d9534f; + border-color: #d43f3a; } + +.btn-danger .badge { + color: #d9534f; + background-color: #fff; } + +.btn-link { + font-weight: 400; + color: #337ab7; + border-radius: 0; } + +.btn-link, .btn-link.active, .btn-link:active, .btn-link[disabled], fieldset[disabled] .btn-link { + background-color: transparent; + -webkit-box-shadow: none; + box-shadow: none; } + +.btn-link, .btn-link:active, .btn-link:focus, .btn-link:hover { + border-color: transparent; } + +.btn-link:focus, .btn-link:hover { + color: #23527c; + text-decoration: underline; + background-color: transparent; } + +.btn-link[disabled]:focus, .btn-link[disabled]:hover, fieldset[disabled] .btn-link:focus, fieldset[disabled] .btn-link:hover { + color: #777; + text-decoration: none; } + +.btn-group-lg > .btn, .btn-lg { + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; } + +.btn-group-sm > .btn, .btn-sm { + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } + +.btn-group-xs > .btn, .btn-xs { + padding: 1px 5px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } + +.btn-block { + display: block; + width: 100%; } + +.btn-block + .btn-block { + margin-top: 5px; } + +input[type=button].btn-block, input[type=reset].btn-block, input[type=submit].btn-block { + width: 100%; } + +.fade { + opacity: 0; + -webkit-transition: opacity 0.15s linear; + -o-transition: opacity 0.15s linear; + transition: opacity 0.15s linear; } + +.fade.in { + opacity: 1; } + +.collapse { + display: none; + visibility: hidden; } + +.collapse.in { + display: block; + visibility: visible; } + +tr.collapse.in { + display: table-row; } + +tbody.collapse.in { + display: table-row-group; } + +.collapsing { + position: relative; + height: 0; + overflow: hidden; + -webkit-transition-timing-function: ease; + -o-transition-timing-function: ease; + transition-timing-function: ease; + -webkit-transition-duration: .35s; + -o-transition-duration: .35s; + transition-duration: .35s; + -webkit-transition-property: height, visibility; + -o-transition-property: height, visibility; + transition-property: height, visibility; } + +.caret { + display: inline-block; + width: 0; + height: 0; + margin-left: 2px; + vertical-align: middle; + border-top: 4px solid; + border-right: 4px solid transparent; + border-left: 4px solid transparent; } + +.dropdown, .dropup { + position: relative; } + +.dropdown-toggle:focus { + outline: 0; } + +.dropdown-menu { + position: absolute; + top: 100%; + left: 0; + z-index: 1000; + display: none; + float: left; + min-width: 160px; + padding: 5px 0; + margin: 2px 0 0; + font-size: 14px; + text-align: left; + list-style: none; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.15); + border-radius: 4px; + -webkit-box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); + box-shadow: 0 6px 12px rgba(0, 0, 0, 0.175); } + +.dropdown-menu.pull-right { + right: 0; + left: auto; } + +.dropdown-menu .divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; } + +.dropdown-menu > li > a { + display: block; + padding: 3px 20px; + clear: both; + font-weight: 400; + line-height: 1.42857143; + color: #333; + white-space: nowrap; } + +.dropdown-menu > li > a:focus, .dropdown-menu > li > a:hover { + color: #262626; + text-decoration: none; + background-color: #f5f5f5; } + +.dropdown-menu > .active > a, .dropdown-menu > .active > a:focus, .dropdown-menu > .active > a:hover { + color: #fff; + text-decoration: none; + background-color: #337ab7; + outline: 0; } + +.dropdown-menu > .disabled > a, .dropdown-menu > .disabled > a:focus, .dropdown-menu > .disabled > a:hover { + color: #777; } + +.dropdown-menu > .disabled > a:focus, .dropdown-menu > .disabled > a:hover { + text-decoration: none; + cursor: not-allowed; + background-color: transparent; + background-image: none; + filter: progid:DXImageTransform.Microsoft.gradient(enabled=false); } + +.open > .dropdown-menu { + display: block; } + +.open > a { + outline: 0; } + +.dropdown-menu-right { + right: 0; + left: auto; } + +.dropdown-menu-left { + right: auto; + left: 0; } + +.dropdown-header { + display: block; + padding: 3px 20px; + font-size: 12px; + line-height: 1.42857143; + color: #777; + white-space: nowrap; } + +.dropdown-backdrop { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 990; } + +.pull-right > .dropdown-menu { + right: 0; + left: auto; } + +.dropup .caret, .navbar-fixed-bottom .dropdown .caret { + content: ""; + border-top: 0; + border-bottom: 4px solid; } + +.dropup .dropdown-menu, .navbar-fixed-bottom .dropdown .dropdown-menu { + top: auto; + bottom: 100%; + margin-bottom: 2px; } + +@media (min-width: 768px) { + .navbar-right .dropdown-menu { + right: 0; + left: auto; } + .navbar-right .dropdown-menu-left { + right: auto; + left: 0; } } + +.btn-group, .btn-group-vertical { + position: relative; + display: inline-block; + vertical-align: middle; } + +.btn-group-vertical > .btn, .btn-group > .btn { + position: relative; + float: left; } + +.btn-group-vertical > .btn.active, .btn-group-vertical > .btn:active, .btn-group-vertical > .btn:focus, .btn-group-vertical > .btn:hover, .btn-group > .btn.active, .btn-group > .btn:active, .btn-group > .btn:focus, .btn-group > .btn:hover { + z-index: 2; } + +.btn-group .btn + .btn, .btn-group .btn + .btn-group, .btn-group .btn-group + .btn, .btn-group .btn-group + .btn-group { + margin-left: -1px; } + +.btn-toolbar { + margin-left: -5px; } + +.btn-toolbar .btn-group, .btn-toolbar .input-group { + float: left; } + +.btn-toolbar > .btn, .btn-toolbar > .btn-group, .btn-toolbar > .input-group { + margin-left: 5px; } + +.btn-group > .btn:not(:first-child):not(:last-child):not(.dropdown-toggle) { + border-radius: 0; } + +.btn-group > .btn:first-child { + margin-left: 0; } + +.btn-group > .btn:first-child:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.btn-group > .btn:last-child:not(:first-child), .btn-group > .dropdown-toggle:not(:first-child) { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.btn-group > .btn-group { + float: left; } + +.btn-group > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +.btn-group > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.btn-group > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.btn-group .dropdown-toggle:active, .btn-group.open .dropdown-toggle { + outline: 0; } + +.btn-group > .btn + .dropdown-toggle { + padding-right: 8px; + padding-left: 8px; } + +.btn-group > .btn-lg + .dropdown-toggle { + padding-right: 12px; + padding-left: 12px; } + +.btn-group.open .dropdown-toggle { + -webkit-box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); + box-shadow: inset 0 3px 5px rgba(0, 0, 0, 0.125); } + +.btn-group.open .dropdown-toggle.btn-link { + -webkit-box-shadow: none; + box-shadow: none; } + +.btn .caret { + margin-left: 0; } + +.btn-lg .caret { + border-width: 5px 5px 0; + border-bottom-width: 0; } + +.dropup .btn-lg .caret { + border-width: 0 5px 5px; } + +.btn-group-vertical > .btn, .btn-group-vertical > .btn-group, .btn-group-vertical > .btn-group > .btn { + display: block; + float: none; + width: 100%; + max-width: 100%; } + +.btn-group-vertical > .btn-group > .btn { + float: none; } + +.btn-group-vertical > .btn + .btn, .btn-group-vertical > .btn + .btn-group, .btn-group-vertical > .btn-group + .btn, .btn-group-vertical > .btn-group + .btn-group { + margin-top: -1px; + margin-left: 0; } + +.btn-group-vertical > .btn:not(:first-child):not(:last-child) { + border-radius: 0; } + +.btn-group-vertical > .btn:first-child:not(:last-child) { + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + +.btn-group-vertical > .btn:last-child:not(:first-child) { + border-top-left-radius: 0; + border-top-right-radius: 0; + border-bottom-left-radius: 4px; } + +.btn-group-vertical > .btn-group:not(:first-child):not(:last-child) > .btn { + border-radius: 0; } + +.btn-group-vertical > .btn-group:first-child:not(:last-child) > .btn:last-child, .btn-group-vertical > .btn-group:first-child:not(:last-child) > .dropdown-toggle { + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + +.btn-group-vertical > .btn-group:last-child:not(:first-child) > .btn:first-child { + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.btn-group-justified { + display: table; + width: 100%; + table-layout: fixed; + border-collapse: separate; } + +.btn-group-justified > .btn, .btn-group-justified > .btn-group { + display: table-cell; + float: none; + width: 1%; } + +.btn-group-justified > .btn-group .btn { + width: 100%; } + +.btn-group-justified > .btn-group .dropdown-menu { + left: auto; } + +[data-toggle=buttons] > .btn input[type=checkbox], [data-toggle=buttons] > .btn input[type=radio], [data-toggle=buttons] > .btn-group > .btn input[type=checkbox], [data-toggle=buttons] > .btn-group > .btn input[type=radio] { + position: absolute; + clip: rect(0, 0, 0, 0); + pointer-events: none; } + +.input-group { + position: relative; + display: table; + border-collapse: separate; } + +.input-group[class*=col-] { + float: none; + padding-right: 0; + padding-left: 0; } + +.input-group .form-control { + position: relative; + z-index: 2; + float: left; + width: 100%; + margin-bottom: 0; } + +.input-group-lg > .form-control, .input-group-lg > .input-group-addon, .input-group-lg > .input-group-btn > .btn { + height: 46px; + padding: 10px 16px; + font-size: 18px; + line-height: 1.3333333; + border-radius: 6px; } + +select.input-group-lg > .form-control, select.input-group-lg > .input-group-addon, select.input-group-lg > .input-group-btn > .btn { + height: 46px; + line-height: 46px; } + +select[multiple].input-group-lg > .form-control, select[multiple].input-group-lg > .input-group-addon, select[multiple].input-group-lg > .input-group-btn > .btn, textarea.input-group-lg > .form-control, textarea.input-group-lg > .input-group-addon, textarea.input-group-lg > .input-group-btn > .btn { + height: auto; } + +.input-group-sm > .form-control, .input-group-sm > .input-group-addon, .input-group-sm > .input-group-btn > .btn { + height: 30px; + padding: 5px 10px; + font-size: 12px; + line-height: 1.5; + border-radius: 3px; } + +select.input-group-sm > .form-control, select.input-group-sm > .input-group-addon, select.input-group-sm > .input-group-btn > .btn { + height: 30px; + line-height: 30px; } + +select[multiple].input-group-sm > .form-control, select[multiple].input-group-sm > .input-group-addon, select[multiple].input-group-sm > .input-group-btn > .btn, textarea.input-group-sm > .form-control, textarea.input-group-sm > .input-group-addon, textarea.input-group-sm > .input-group-btn > .btn { + height: auto; } + +.input-group .form-control, .input-group-addon, .input-group-btn { + display: table-cell; } + +.input-group .form-control:not(:first-child):not(:last-child), .input-group-addon:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child) { + border-radius: 0; } + +.input-group-addon, .input-group-btn { + width: 1%; + white-space: nowrap; + vertical-align: middle; } + +.input-group-addon { + padding: 6px 12px; + font-size: 14px; + font-weight: 400; + line-height: 1; + color: #555; + text-align: center; + background-color: #eee; + border: 1px solid #ccc; + border-radius: 4px; } + +.input-group-addon.input-sm { + padding: 5px 10px; + font-size: 12px; + border-radius: 3px; } + +.input-group-addon.input-lg { + padding: 10px 16px; + font-size: 18px; + border-radius: 6px; } + +.input-group-addon input[type=checkbox], .input-group-addon input[type=radio] { + margin-top: 0; } + +.input-group .form-control:first-child, .input-group-addon:first-child, .input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group > .btn, .input-group-btn:first-child > .dropdown-toggle, .input-group-btn:last-child > .btn-group:not(:last-child) > .btn, .input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) { + border-top-right-radius: 0; + border-bottom-right-radius: 0; } + +.input-group-addon:first-child { + border-right: 0; } + +.input-group .form-control:last-child, .input-group-addon:last-child, .input-group-btn:first-child > .btn-group:not(:first-child) > .btn, .input-group-btn:first-child > .btn:not(:first-child), .input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group > .btn, .input-group-btn:last-child > .dropdown-toggle { + border-top-left-radius: 0; + border-bottom-left-radius: 0; } + +.input-group-addon:last-child { + border-left: 0; } + +.input-group-btn { + position: relative; + font-size: 0; + white-space: nowrap; } + +.input-group-btn > .btn { + position: relative; } + +.input-group-btn > .btn + .btn { + margin-left: -1px; } + +.input-group-btn > .btn:active, .input-group-btn > .btn:focus, .input-group-btn > .btn:hover { + z-index: 2; } + +.input-group-btn:first-child > .btn, .input-group-btn:first-child > .btn-group { + margin-right: -1px; } + +.input-group-btn:last-child > .btn, .input-group-btn:last-child > .btn-group { + margin-left: -1px; } + +.nav { + padding-left: 0; + margin-bottom: 0; + list-style: none; } + +.nav > li { + position: relative; + display: block; } + +.nav > li > a { + position: relative; + display: block; + padding: 10px 15px; } + +.nav > li > a:focus, .nav > li > a:hover { + text-decoration: none; + background-color: #eee; } + +.nav > li.disabled > a { + color: #777; } + +.nav > li.disabled > a:focus, .nav > li.disabled > a:hover { + color: #777; + text-decoration: none; + cursor: not-allowed; + background-color: transparent; } + +.nav .open > a, .nav .open > a:focus, .nav .open > a:hover { + background-color: #eee; + border-color: #337ab7; } + +.nav .nav-divider { + height: 1px; + margin: 9px 0; + overflow: hidden; + background-color: #e5e5e5; } + +.nav > li > a > img { + max-width: none; } + +.nav-tabs { + border-bottom: 1px solid #ddd; } + +.nav-tabs > li { + float: left; + margin-bottom: -1px; } + +.nav-tabs > li > a { + margin-right: 2px; + line-height: 1.42857143; + border: 1px solid transparent; + border-radius: 4px 4px 0 0; } + +.nav-tabs > li > a:hover { + border-color: #eee #eee #ddd; } + +.nav-tabs > li.active > a, .nav-tabs > li.active > a:focus, .nav-tabs > li.active > a:hover { + color: #555; + cursor: default; + background-color: #fff; + border: 1px solid #ddd; + border-bottom-color: transparent; } + +.nav-tabs.nav-justified { + width: 100%; + border-bottom: 0; } + +.nav-tabs.nav-justified > li { + float: none; } + +.nav-tabs.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; } + +.nav-tabs.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; } + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li { + display: table-cell; + width: 1%; } + .nav-tabs.nav-justified > li > a { + margin-bottom: 0; } } + +.nav-tabs.nav-justified > li > a { + margin-right: 0; + border-radius: 4px; } + +.nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:hover { + border: 1px solid #ddd; } + +@media (min-width: 768px) { + .nav-tabs.nav-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; } + .nav-tabs.nav-justified > .active > a, .nav-tabs.nav-justified > .active > a:focus, .nav-tabs.nav-justified > .active > a:hover { + border-bottom-color: #fff; } } + +.nav-pills > li { + float: left; } + +.nav-pills > li > a { + border-radius: 4px; } + +.nav-pills > li + li { + margin-left: 2px; } + +.nav-pills > li.active > a, .nav-pills > li.active > a:focus, .nav-pills > li.active > a:hover { + color: #fff; + background-color: #337ab7; } + +.nav-stacked > li { + float: none; } + +.nav-stacked > li + li { + margin-top: 2px; + margin-left: 0; } + +.nav-justified { + width: 100%; } + +.nav-justified > li { + float: none; } + +.nav-justified > li > a { + margin-bottom: 5px; + text-align: center; } + +.nav-justified > .dropdown .dropdown-menu { + top: auto; + left: auto; } + +@media (min-width: 768px) { + .nav-justified > li { + display: table-cell; + width: 1%; } + .nav-justified > li > a { + margin-bottom: 0; } } + +.nav-tabs-justified { + border-bottom: 0; } + +.nav-tabs-justified > li > a { + margin-right: 0; + border-radius: 4px; } + +.nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:focus, .nav-tabs-justified > .active > a:hover { + border: 1px solid #ddd; } + +@media (min-width: 768px) { + .nav-tabs-justified > li > a { + border-bottom: 1px solid #ddd; + border-radius: 4px 4px 0 0; } + .nav-tabs-justified > .active > a, .nav-tabs-justified > .active > a:focus, .nav-tabs-justified > .active > a:hover { + border-bottom-color: #fff; } } + +.tab-content > .tab-pane { + display: none; + visibility: hidden; } + +.tab-content > .active { + display: block; + visibility: visible; } + +.nav-tabs .dropdown-menu { + margin-top: -1px; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.navbar { + position: relative; + min-height: 50px; + margin-bottom: 20px; + border: 1px solid transparent; } + +@media (min-width: 768px) { + .navbar { + border-radius: 4px; } } + +@media (min-width: 768px) { + .navbar-header { + float: left; } } + +.navbar-collapse { + padding-right: 15px; + padding-left: 15px; + overflow-x: visible; + -webkit-overflow-scrolling: touch; + border-top: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1); } + +.navbar-collapse.in { + overflow-y: auto; } + +@media (min-width: 768px) { + .navbar-collapse { + width: auto; + border-top: 0; + -webkit-box-shadow: none; + box-shadow: none; } + .navbar-collapse.collapse { + display: block !important; + height: auto !important; + padding-bottom: 0; + overflow: visible !important; + visibility: visible !important; } + .navbar-collapse.in { + overflow-y: visible; } + .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse, .navbar-static-top .navbar-collapse { + padding-right: 0; + padding-left: 0; } } + +.navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse { + max-height: 340px; } + +@media (max-device-width: 480px) and (orientation: landscape) { + .navbar-fixed-bottom .navbar-collapse, .navbar-fixed-top .navbar-collapse { + max-height: 200px; } } + +.container-fluid > .navbar-collapse, .container-fluid > .navbar-header, .container > .navbar-collapse, .container > .navbar-header { + margin-right: -15px; + margin-left: -15px; } + +@media (min-width: 768px) { + .container-fluid > .navbar-collapse, .container-fluid > .navbar-header, .container > .navbar-collapse, .container > .navbar-header { + margin-right: 0; + margin-left: 0; } } + +.navbar-static-top { + z-index: 1000; + border-width: 0 0 1px; } + +@media (min-width: 768px) { + .navbar-static-top { + border-radius: 0; } } + +.navbar-fixed-bottom, .navbar-fixed-top { + position: fixed; + right: 0; + left: 0; + z-index: 1030; } + +@media (min-width: 768px) { + .navbar-fixed-bottom, .navbar-fixed-top { + border-radius: 0; } } + +.navbar-fixed-top { + top: 0; + border-width: 0 0 1px; } + +.navbar-fixed-bottom { + bottom: 0; + margin-bottom: 0; + border-width: 1px 0 0; } + +.navbar-brand { + float: left; + height: 50px; + padding: 15px 15px; + font-size: 18px; + line-height: 20px; } + +.navbar-brand:focus, .navbar-brand:hover { + text-decoration: none; } + +.navbar-brand > img { + display: block; } + +@media (min-width: 768px) { + .navbar > .container .navbar-brand, .navbar > .container-fluid .navbar-brand { + margin-left: -15px; } } + +.navbar-toggle { + position: relative; + float: right; + padding: 9px 10px; + margin-top: 8px; + margin-right: 15px; + margin-bottom: 8px; + background-color: transparent; + background-image: none; + border: 1px solid transparent; + border-radius: 4px; } + +.navbar-toggle:focus { + outline: 0; } + +.navbar-toggle .icon-bar { + display: block; + width: 22px; + height: 2px; + border-radius: 1px; } + +.navbar-toggle .icon-bar + .icon-bar { + margin-top: 4px; } + +@media (min-width: 768px) { + .navbar-toggle { + display: none; } } + +.navbar-nav { + margin: 7.5px -15px; } + +.navbar-nav > li > a { + padding-top: 10px; + padding-bottom: 10px; + line-height: 20px; } + +@media (max-width: 767px) { + .navbar-nav .open .dropdown-menu { + position: static; + float: none; + width: auto; + margin-top: 0; + background-color: transparent; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; } + .navbar-nav .open .dropdown-menu .dropdown-header, .navbar-nav .open .dropdown-menu > li > a { + padding: 5px 15px 5px 25px; } + .navbar-nav .open .dropdown-menu > li > a { + line-height: 20px; } + .navbar-nav .open .dropdown-menu > li > a:focus, .navbar-nav .open .dropdown-menu > li > a:hover { + background-image: none; } } + +@media (min-width: 768px) { + .navbar-nav { + float: left; + margin: 0; } + .navbar-nav > li { + float: left; } + .navbar-nav > li > a { + padding-top: 15px; + padding-bottom: 15px; } } + +.navbar-form { + padding: 10px 15px; + margin-top: 8px; + margin-right: -15px; + margin-bottom: 8px; + margin-left: -15px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + -webkit-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); + box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.1), 0 1px 0 rgba(255, 255, 255, 0.1); } + +@media (min-width: 768px) { + .navbar-form .form-group { + display: inline-block; + margin-bottom: 0; + vertical-align: middle; } + .navbar-form .form-control { + display: inline-block; + width: auto; + vertical-align: middle; } + .navbar-form .form-control-static { + display: inline-block; } + .navbar-form .input-group { + display: inline-table; + vertical-align: middle; } + .navbar-form .input-group .form-control, .navbar-form .input-group .input-group-addon, .navbar-form .input-group .input-group-btn { + width: auto; } + .navbar-form .input-group > .form-control { + width: 100%; } + .navbar-form .control-label { + margin-bottom: 0; + vertical-align: middle; } + .navbar-form .checkbox, .navbar-form .radio { + display: inline-block; + margin-top: 0; + margin-bottom: 0; + vertical-align: middle; } + .navbar-form .checkbox label, .navbar-form .radio label { + padding-left: 0; } + .navbar-form .checkbox input[type=checkbox], .navbar-form .radio input[type=radio] { + position: relative; + margin-left: 0; } + .navbar-form .has-feedback .form-control-feedback { + top: 0; } } + +@media (max-width: 767px) { + .navbar-form .form-group { + margin-bottom: 5px; } + .navbar-form .form-group:last-child { + margin-bottom: 0; } } + +@media (min-width: 768px) { + .navbar-form { + width: auto; + padding-top: 0; + padding-bottom: 0; + margin-right: 0; + margin-left: 0; + border: 0; + -webkit-box-shadow: none; + box-shadow: none; } } + +.navbar-nav > li > .dropdown-menu { + margin-top: 0; + border-top-left-radius: 0; + border-top-right-radius: 0; } + +.navbar-fixed-bottom .navbar-nav > li > .dropdown-menu { + margin-bottom: 0; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom-right-radius: 0; + border-bottom-left-radius: 0; } + +.navbar-btn { + margin-top: 8px; + margin-bottom: 8px; } + +.navbar-btn.btn-sm { + margin-top: 10px; + margin-bottom: 10px; } + +.navbar-btn.btn-xs { + margin-top: 14px; + margin-bottom: 14px; } + +.navbar-text { + margin-top: 15px; + margin-bottom: 15px; } + +@media (min-width: 768px) { + .navbar-text { + float: left; + margin-right: 15px; + margin-left: 15px; } } + +@media (min-width: 768px) { + .navbar-left { + float: left !important; } + .navbar-right { + float: right !important; + margin-right: -15px; } + .navbar-right ~ .navbar-right { + margin-right: 0; } } + +.navbar-default { + background-color: #f8f8f8; + border-color: #e7e7e7; } + +.navbar-default .navbar-brand { + color: #777; } + +.navbar-default .navbar-brand:focus, .navbar-default .navbar-brand:hover { + color: #5e5e5e; + background-color: transparent; } + +.navbar-default .navbar-text { + color: #777; } + +.navbar-default .navbar-nav > li > a { + color: #777; } + +.navbar-default .navbar-nav > li > a:focus, .navbar-default .navbar-nav > li > a:hover { + color: #333; + background-color: transparent; } + +.navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:focus, .navbar-default .navbar-nav > .active > a:hover { + color: #555; + background-color: #e7e7e7; } + +.navbar-default .navbar-nav > .disabled > a, .navbar-default .navbar-nav > .disabled > a:focus, .navbar-default .navbar-nav > .disabled > a:hover { + color: #ccc; + background-color: transparent; } + +.navbar-default .navbar-toggle { + border-color: #ddd; } + +.navbar-default .navbar-toggle:focus, .navbar-default .navbar-toggle:hover { + background-color: #ddd; } + +.navbar-default .navbar-toggle .icon-bar { + background-color: #888; } + +.navbar-default .navbar-collapse, .navbar-default .navbar-form { + border-color: #e7e7e7; } + +.navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:focus, .navbar-default .navbar-nav > .open > a:hover { + color: #555; + background-color: #e7e7e7; } + +@media (max-width: 767px) { + .navbar-default .navbar-nav .open .dropdown-menu > li > a { + color: #777; } + .navbar-default .navbar-nav .open .dropdown-menu > li > a:focus, .navbar-default .navbar-nav .open .dropdown-menu > li > a:hover { + color: #333; + background-color: transparent; } + .navbar-default .navbar-nav .open .dropdown-menu > .active > a, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:focus, .navbar-default .navbar-nav .open .dropdown-menu > .active > a:hover { + color: #555; + background-color: #e7e7e7; } + .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:focus, .navbar-default .navbar-nav .open .dropdown-menu > .disabled > a:hover { + color: #ccc; + background-color: transparent; } } + +.navbar-default .navbar-link { + color: #777; } + +.navbar-default .navbar-link:hover { + color: #333; } + +.navbar-default .btn-link { + color: #777; } + +.navbar-default .btn-link:focus, .navbar-default .btn-link:hover { + color: #333; } + +.navbar-default .btn-link[disabled]:focus, .navbar-default .btn-link[disabled]:hover, fieldset[disabled] .navbar-default .btn-link:focus, fieldset[disabled] .navbar-default .btn-link:hover { + color: #ccc; } + +.navbar-inverse { + background-color: #222; + border-color: #080808; } + +.navbar-inverse .navbar-brand { + color: #9d9d9d; } + +.navbar-inverse .navbar-brand:focus, .navbar-inverse .navbar-brand:hover { + color: #fff; + background-color: transparent; } + +.navbar-inverse .navbar-text { + color: #9d9d9d; } + +.navbar-inverse .navbar-nav > li > a { + color: #9d9d9d; } + +.navbar-inverse .navbar-nav > li > a:focus, .navbar-inverse .navbar-nav > li > a:hover { + color: #fff; + background-color: transparent; } + +.navbar-inverse .navbar-nav > .active > a, .navbar-inverse .navbar-nav > .active > a:focus, .navbar-inverse .navbar-nav > .active > a:hover { + color: #fff; + background-color: #080808; } + +.navbar-inverse .navbar-nav > .disabled > a, .navbar-inverse .navbar-nav > .disabled > a:focus, .navbar-inverse .navbar-nav > .disabled > a:hover { + color: #444; + background-color: transparent; } + +.navbar-inverse .navbar-toggle { + border-color: #333; } + +.navbar-inverse .navbar-toggle:focus, .navbar-inverse .navbar-toggle:hover { + background-color: #333; } + +.navbar-inverse .navbar-toggle .icon-bar { + background-color: #fff; } + +.navbar-inverse .navbar-collapse, .navbar-inverse .navbar-form { + border-color: #101010; } + +.navbar-inverse .navbar-nav > .open > a, .navbar-inverse .navbar-nav > .open > a:focus, .navbar-inverse .navbar-nav > .open > a:hover { + color: #fff; + background-color: #080808; } + +@media (max-width: 767px) { + .navbar-inverse .navbar-nav .open .dropdown-menu > .dropdown-header { + border-color: #080808; } + .navbar-inverse .navbar-nav .open .dropdown-menu .divider { + background-color: #080808; } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a { + color: #9d9d9d; } + .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:focus, .navbar-inverse .navbar-nav .open .dropdown-menu > li > a:hover { + color: #fff; + background-color: transparent; } + .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:focus, .navbar-inverse .navbar-nav .open .dropdown-menu > .active > a:hover { + color: #fff; + background-color: #080808; } + .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:focus, .navbar-inverse .navbar-nav .open .dropdown-menu > .disabled > a:hover { + color: #444; + background-color: transparent; } } + +.navbar-inverse .navbar-link { + color: #9d9d9d; } + +.navbar-inverse .navbar-link:hover { + color: #fff; } + +.navbar-inverse .btn-link { + color: #9d9d9d; } + +.navbar-inverse .btn-link:focus, .navbar-inverse .btn-link:hover { + color: #fff; } + +.navbar-inverse .btn-link[disabled]:focus, .navbar-inverse .btn-link[disabled]:hover, fieldset[disabled] .navbar-inverse .btn-link:focus, fieldset[disabled] .navbar-inverse .btn-link:hover { + color: #444; } + +.breadcrumb { + padding: 8px 15px; + margin-bottom: 20px; + list-style: none; + background-color: #f5f5f5; + border-radius: 4px; } + +.breadcrumb > li { + display: inline-block; } + +.breadcrumb > li + li:before { + padding: 0 5px; + color: #ccc; + content: "/\00a0"; } + +.breadcrumb > .active { + color: #777; } + +.pagination { + display: inline-block; + padding-left: 0; + margin: 20px 0; + border-radius: 4px; } + +.pagination > li { + display: inline; } + +.pagination > li > a, .pagination > li > span { + position: relative; + float: left; + padding: 6px 12px; + margin-left: -1px; + line-height: 1.42857143; + text-decoration: none; } + +.pagination > li:first-child > a, .pagination > li:first-child > span { + margin-left: 0; + border-top-left-radius: 4px; + border-bottom-left-radius: 4px; } + +.pagination > li:last-child > a, .pagination > li:last-child > span { + border-top-right-radius: 4px; + border-bottom-right-radius: 4px; } + +.pagination > .active > a, .pagination > .active > a:focus, .pagination > .active > a:hover, .pagination > .active > span, .pagination > .active > span:focus, .pagination > .active > span:hover { + z-index: 2; + cursor: default; } + +.pagination > .disabled > a, .pagination > .disabled > a:focus, .pagination > .disabled > a:hover, .pagination > .disabled > span, .pagination > .disabled > span:focus, .pagination > .disabled > span:hover { + cursor: not-allowed; } + +.pagination-lg > li > a, .pagination-lg > li > span { + padding: 10px 16px; + font-size: 18px; } + +.pagination-lg > li:first-child > a, .pagination-lg > li:first-child > span { + border-top-left-radius: 6px; + border-bottom-left-radius: 6px; } + +.pagination-lg > li:last-child > a, .pagination-lg > li:last-child > span { + border-top-right-radius: 6px; + border-bottom-right-radius: 6px; } + +.pagination-sm > li > a, .pagination-sm > li > span { + padding: 5px 10px; + font-size: 12px; } + +.pagination-sm > li:first-child > a, .pagination-sm > li:first-child > span { + border-top-left-radius: 3px; + border-bottom-left-radius: 3px; } + +.pagination-sm > li:last-child > a, .pagination-sm > li:last-child > span { + border-top-right-radius: 3px; + border-bottom-right-radius: 3px; } + +.pager { + padding-left: 0; + margin: 20px 0; + text-align: center; + list-style: none; } + +.pager li { + display: inline; } + +.pager li > a, .pager li > span { + display: inline-block; + padding: 5px 14px; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 15px; } + +.pager li > a:focus, .pager li > a:hover { + text-decoration: none; + background-color: #eee; } + +.pager .next > a, .pager .next > span { + float: right; } + +.pager .previous > a, .pager .previous > span { + float: left; } + +.pager .disabled > a, .pager .disabled > a:focus, .pager .disabled > a:hover, .pager .disabled > span { + color: #777; + cursor: not-allowed; + background-color: #fff; } + +.label { + display: inline; + /* padding: .2em .6em .3em; */ + font-size: 75%; + /* font-weight: 700;*/ + line-height: 1; + /* color: #fff;*/ + text-align: center; + white-space: nowrap; + vertical-align: baseline; + border-radius: .25em; } + +a.label:focus, a.label:hover { + color: #fff; + text-decoration: none; + cursor: pointer; } + +.label:empty { + display: none; } + +.btn .label { + position: relative; + top: -1px; } + +.label-default { + background-color: #777; } + +.label-default[href]:focus, .label-default[href]:hover { + background-color: #5e5e5e; } + +.label-primary { + background-color: #337ab7; } + +.label-primary[href]:focus, .label-primary[href]:hover { + background-color: #286090; } + +.label-success { + background-color: #5cb85c; } + +.label-success[href]:focus, .label-success[href]:hover { + background-color: #449d44; } + +.label-info { + background-color: #5bc0de; } + +.label-info[href]:focus, .label-info[href]:hover { + background-color: #31b0d5; } + +.label-warning { + background-color: #f0ad4e; } + +.label-warning[href]:focus, .label-warning[href]:hover { + background-color: #ec971f; } + +.label-danger { + background-color: #d9534f; } + +.label-danger[href]:focus, .label-danger[href]:hover { + background-color: #c9302c; } + +.badge { + display: inline-block; + min-width: 10px; + padding: 3px 7px; + font-size: 12px; + font-weight: 700; + line-height: 1; + color: #fff; + text-align: center; + white-space: nowrap; + vertical-align: baseline; + background-color: #777; + border-radius: 10px; } + +.badge:empty { + display: none; } + +.btn .badge { + position: relative; + top: -1px; } + +.btn-xs .badge { + top: 0; + padding: 1px 5px; } + +a.badge:focus, a.badge:hover { + color: #fff; + text-decoration: none; + cursor: pointer; } + +.list-group-item.active > .badge, .nav-pills > .active > a > .badge { + color: #337ab7; + background-color: #fff; } + +.list-group-item > .badge { + float: right; } + +.list-group-item > .badge + .badge { + margin-right: 5px; } + +.nav-pills > li > a > .badge { + margin-left: 3px; } + +.jumbotron { + padding: 30px 15px; + margin-bottom: 30px; + color: inherit; + background-color: #eee; } + +.jumbotron .h1, .jumbotron h1 { + color: inherit; } + +.jumbotron p { + margin-bottom: 15px; + font-size: 21px; + font-weight: 200; } + +.jumbotron > hr { + border-top-color: #d5d5d5; } + +.container .jumbotron, .container-fluid .jumbotron { + border-radius: 6px; } + +.jumbotron .container { + max-width: 100%; } + +@media screen and (min-width: 768px) { + .jumbotron { + padding: 48px 0; } + .container .jumbotron, .container-fluid .jumbotron { + padding-right: 60px; + padding-left: 60px; } + .jumbotron .h1, .jumbotron h1 { + font-size: 63px; } } + +.thumbnail { + display: block; + padding: 4px; + margin-bottom: 20px; + line-height: 1.42857143; + background-color: #fff; + border: 1px solid #ddd; + border-radius: 4px; + -webkit-transition: border 0.2s ease-in-out; + -o-transition: border 0.2s ease-in-out; + transition: border 0.2s ease-in-out; } + +.thumbnail a > img, .thumbnail > img { + margin-right: auto; + margin-left: auto; } + +a.thumbnail.active, a.thumbnail:focus, a.thumbnail:hover { + border-color: #337ab7; } + +.thumbnail .caption { + padding: 9px; + color: #333; } + +.alert { + padding: 15px; + margin-bottom: 20px; + border: 1px solid transparent; + border-radius: 4px; } + +.alert h4 { + margin-top: 0; + color: inherit; } + +.alert .alert-link { + font-weight: 700; } + +.alert > p, .alert > ul { + margin-bottom: 0; } + +.alert > p + p { + margin-top: 5px; } + +.alert-dismissable, .alert-dismissible { + padding-right: 35px; } + +.alert-dismissable .close, .alert-dismissible .close { + position: relative; + top: -2px; + right: -21px; + color: inherit; } + +.alert-success { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; } + +.alert-success hr { + border-top-color: #c9e2b3; } + +.alert-success .alert-link { + color: #2b542c; } + +.alert-info { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; } + +.alert-info hr { + border-top-color: #a6e1ec; } + +.alert-info .alert-link { + color: #245269; } + +.alert-warning { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; } + +.alert-warning hr { + border-top-color: #f7e1b5; } + +.alert-warning .alert-link { + color: #66512c; } + +.alert-danger { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; } + +.alert-danger hr { + border-top-color: #e4b9c0; } + +.alert-danger .alert-link { + color: #843534; } + +@-webkit-keyframes progress-bar-stripes { + from { + background-position: 40px 0; } + to { + background-position: 0 0; } } + +@-o-keyframes progress-bar-stripes { + from { + background-position: 40px 0; } + to { + background-position: 0 0; } } + +@keyframes progress-bar-stripes { + from { + background-position: 40px 0; } + to { + background-position: 0 0; } } + +.progress { + height: 20px; + margin-bottom: 20px; + overflow: hidden; + background-color: #f5f5f5; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); + box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); } + +.progress-bar { + float: left; + width: 0; + height: 100%; + font-size: 12px; + line-height: 20px; + color: #fff; + text-align: center; + background-color: #337ab7; + -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); + -webkit-transition: width 0.6s ease; + -o-transition: width 0.6s ease; + transition: width 0.6s ease; } + +.progress-bar-striped, .progress-striped .progress-bar { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + -webkit-background-size: 40px 40px; + background-size: 40px 40px; } + +.progress-bar.active, .progress.active .progress-bar { + -webkit-animation: progress-bar-stripes 2s linear infinite; + -o-animation: progress-bar-stripes 2s linear infinite; + animation: progress-bar-stripes 2s linear infinite; } + +.progress-bar-success { + background-color: #5cb85c; } + +.progress-striped .progress-bar-success { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } + +.progress-bar-info { + background-color: #5bc0de; } + +.progress-striped .progress-bar-info { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } + +.progress-bar-warning { + background-color: #f0ad4e; } + +.progress-striped .progress-bar-warning { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } + +.progress-bar-danger { + background-color: #d9534f; } + +.progress-striped .progress-bar-danger { + background-image: -webkit-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: -o-linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); + background-image: linear-gradient(45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); } + +.media { + margin-top: 15px; } + +.media:first-child { + margin-top: 0; } + +.media, .media-body { + overflow: hidden; + zoom: 1; } + +.media-body { + width: 10000px; } + +.media-object { + display: block; } + +.media-right, .media > .pull-right { + padding-left: 10px; } + +.media-left, .media > .pull-left { + padding-right: 10px; } + +.media-body, .media-left, .media-right { + display: table-cell; + vertical-align: top; } + +.media-middle { + vertical-align: middle; } + +.media-bottom { + vertical-align: bottom; } + +.media-heading { + margin-top: 0; + margin-bottom: 5px; } + +.media-list { + padding-left: 0; + list-style: none; } + +.list-group { + padding-left: 0; + margin-bottom: 20px; } + +.list-group-item { + position: relative; + display: block; + padding: 10px 15px; + margin-bottom: -1px; + background-color: #fff; + border: 1px solid #ddd; } + +.list-group-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; } + +.list-group-item:last-child { + margin-bottom: 0; + border-bottom-right-radius: 4px; + border-bottom-left-radius: 4px; } + +a.list-group-item { + color: #555; } + +a.list-group-item .list-group-item-heading { + color: #333; } + +a.list-group-item:focus, a.list-group-item:hover { + color: #555; + text-decoration: none; + background-color: #f5f5f5; } + +.list-group-item.disabled, .list-group-item.disabled:focus, .list-group-item.disabled:hover { + color: #777; + cursor: not-allowed; + background-color: #eee; } + +.list-group-item.disabled .list-group-item-heading, .list-group-item.disabled:focus .list-group-item-heading, .list-group-item.disabled:hover .list-group-item-heading { + color: inherit; } + +.list-group-item.disabled .list-group-item-text, .list-group-item.disabled:focus .list-group-item-text, .list-group-item.disabled:hover .list-group-item-text { + color: #777; } + +.list-group-item.active, .list-group-item.active:focus, .list-group-item.active:hover { + z-index: 2; + color: #fff; + background-color: #337ab7; + border-color: #337ab7; } + +.list-group-item.active .list-group-item-heading, .list-group-item.active .list-group-item-heading > .small, .list-group-item.active .list-group-item-heading > small, .list-group-item.active:focus .list-group-item-heading, .list-group-item.active:focus .list-group-item-heading > .small, .list-group-item.active:focus .list-group-item-heading > small, .list-group-item.active:hover .list-group-item-heading, .list-group-item.active:hover .list-group-item-heading > .small, .list-group-item.active:hover .list-group-item-heading > small { + color: inherit; } + +.list-group-item.active .list-group-item-text, .list-group-item.active:focus .list-group-item-text, .list-group-item.active:hover .list-group-item-text { + color: #c7ddef; } + +.list-group-item-success { + color: #3c763d; + background-color: #dff0d8; } + +a.list-group-item-success { + color: #3c763d; } + +a.list-group-item-success .list-group-item-heading { + color: inherit; } + +a.list-group-item-success:focus, a.list-group-item-success:hover { + color: #3c763d; + background-color: #d0e9c6; } + +a.list-group-item-success.active, a.list-group-item-success.active:focus, a.list-group-item-success.active:hover { + color: #fff; + background-color: #3c763d; + border-color: #3c763d; } + +.list-group-item-info { + color: #31708f; + background-color: #d9edf7; } + +a.list-group-item-info { + color: #31708f; } + +a.list-group-item-info .list-group-item-heading { + color: inherit; } + +a.list-group-item-info:focus, a.list-group-item-info:hover { + color: #31708f; + background-color: #c4e3f3; } + +a.list-group-item-info.active, a.list-group-item-info.active:focus, a.list-group-item-info.active:hover { + color: #fff; + background-color: #31708f; + border-color: #31708f; } + +.list-group-item-warning { + color: #8a6d3b; + background-color: #fcf8e3; } + +a.list-group-item-warning { + color: #8a6d3b; } + +a.list-group-item-warning .list-group-item-heading { + color: inherit; } + +a.list-group-item-warning:focus, a.list-group-item-warning:hover { + color: #8a6d3b; + background-color: #faf2cc; } + +a.list-group-item-warning.active, a.list-group-item-warning.active:focus, a.list-group-item-warning.active:hover { + color: #fff; + background-color: #8a6d3b; + border-color: #8a6d3b; } + +.list-group-item-danger { + color: #a94442; + background-color: #f2dede; } + +a.list-group-item-danger { + color: #a94442; } + +a.list-group-item-danger .list-group-item-heading { + color: inherit; } + +a.list-group-item-danger:focus, a.list-group-item-danger:hover { + color: #a94442; + background-color: #ebcccc; } + +a.list-group-item-danger.active, a.list-group-item-danger.active:focus, a.list-group-item-danger.active:hover { + color: #fff; + background-color: #a94442; + border-color: #a94442; } + +.list-group-item-heading { + margin-top: 0; + margin-bottom: 5px; } + +.list-group-item-text { + margin-bottom: 0; + line-height: 1.3; } + +.panel { + margin-bottom: 20px; + background-color: #fff; + border: 1px solid transparent; + border-radius: 4px; + -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: 0 1px 1px rgba(0, 0, 0, 0.05); } + +.panel-body { + padding: 15px; } + +.panel-heading { + padding: 10px 15px; + border-bottom: 1px solid transparent; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } + +.panel-heading > .dropdown .dropdown-toggle { + color: inherit; } + +.panel-title { + margin-top: 0; + margin-bottom: 0; + font-size: 16px; + color: inherit; } + +.panel-title > .small, .panel-title > .small > a, .panel-title > a, .panel-title > small, .panel-title > small > a { + color: inherit; } + +.panel-footer { + padding: 10px 15px; + background-color: #f5f5f5; + border-top: 1px solid #ddd; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } + +.panel > .list-group, .panel > .panel-collapse > .list-group { + margin-bottom: 0; } + +.panel > .list-group .list-group-item, .panel > .panel-collapse > .list-group .list-group-item { + border-width: 1px 0; + border-radius: 0; } + +.panel > .list-group:first-child .list-group-item:first-child, .panel > .panel-collapse > .list-group:first-child .list-group-item:first-child { + border-top: 0; + border-top-left-radius: 3px; + border-top-right-radius: 3px; } + +.panel > .list-group:last-child .list-group-item:last-child, .panel > .panel-collapse > .list-group:last-child .list-group-item:last-child { + border-bottom: 0; + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } + +.panel-heading + .list-group .list-group-item:first-child { + border-top-width: 0; } + +.list-group + .panel-footer { + border-top-width: 0; } + +.panel > .panel-collapse > .table, .panel > .table, .panel > .table-responsive > .table { + margin-bottom: 0; } + +.panel > .panel-collapse > .table caption, .panel > .table caption, .panel > .table-responsive > .table caption { + padding-right: 15px; + padding-left: 15px; } + +.panel > .table-responsive:first-child > .table:first-child, .panel > .table:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; } + +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child, .panel > .table:first-child > thead:first-child > tr:first-child { + border-top-left-radius: 3px; + border-top-right-radius: 3px; } + +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:first-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:first-child, .panel > .table:first-child > thead:first-child > tr:first-child td:first-child, .panel > .table:first-child > thead:first-child > tr:first-child th:first-child { + border-top-left-radius: 3px; } + +.panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table-responsive:first-child > .table:first-child > thead:first-child > tr:first-child th:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child td:last-child, .panel > .table:first-child > tbody:first-child > tr:first-child th:last-child, .panel > .table:first-child > thead:first-child > tr:first-child td:last-child, .panel > .table:first-child > thead:first-child > tr:first-child th:last-child { + border-top-right-radius: 3px; } + +.panel > .table-responsive:last-child > .table:last-child, .panel > .table:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } + +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child { + border-bottom-right-radius: 3px; + border-bottom-left-radius: 3px; } + +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child td:first-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:first-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:first-child { + border-bottom-left-radius: 3px; } + +.panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table-responsive:last-child > .table:last-child > tfoot:last-child > tr:last-child th:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child td:last-child, .panel > .table:last-child > tbody:last-child > tr:last-child th:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child td:last-child, .panel > .table:last-child > tfoot:last-child > tr:last-child th:last-child { + border-bottom-right-radius: 3px; } + +.panel > .panel-body + .table, .panel > .panel-body + .table-responsive, .panel > .table + .panel-body, .panel > .table-responsive + .panel-body { + border-top: 1px solid #ddd; } + +.panel > .table > tbody:first-child > tr:first-child td, .panel > .table > tbody:first-child > tr:first-child th { + border-top: 0; } + +.panel > .table-bordered, .panel > .table-responsive > .table-bordered { + border: 0; } + +.panel > .table-bordered > tbody > tr > td:first-child, .panel > .table-bordered > tbody > tr > th:first-child, .panel > .table-bordered > tfoot > tr > td:first-child, .panel > .table-bordered > tfoot > tr > th:first-child, .panel > .table-bordered > thead > tr > td:first-child, .panel > .table-bordered > thead > tr > th:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:first-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:first-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:first-child, .panel > .table-responsive > .table-bordered > thead > tr > td:first-child, .panel > .table-responsive > .table-bordered > thead > tr > th:first-child { + border-left: 0; } + +.panel > .table-bordered > tbody > tr > td:last-child, .panel > .table-bordered > tbody > tr > th:last-child, .panel > .table-bordered > tfoot > tr > td:last-child, .panel > .table-bordered > tfoot > tr > th:last-child, .panel > .table-bordered > thead > tr > td:last-child, .panel > .table-bordered > thead > tr > th:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > td:last-child, .panel > .table-responsive > .table-bordered > tbody > tr > th:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > td:last-child, .panel > .table-responsive > .table-bordered > tfoot > tr > th:last-child, .panel > .table-responsive > .table-bordered > thead > tr > td:last-child, .panel > .table-responsive > .table-bordered > thead > tr > th:last-child { + border-right: 0; } + +.panel > .table-bordered > tbody > tr:first-child > td, .panel > .table-bordered > tbody > tr:first-child > th, .panel > .table-bordered > thead > tr:first-child > td, .panel > .table-bordered > thead > tr:first-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:first-child > th, .panel > .table-responsive > .table-bordered > thead > tr:first-child > td, .panel > .table-responsive > .table-bordered > thead > tr:first-child > th { + border-bottom: 0; } + +.panel > .table-bordered > tbody > tr:last-child > td, .panel > .table-bordered > tbody > tr:last-child > th, .panel > .table-bordered > tfoot > tr:last-child > td, .panel > .table-bordered > tfoot > tr:last-child > th, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > td, .panel > .table-responsive > .table-bordered > tbody > tr:last-child > th, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > td, .panel > .table-responsive > .table-bordered > tfoot > tr:last-child > th { + border-bottom: 0; } + +.panel > .table-responsive { + margin-bottom: 0; + border: 0; } + +.panel-group { + margin-bottom: 20px; } + +.panel-group .panel { + margin-bottom: 0; + border-radius: 4px; } + +.panel-group .panel + .panel { + margin-top: 5px; } + +.panel-group .panel-heading { + border-bottom: 0; } + +.panel-group .panel-heading + .panel-collapse > .list-group, .panel-group .panel-heading + .panel-collapse > .panel-body { + border-top: 1px solid #ddd; } + +.panel-group .panel-footer { + border-top: 0; } + +.panel-group .panel-footer + .panel-collapse .panel-body { + border-bottom: 1px solid #ddd; } + +.panel-default { + border-color: #ddd; } + +.panel-default > .panel-heading { + color: #333; + background-color: #f5f5f5; + border-color: #ddd; } + +.panel-default > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ddd; } + +.panel-default > .panel-heading .badge { + color: #f5f5f5; + background-color: #333; } + +.panel-default > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ddd; } + +.panel-primary { + border-color: #337ab7; } + +.panel-primary > .panel-heading { + color: #fff; + background-color: #337ab7; + border-color: #337ab7; } + +.panel-primary > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #337ab7; } + +.panel-primary > .panel-heading .badge { + color: #337ab7; + background-color: #fff; } + +.panel-primary > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #337ab7; } + +.panel-success { + border-color: #d6e9c6; } + +.panel-success > .panel-heading { + color: #3c763d; + background-color: #dff0d8; + border-color: #d6e9c6; } + +.panel-success > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #d6e9c6; } + +.panel-success > .panel-heading .badge { + color: #dff0d8; + background-color: #3c763d; } + +.panel-success > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #d6e9c6; } + +.panel-info { + border-color: #bce8f1; } + +.panel-info > .panel-heading { + color: #31708f; + background-color: #d9edf7; + border-color: #bce8f1; } + +.panel-info > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #bce8f1; } + +.panel-info > .panel-heading .badge { + color: #d9edf7; + background-color: #31708f; } + +.panel-info > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #bce8f1; } + +.panel-warning { + border-color: #faebcc; } + +.panel-warning > .panel-heading { + color: #8a6d3b; + background-color: #fcf8e3; + border-color: #faebcc; } + +.panel-warning > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #faebcc; } + +.panel-warning > .panel-heading .badge { + color: #fcf8e3; + background-color: #8a6d3b; } + +.panel-warning > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #faebcc; } + +.panel-danger { + border-color: #ebccd1; } + +.panel-danger > .panel-heading { + color: #a94442; + background-color: #f2dede; + border-color: #ebccd1; } + +.panel-danger > .panel-heading + .panel-collapse > .panel-body { + border-top-color: #ebccd1; } + +.panel-danger > .panel-heading .badge { + color: #f2dede; + background-color: #a94442; } + +.panel-danger > .panel-footer + .panel-collapse > .panel-body { + border-bottom-color: #ebccd1; } + +.embed-responsive { + position: relative; + display: block; + height: 0; + padding: 0; + overflow: hidden; } + +.embed-responsive .embed-responsive-item, .embed-responsive embed, .embed-responsive iframe, .embed-responsive object, .embed-responsive video { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 100%; + height: 100%; + border: 0; } + +.embed-responsive.embed-responsive-16by9 { + padding-bottom: 56.25%; } + +.embed-responsive.embed-responsive-4by3 { + padding-bottom: 75%; } + +.well { + min-height: 20px; + padding: 19px; + margin-bottom: 20px; + background-color: #f5f5f5; + border: 1px solid #e3e3e3; + border-radius: 4px; + -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); + box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); } + +.well blockquote { + border-color: #ddd; + border-color: rgba(0, 0, 0, 0.15); } + +.well-lg { + padding: 24px; + border-radius: 6px; } + +.well-sm { + padding: 9px; + border-radius: 3px; } + +.close { + float: right; + font-size: 21px; + font-weight: 700; + line-height: 1; + color: #000; + text-shadow: 0 1px 0 #fff; + filter: alpha(opacity=20); + opacity: .2; } + +.close:focus, .close:hover { + color: #000; + text-decoration: none; + cursor: pointer; + filter: alpha(opacity=50); + opacity: .5; } + +button.close { + -webkit-appearance: none; + padding: 0; + cursor: pointer; + background: 0 0; + border: 0; } + +.modal-open { + overflow: hidden; } + +.modal { + position: fixed; + top: 0; + right: 0; + bottom: 0; + left: 0; + z-index: 1040; + display: none; + overflow: hidden; + -webkit-overflow-scrolling: touch; + outline: 0; } + +.modal.fade .modal-dialog { + -webkit-transition: -webkit-transform 0.3s ease-out; + -o-transition: -o-transform 0.3s ease-out; + transition: transform 0.3s ease-out; + -webkit-transform: translate(0, -25%); + -ms-transform: translate(0, -25%); + -o-transform: translate(0, -25%); + transform: translate(0, -25%); } + +.modal.in .modal-dialog { + -webkit-transform: translate(0, 0); + -ms-transform: translate(0, 0); + -o-transform: translate(0, 0); + transform: translate(0, 0); } + +.modal-open .modal { + overflow-x: hidden; + overflow-y: auto; } + +.modal-dialog { + position: relative; + width: auto; + margin: 10px; } + +.modal-content { + position: relative; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #999; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + outline: 0; + -webkit-box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); + box-shadow: 0 3px 9px rgba(0, 0, 0, 0.5); } + +.modal-backdrop { + position: absolute; + top: 0; + right: 0; + left: 0; + background-color: #000; } + +.modal-backdrop.fade { + filter: alpha(opacity=0); + opacity: 0; } + +.modal-backdrop.in { + filter: alpha(opacity=50); + opacity: .5; } + +.modal-header { + min-height: 16.43px; + padding: 15px; + border-bottom: 1px solid #e5e5e5; } + +.modal-header .close { + margin-top: -2px; } + +.modal-title { + margin: 0; + line-height: 1.42857143; } + +.modal-body { + position: relative; + padding: 15px; } + +.modal-footer { + padding: 15px; + text-align: right; + border-top: 1px solid #e5e5e5; } + +.modal-footer .btn + .btn { + margin-bottom: 0; + margin-left: 5px; } + +.modal-footer .btn-group .btn + .btn { + margin-left: -1px; } + +.modal-footer .btn-block + .btn-block { + margin-left: 0; } + +.modal-scrollbar-measure { + position: absolute; + top: -9999px; + width: 50px; + height: 50px; + overflow: scroll; } + +@media (min-width: 768px) { + .modal-dialog { + width: 600px; + margin: 30px auto; } + .modal-content { + -webkit-box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); + box-shadow: 0 5px 15px rgba(0, 0, 0, 0.5); } + .modal-sm { + width: 300px; } } + +@media (min-width: 992px) { + .modal-lg { + width: 900px; } } + +.tooltip { + position: absolute; + z-index: 1070; + display: block; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 12px; + font-weight: 400; + line-height: 1.4; + visibility: visible; + filter: alpha(opacity=0); + opacity: 0; } + +.tooltip.in { + filter: alpha(opacity=90); + opacity: .9; } + +.tooltip.top { + padding: 5px 0; + margin-top: -3px; } + +.tooltip.right { + padding: 0 5px; + margin-left: 3px; } + +.tooltip.bottom { + padding: 5px 0; + margin-top: 3px; } + +.tooltip.left { + padding: 0 5px; + margin-left: -3px; } + +.tooltip-inner { + max-width: 200px; + padding: 3px 8px; + color: #fff; + text-align: center; + text-decoration: none; + background-color: #000; + border-radius: 4px; } + +.tooltip-arrow { + position: absolute; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.tooltip.top .tooltip-arrow { + bottom: 0; + left: 50%; + margin-left: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } + +.tooltip.top-left .tooltip-arrow { + right: 5px; + bottom: 0; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } + +.tooltip.top-right .tooltip-arrow { + bottom: 0; + left: 5px; + margin-bottom: -5px; + border-width: 5px 5px 0; + border-top-color: #000; } + +.tooltip.right .tooltip-arrow { + top: 50%; + left: 0; + margin-top: -5px; + border-width: 5px 5px 5px 0; + border-right-color: #000; } + +.tooltip.left .tooltip-arrow { + top: 50%; + right: 0; + margin-top: -5px; + border-width: 5px 0 5px 5px; + border-left-color: #000; } + +.tooltip.bottom .tooltip-arrow { + top: 0; + left: 50%; + margin-left: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } + +.tooltip.bottom-left .tooltip-arrow { + top: 0; + right: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } + +.tooltip.bottom-right .tooltip-arrow { + top: 0; + left: 5px; + margin-top: -5px; + border-width: 0 5px 5px; + border-bottom-color: #000; } + +.popover { + position: absolute; + top: 0; + left: 0; + z-index: 1060; + display: none; + max-width: 276px; + padding: 1px; + font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: 400; + line-height: 1.42857143; + text-align: left; + white-space: normal; + background-color: #fff; + -webkit-background-clip: padding-box; + background-clip: padding-box; + border: 1px solid #ccc; + border: 1px solid rgba(0, 0, 0, 0.2); + border-radius: 6px; + -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); + box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); } + +.popover.top { + margin-top: -10px; } + +.popover.right { + margin-left: 10px; } + +.popover.bottom { + margin-top: 10px; } + +.popover.left { + margin-left: -10px; } + +.popover-title { + padding: 8px 14px; + margin: 0; + font-size: 14px; + background-color: #f7f7f7; + border-bottom: 1px solid #ebebeb; + border-radius: 5px 5px 0 0; } + +.popover-content { + padding: 9px 14px; } + +.popover > .arrow, .popover > .arrow:after { + position: absolute; + display: block; + width: 0; + height: 0; + border-color: transparent; + border-style: solid; } + +.popover > .arrow { + border-width: 11px; } + +.popover > .arrow:after { + content: ""; + border-width: 10px; } + +.popover.top > .arrow { + bottom: -11px; + left: 50%; + margin-left: -11px; + border-top-color: #999; + border-top-color: rgba(0, 0, 0, 0.25); + border-bottom-width: 0; } + +.popover.top > .arrow:after { + bottom: 1px; + margin-left: -10px; + content: " "; + border-top-color: #fff; + border-bottom-width: 0; } + +.popover.right > .arrow { + top: 50%; + left: -11px; + margin-top: -11px; + border-right-color: #999; + border-right-color: rgba(0, 0, 0, 0.25); + border-left-width: 0; } + +.popover.right > .arrow:after { + bottom: -10px; + left: 1px; + content: " "; + border-right-color: #fff; + border-left-width: 0; } + +.popover.bottom > .arrow { + top: -11px; + left: 50%; + margin-left: -11px; + border-top-width: 0; + border-bottom-color: #999; + border-bottom-color: rgba(0, 0, 0, 0.25); } + +.popover.bottom > .arrow:after { + top: 1px; + margin-left: -10px; + content: " "; + border-top-width: 0; + border-bottom-color: #fff; } + +.popover.left > .arrow { + top: 50%; + right: -11px; + margin-top: -11px; + border-right-width: 0; + border-left-color: #999; + border-left-color: rgba(0, 0, 0, 0.25); } + +.popover.left > .arrow:after { + right: 1px; + bottom: -10px; + content: " "; + border-right-width: 0; + border-left-color: #fff; } + +.carousel { + position: relative; } + +.carousel-inner { + position: relative; + width: 100%; + overflow: hidden; } + +.carousel-inner > .item { + position: relative; + display: none; + -webkit-transition: .6s ease-in-out left; + -o-transition: .6s ease-in-out left; + transition: .6s ease-in-out left; } + +.carousel-inner > .item > a > img, .carousel-inner > .item > img { + line-height: 1; } + +@media all and (transform-3d), (-webkit-transform-3d) { + .carousel-inner > .item { + -webkit-transition: -webkit-transform 0.6s ease-in-out; + -o-transition: -o-transform 0.6s ease-in-out; + transition: transform 0.6s ease-in-out; + -webkit-backface-visibility: hidden; + backface-visibility: hidden; + -webkit-perspective: 1000; + perspective: 1000; } + .carousel-inner > .item.active.right, .carousel-inner > .item.next { + left: 0; + -webkit-transform: translate3d(100%, 0, 0); + transform: translate3d(100%, 0, 0); } + .carousel-inner > .item.active.left, .carousel-inner > .item.prev { + left: 0; + -webkit-transform: translate3d(-100%, 0, 0); + transform: translate3d(-100%, 0, 0); } + .carousel-inner > .item.active, .carousel-inner > .item.next.left, .carousel-inner > .item.prev.right { + left: 0; + -webkit-transform: translate3d(0, 0, 0); + transform: translate3d(0, 0, 0); } } + +.carousel-inner > .active, .carousel-inner > .next, .carousel-inner > .prev { + display: block; } + +.carousel-inner > .active { + left: 0; } + +.carousel-inner > .next, .carousel-inner > .prev { + position: absolute; + top: 0; + width: 100%; } + +.carousel-inner > .next { + left: 100%; } + +.carousel-inner > .prev { + left: -100%; } + +.carousel-inner > .next.left, .carousel-inner > .prev.right { + left: 0; } + +.carousel-inner > .active.left { + left: -100%; } + +.carousel-inner > .active.right { + left: 100%; } + +.carousel-control { + position: absolute; + top: 0; + bottom: 0; + left: 0; + width: 15%; + font-size: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); + filter: alpha(opacity=50); + opacity: .5; } + +.carousel-control.left { + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.5)), to(rgba(0, 0, 0, 0.0001))); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.5) 0, rgba(0, 0, 0, 0.0001) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#80000000', endColorstr='#00000000', GradientType=1); + background-repeat: repeat-x; } + +.carousel-control.right { + right: 0; + left: auto; + background-image: -webkit-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: -o-linear-gradient(left, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + background-image: -webkit-gradient(linear, left top, right top, from(rgba(0, 0, 0, 0.0001)), to(rgba(0, 0, 0, 0.5))); + background-image: linear-gradient(to right, rgba(0, 0, 0, 0.0001) 0, rgba(0, 0, 0, 0.5) 100%); + filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#00000000', endColorstr='#80000000', GradientType=1); + background-repeat: repeat-x; } + +.carousel-control:focus, .carousel-control:hover { + color: #fff; + text-decoration: none; + filter: alpha(opacity=90); + outline: 0; + opacity: .9; } + +.carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next, .carousel-control .icon-prev { + position: absolute; + top: 50%; + z-index: 5; + display: inline-block; } + +.carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { + left: 50%; + margin-left: -10px; } + +.carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { + right: 50%; + margin-right: -10px; } + +.carousel-control .icon-next, .carousel-control .icon-prev { + width: 20px; + height: 20px; + margin-top: -10px; + font-family: serif; + line-height: 1; } + +.carousel-control .icon-prev:before { + content: '\2039'; } + +.carousel-control .icon-next:before { + content: '\203a'; } + +.carousel-indicators { + position: absolute; + bottom: 10px; + left: 50%; + z-index: 15; + width: 60%; + padding-left: 0; + margin-left: -30%; + text-align: center; + list-style: none; } + +.carousel-indicators li { + display: inline-block; + width: 10px; + height: 10px; + margin: 1px; + text-indent: -999px; + cursor: pointer; + background-color: #000 \9; + background-color: transparent; + border: 1px solid #fff; + border-radius: 10px; } + +.carousel-indicators .active { + width: 12px; + height: 12px; + margin: 0; + background-color: #fff; } + +.carousel-caption { + position: absolute; + right: 15%; + bottom: 20px; + left: 15%; + z-index: 10; + padding-top: 20px; + padding-bottom: 20px; + color: #fff; + text-align: center; + text-shadow: 0 1px 2px rgba(0, 0, 0, 0.6); } + +.carousel-caption .btn { + text-shadow: none; } + +@media screen and (min-width: 768px) { + .carousel-control .glyphicon-chevron-left, .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next, .carousel-control .icon-prev { + width: 30px; + height: 30px; + margin-top: -15px; + font-size: 30px; } + .carousel-control .glyphicon-chevron-left, .carousel-control .icon-prev { + margin-left: -15px; } + .carousel-control .glyphicon-chevron-right, .carousel-control .icon-next { + margin-right: -15px; } + .carousel-caption { + right: 20%; + left: 20%; + padding-bottom: 30px; } + .carousel-indicators { + bottom: 20px; } } + +.btn-group-vertical > .btn-group:after, .btn-group-vertical > .btn-group:before, .btn-toolbar:after, .btn-toolbar:before, .clearfix:after, .clearfix:before, .container-fluid:after, .container-fluid:before, .container:after, .container:before, .dl-horizontal dd:after, .dl-horizontal dd:before, .form-horizontal .form-group:after, .form-horizontal .form-group:before, .modal-footer:after, .modal-footer:before, .nav:after, .nav:before, .navbar-collapse:after, .navbar-collapse:before, .navbar-header:after, .navbar-header:before, .navbar:after, .navbar:before, .pager:after, .pager:before, .panel-body:after, .panel-body:before, .row:after, .row:before { + display: table; + content: " "; } + +.btn-group-vertical > .btn-group:after, .btn-toolbar:after, .clearfix:after, .container-fluid:after, .container:after, .dl-horizontal dd:after, .form-horizontal .form-group:after, .modal-footer:after, .nav:after, .navbar-collapse:after, .navbar-header:after, .navbar:after, .pager:after, .panel-body:after, .row:after { + clear: both; } + +.center-block { + display: block; + margin-right: auto; + margin-left: auto; } + +.pull-right { + float: right !important; } + +.pull-left { + float: left !important; } + +.invisible { + visibility: hidden; } + +.text-hide { + font: 0/0 a; + color: transparent; + text-shadow: none; + background-color: transparent; + border: 0; } + +.hidden { + display: none !important; + visibility: hidden !important; } + +.affix { + position: fixed; } + +@-ms-viewport { + width: device-width; } + +.visible-lg, .visible-md, .visible-sm, .visible-xs { + display: none !important; } + +.visible-lg-block, .visible-lg-inline, .visible-lg-inline-block, .visible-md-block, .visible-md-inline, .visible-md-inline-block, .visible-sm-block, .visible-sm-inline, .visible-sm-inline-block, .visible-xs-block, .visible-xs-inline, .visible-xs-inline-block { + display: none !important; } + +@media (max-width: 767px) { + .visible-xs { + display: block !important; } + table.visible-xs { + display: table; } + tr.visible-xs { + display: table-row !important; } + td.visible-xs, th.visible-xs { + display: table-cell !important; } } + +@media (max-width: 767px) { + .visible-xs-block { + display: block !important; } } + +@media (max-width: 767px) { + .visible-xs-inline { + display: inline !important; } } + +@media (max-width: 767px) { + .visible-xs-inline-block { + display: inline-block !important; } } + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm { + display: block !important; } + table.visible-sm { + display: table; } + tr.visible-sm { + display: table-row !important; } + td.visible-sm, th.visible-sm { + display: table-cell !important; } } + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-block { + display: block !important; } } + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline { + display: inline !important; } } + +@media (min-width: 768px) and (max-width: 991px) { + .visible-sm-inline-block { + display: inline-block !important; } } + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md { + display: block !important; } + table.visible-md { + display: table; } + tr.visible-md { + display: table-row !important; } + td.visible-md, th.visible-md { + display: table-cell !important; } } + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-block { + display: block !important; } } + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline { + display: inline !important; } } + +@media (min-width: 992px) and (max-width: 1199px) { + .visible-md-inline-block { + display: inline-block !important; } } + +@media (min-width: 1200px) { + .visible-lg { + display: block !important; } + table.visible-lg { + display: table; } + tr.visible-lg { + display: table-row !important; } + td.visible-lg, th.visible-lg { + display: table-cell !important; } } + +@media (min-width: 1200px) { + .visible-lg-block { + display: block !important; } } + +@media (min-width: 1200px) { + .visible-lg-inline { + display: inline !important; } } + +@media (min-width: 1200px) { + .visible-lg-inline-block { + display: inline-block !important; } } + +@media (max-width: 767px) { + .hidden-xs { + display: none !important; } } + +@media (min-width: 768px) and (max-width: 991px) { + .hidden-sm { + display: none !important; } } + +@media (min-width: 992px) and (max-width: 1199px) { + .hidden-md { + display: none !important; } } + +@media (min-width: 1200px) { + .hidden-lg { + display: none !important; } } + +.visible-print { + display: none !important; } + +@media print { + .visible-print { + display: block !important; } + table.visible-print { + display: table; } + tr.visible-print { + display: table-row !important; } + td.visible-print, th.visible-print { + display: table-cell !important; } } + +.visible-print-block { + display: none !important; } + +@media print { + .visible-print-block { + display: block !important; } } + +.visible-print-inline { + display: none !important; } + +@media print { + .visible-print-inline { + display: inline !important; } } + +.visible-print-inline-block { + display: none !important; } + +@media print { + .visible-print-inline-block { + display: inline-block !important; } } + +@media print { + .hidden-print { + display: none !important; } } + +/* Private */ +/* Variables */ +/* Precision rounding function */ +/* Scale */ +/* Prefix */ +/* Value Prefix*/ +/* Font size */ +/* Box sizing */ +/* Borders & Shadows */ +/* Opacity */ +/* Ellipsis */ +/* Vertical placement of multuple lines of text */ +/* transform-rotate */ +/* transform-scale */ +/**/ +/* Clearfix */ +/* Bottom positioning */ +/* Fonts */ +@font-face { + font-family: SourceSanPro-Light; + src: url("../fonts/SourceSansPro-Light.otf"); } + +@font-face { + font-family: SourceSanPro-Regular; + src: url("../fonts/SourceSansPro-Regular.otf"); } + +@font-face { + font-family: SourceSanPro-Semibold; + src: url("../fonts/SourceSansPro-Semibold.otf"); } + +.nfv-heading-1, .nfv-header .header-content-wrapper .header-title .main-title, .nfv-header .header-content-wrapper .header-title .version-select, .service-overview-tab .service-metrics .service-metric .metric-details .metric-value { + font-family: "SourceSanPro-Light"; + font-size: 32px; } + +.nfv-heading-2, .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step .step-item, .launch-service-wizard .nfv-wizard-content .select-service-title, .launch-service-wizard .nfv-wizard-content .launch-service-title, .launch-service-wizard .nfv-wizard-content .parameters-service-title, .service-overview-tab .service-detailed-info .service-tasks .list-header, .service-overview-tab .service-detailed-info .service-events .list-header, .service-overview-tab .service-detailed-info .service-performance .services-performance-header, .nfv-landing-page .landing-page-view h2 { + font-family: "SourceSanPro-Light"; + font-size: 27px; } + +.nfv-heading-3 { + font-family: "SourceSanPro-Light"; + font-size: 25px; } + +.nfv-heading-4, .service-attributes .form-container .form-element--label, .modify-service-wizard .impact-view .impact-view-title { + font-family: "SourceSanPro-Regular"; + font-size: 22px; } + +.nfv-body-1, .ui-dialog[role="dialog"] .ui-dialog-titlebar .ui-dialog-title, .nfv-header .header-content-wrapper .header-title .version-select select, .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step .step-title, .nfv-tabpanel .nfv-tabs-v1 .ui-state-default .ui-tabs-anchor, .nfv-tabpanel .nfv-tabs-v1 .ui-state-default.ui-state-active .ui-tabs-anchor, .nfv-tabpanel .nfv-tabs-v2 .ui-state-default .ui-tabs-anchor, .nfv-tabpanel .nfv-tabs-v2 .ui-state-default.ui-state-active .ui-tabs-anchor, .nfv-tabpanel .nfv-tabs-v3 .ui-state-default .ui-tabs-anchor, .nfv-tabpanel .nfv-tabs-v3 .ui-state-default.ui-state-active .ui-tabs-anchor, .nfv-tabpanel .nfv-tabs .ui-state-default .ui-tabs-anchor, .nfv-tabpanel .nfv-tabs .ui-state-default.ui-state-active .ui-tabs-anchor, body.theme2 .nfv-tabs-v3 .ui-state-default .ui-tabs-anchor, body.theme2 .nfv-tabs-v3 .ui-state-default.ui-state-active .ui-tabs-anchor, .notification .notification-header, .notification .notification-content .notification-main, .service-overview-tab .service-metrics .service-metric .metric-details .desc, .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-message, .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-content .event-message, .nfv-landing-page .landing-page-view .lists-box .events ul > li time, .nfv-landing-page .landing-page-view .lists-box .services ul > li > h3 { + font-family: "SourceSanPro-Regular"; + font-size: 15px; } + +.nfv-body-2, .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-header, .nfv-button-link .uxf-button .ui-button-text, .nfv-button-link.ui-button-text-only .ui-button-text, .LS-error, .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step.active .step-title, .nfv-balloon .balloon-header .balloon-title, .network-topology-view .right-pane-controller .header .node-attributes-title, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:first-child .node-attribute, .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-value, .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-name, body.theme2 .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-value, body.theme2 .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-name, .service-overview-tab .service-metrics .service-status .service-details .status, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .serviceName, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .serviceName, .system-tasks .task-details-container .task-details-header, .tasks-notifications-container .task-details-container .task-details-header, .system-tasks .task-details-container .task-details-header .serviceTitles .serviceName, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .serviceName { + font-family: "SourceSanPro-Semibold"; + font-size: 15px; } + +.nfv-body-3, input, .nfv-header .header-content-wrapper .header-title .sub-title, .ui-state-default.ui-button .ui-button-text, +.ui-widget-content .ui-state-default.ui-button .ui-button-text, +.ui-widget-header .ui-state-default.ui-button .ui-button-text, .nfv-link, .uxf-selectinput select, .form-element select, .nfv-balloon .balloon-content .node-attribute, .network-graph .element.nfvo .label, .tree-graph .node text, .nfv-pagination a, .uxf-pagination a, .notification .notification-content .notification-secondary, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item .node-attribute, .service-attributes .form-element .form-element--label, .service-attributes .form-element .form-element--error-message, .launch-service-wizard .nfv-wizard-content .service-list-item .service-name .service-version, .service-overview-tab .service-metrics .service-status .service-details .service-times, .service-overview-tab .service-detailed-info .service-tasks .list-header .recent-notice, .service-overview-tab .service-detailed-info .service-events .list-header .recent-notice, .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-time .due, body.theme2 .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-time .due, .system-tasks .tasks-list-container .filters, .tasks-notifications-container .tasks-list-container .filters, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview, .system-tasks .task-details-container .task-details-header .serviceTitles .customer, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .customer, .system-tasks .task-details-container .task-details-header .dueDateGroup, .tasks-notifications-container .task-details-container .task-details-header .dueDateGroup, .system-tasks .task-details-container .task-details-header .description, .tasks-notifications-container .task-details-container .task-details-header .description, .nfv-landing-page .landing-page-view h2 .see-all-link span, .nfv-landing-page .landing-page-view .lists-box .events ul > li .event-message p, .nfv-landing-page .landing-page-view .lists-box .events ul > li .machine-id, .nfv-landing-page .landing-page-view .lists-box .services ul > li > label, .nfv-landing-page .landing-page-view .lists-box .services ul > li > time { + font-family: "SourceSanPro-Regular"; + font-size: 13px; } + +.nfv-body-4, .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .version-and-build, .service-attributes .form-element input, .service-attributes .form-element select, .service-overview-tab .service-detailed-info .service-tasks .see-all-link, .service-overview-tab .service-detailed-info .service-events .see-all-link, .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-time .time, .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-content .event-item-data .event-time { + font-family: "SourceSanPro-Semibold"; + font-size: 13px; } + +.nfv-body-5, .tree-graph .node text.sub-title, .color-legend .statuses .legend, .color-legend .states .legend, .color-legend .statuses .new, .color-legend .states .new, .network-topology-view .right-pane-controller .kpi-graph .header .node-attributes-title, .network-topology-view .right-pane-controller .kpi-graph .header .toggle, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken .label, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken .label, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams .label, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams .label { + font-family: "SourceSanPro-Regular"; + font-size: 11px; } + +.nfv-body-6, .network-graph .element.nfvo .port > .port-label, .color-legend .statuses .title, .color-legend .states .title, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken .value, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken .value, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams .value, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams .value { + font-family: "SourceSanPro-Semibold"; + font-size: 11px; } + +/* light theme */ +/* Textures */ +/* Dimensions */ +/* Dimensions */ +.ui-state-disabled { + pointer-events: none; } + +.ui-icon { + display: inline-block; } + +.ui-widget-content { + background: #ffffff; + color: #1a2531; + border: none; } + .ui-widget-content a { + color: #419ef1; } + +.uxf-progressbar { + color: #ffffff; + height: 20px; + margin: 5px 0; } + .uxf-progressbar > div[data-uxf-point="remaining"] { + background: #ffffff; + border: none; + -webkit-box-shadow: inset 0 1px 2px 1px #ffffff; + -moz-box-shadow: inset 0 1px 2px 1px #ffffff; + box-shadow: inset 0 1px 2px 1px #ffffff; } + .uxf-progressbar > div[data-uxf-point="progress"] { + border: none; } + .uxf-progressbar .nfv-normal { + background: #1a2531; } + .uxf-progressbar .nfv-critical { + background: #e65353; } + .uxf-progressbar .progress-text { + line-height: 30px; + text-align: center; + color: #ffffff; } + +.nfv-white-bg.uxf-progressbar > div[data-uxf-point="remaining"] { + background: #ffffff; + border: none; } + +.ui-tabs { + margin: 0; + padding: 0; } + .ui-tabs .ui-tabs-nav { + padding: 0; + margin: 0; } + .ui-tabs .ui-tabs-panel { + padding: 0; + margin: 0; } + +.ui-accordion .ui-accordion-content { + padding: 0; + margin: 0; } + +.ui-helper-reset { + line-height: 1.25; } + +.ui-widget { + font-size: 100%; + font-family: "SourceSanPro-Regular"; } + .ui-widget input { + font-family: "SourceSanPro-Regular"; } + .ui-widget select { + font-family: "SourceSanPro-Regular"; } + +.ui-dialog[role="dialog"] { + left: 50%; + min-width: 400px; + top: 50%; + transform: translate(-50%, -50%); + z-index: 1002; + -webkit-box-shadow: none; + -moz-box-shadow: none; + box-shadow: none; } + @media only screen and (min-width: 1224px) { + .ui-dialog[role="dialog"] { + min-width: 500px; } } + .ui-dialog[role="dialog"] .ui-dialog-titlebar { + background: #ecf1f5; + color: #253244; + padding: 0.5em 1em; } + .ui-dialog[role="dialog"] .ui-dialog-titlebar .ui-dialog-title { + text-align: left; + font-weight: normal; } + .ui-dialog[role="dialog"] .ui-dialog-titlebar .ui-button { + display: none; } + .ui-dialog[role="dialog"] .ui-dialog-content { + padding: 20px 30px; + background: #ffffff; } + .ui-dialog[role="dialog"] .ui-dialog-buttonpane { + padding: 0; + margin: 0; } + .ui-dialog[role="dialog"] .ui-dialog-buttonpane button.ui-button { + min-width: 75px; + padding: 0; } + .ui-dialog[role="dialog"] .ui-dialog-buttonpane button.ui-button .ui-button-text { + padding: 3px 0; } + +.ui-widget-overlay { + background: rgba(26, 37, 49, 0.5); + opacity: 1; + filter: alpha(opacity = 100); + z-index: 1001; + position: fixed; } + +.ui-datepicker { + border: 1px solid #ffffff; } + .ui-datepicker .ui-state-default, .ui-datepicker .ui-widget-header { + color: #b9bab5; + background: #232323; } + .ui-datepicker .ui-state-highlight { + border: none; + background: #ffffff; + color: #e65353; } + +.ui-dialog-titlebar .ui-state-default.ui-button { + box-shadow: none; + background: transparent; + border: 0px; + border-radius: 0px; } + +.ui-dialog-titlebar .ui-state-default.ui-state-hover { + border: none; + background: #413a35 url(images/ui-bg_glass_0_413a35_1x400.png) 50% 50% repeat-x; + border-radius: 4px; } + +.ui-tooltip { + max-width: 350px; } + +body.theme2 .ui-widget-content { + background: #232323; + color: #b9bab5; + border: none; } + body.theme2 .ui-widget-content a { + color: #f4f6f1; } + +body.theme2 .uxf-progressbar { + color: #f4f6f1; } + body.theme2 .uxf-progressbar > div[data-uxf-point="remaining"] { + background: #333; } + body.theme2 .uxf-progressbar .nfv-normal { + background: #1a2531; } + body.theme2 .uxf-progressbar .nfv-critical { + background: #ff7c54; } + body.theme2 .uxf-progressbar .progress-text { + color: #f4f6f1; } + +body.theme2 .nfv-white-bg.uxf-progressbar > div[data-uxf-point="remaining"] { + background: #232323; } + +body.theme2 .ui-dialog .ui-widget-content { + background: #333; } + +body.theme2 .ui-dialog .ui-dialog-titlebar { + color: #8ccdf5; + background: #232323; } + +body.theme2 .ui-dialog .ui-dialog-content { + background: #333; } + +body.theme2 .ui-widget-overlay { + background: rgba(185, 186, 181, 0.3); } + +body.theme2 .ui-datepicker { + border: 1px solid #333; } + body.theme2 .ui-datepicker .ui-state-default, body.theme2 .ui-datepicker .ui-widget-header { + color: #b9bab5; + background: #232323; } + body.theme2 .ui-datepicker .ui-state-highlight { + border: none; + background: #232323; + color: #ff7c54; } + +body.theme2 .ui-dialog-titlebar .ui-state-default.ui-state-hover { + border: none; + background: #413a35 url(images/ui-bg_glass_0_413a35_1x400.png) 50% 50% repeat-x; + border-radius: 4px; } + +/* PX fallback for browsers that do not support REM units. */ +html { + font-size: 100%; } + +body { + font-weight: normal; + line-height: 1.25; + font-family: "SourceSanPro-Regular"; + background-color: #ffffff; + color: #1a2531; + /* scrollbar styling for Internet Explorer */ + scrollbar-face-color: #ff8a00; + scrollbar-track-color: #ecf1f5; + /* scrollbar styling for Google Chrome | Safari | Opera */ + /* Mozilla Firefox currently doesn't support scrollbar styling */ } + body ::-webkit-scrollbar { + width: 8px; + height: 8px; } + body ::-webkit-scrollbar-track { + background-color: transparent; + border-radius: 10px; } + body ::-webkit-scrollbar-thumb { + border-radius: 10px; + border: 1px solid #ecf1f5; + background-color: #253244; } + body.theme2 { + background-color: #232323; + color: #b9bab5; + scrollbar-face-color: #ff8a00; + scrollbar-track-color: #333; } + body.theme2 ::-webkit-scrollbar-thumb { + border: 1px solid #333; + background-color: #232323; } + +ul { + list-style: none; } + +h1, h2, h3, h4, h5, h6, ul { + margin: 0; + padding: 0; } + +input { + background: #ffffff; + border: 1px solid #445a75; + padding: 7px 10px; } + +fieldset { + border: none; } + +fieldset label { + display: inline-block; } + +.nfv-header { + background-color: #419ef1; + display: table; + height: 70px; + transition: background-color 0.4s; + width: 100%; } + .nfv-header .nfv-logo { + height: 70px; + padding: 0px 20px; + vertical-align: middle; + display: table-cell; + font-size: 20px; + white-space: nowrap; + background-color: #253244; } + .nfv-header .nfv-logo a { + color: #ffffff; } + .nfv-header .nfv-logo a:hover { + text-decoration: none; } + .nfv-header .header-content-wrapper { + display: table-cell; + vertical-align: middle; } + .nfv-header .header-content-wrapper .header-title { + display: table-cell; + vertical-align: middle; + padding-left: 30px; + color: #ffffff; + transition: color 0.4s; } + .nfv-header .header-content-wrapper .header-title .main-title { + display: inline-block; } + .nfv-header .header-content-wrapper .header-title .version-select { + display: inline-block; + margin-left: 8px; } + .nfv-header .header-content-wrapper .header-title .version-select select { + max-height: 35px; + background: transparent url("../images/images_theme_1/drop_down_down_arrow_white.png") no-repeat 100% 50%; + border: none; + min-width: initial; + padding-right: 15px; + color: inherit; + padding-left: 8px; } + .nfv-header .header-content-wrapper .header-title .version-select select option { + background-color: #419ef1; } + .nfv-header .user-details { + position: absolute; + right: 10px; + top: 25px; + width: 200px; } + .nfv-header .user-details .nfv-header-logged-user { + background-size: 30px 30px; + background-repeat: no-repeat; + color: #ffffff; + position: relative; } + .nfv-header .tasks-notifications-container { + position: absolute; + right: 220px; + top: 22px; } + .nfv-header .tasks-notifications-container .tasks-notification-icon { + color: #ffffff; + font-size: 20px; + position: absolute; + width: 25px; + height: 25px; + right: 0px; + top: 1px; + text-align: center; + cursor: pointer; } + .nfv-header .tasks-notifications-container .notification-counter { + display: table-cell; + position: relative; + float: right; + background-color: #e65353; + color: #ffffff; + border-radius: 5px; + width: 21px; + right: -11px; + top: -8px; + vertical-align: middle; + text-align: center; + font-size: 70%; } + .nfv-header .tasks-notifications-container .notifications-popup { + cursor: default; + position: absolute; + top: 43px; + right: -26px; + z-index: 102; + width: 350px; + min-height: 100px; + background-color: #ffffff; + border: 1px solid #a8bbdc; } + .nfv-header .tasks-notifications-container .notifications-popup:after, .nfv-header .tasks-notifications-container .notifications-popup:before { + bottom: 100%; + left: 93%; + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; + pointer-events: none; } + .nfv-header .tasks-notifications-container .notifications-popup:after { + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #ffffff; + border-width: 11px; + margin-left: -25px; } + .nfv-header .tasks-notifications-container .notifications-popup:before { + border-color: rgba(167, 179, 178, 0); + border-bottom-color: #a8bbdc; + border-width: 13px; + margin-left: -27px; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-header { + height: 46px; + line-height: 46px; + padding-left: 48px; + padding-right: 20px; + border-bottom: 1px solid #a8bbdc; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-header .nfv-link { + float: right; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-content { + position: relative; + min-height: 400px; + max-height: 414px; + left: 21px; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu { + position: absolute; + top: 0px; + border-right: 1px solid #a8bbdc; + background: #e1e8f1; + width: 35px; + min-height: 446px; + font-size: 25px; + text-align: center; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .settings, .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .logout, .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .theme-select { + cursor: pointer; + margin-top: 10px; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .settings { + color: #ff8a00; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .theme-select { + color: #445a75; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .version-and-build { + transform: rotate(270deg); + /* IE10 and Mozilla */ + -ms-transform: rotate(270deg); + /* IE 9 */ + -webkit-transform: rotate(270deg); + /* Safari and Chrome */ + top: 290px; + position: relative; + left: 0; + letter-spacing: 2px; } + .nfv-header .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .logout { + color: #419ef1; + bottom: 0; + position: absolute; + left: 6px; } + +/* Themes */ +body.theme2 .nfv-header { + background-color: #333; } + body.theme2 .nfv-header .search-filter-input input[type="search"] { + background: #232323; + color: #f4f6f1; } + body.theme2 .nfv-header .nfv-logo { + background-color: #232323; } + body.theme2 .nfv-header .header-content-wrapper .header-title { + color: #9bdb69; } + body.theme2 .nfv-header .header-content-wrapper .version-select select { + color: #8ccdf5; } + body.theme2 .nfv-header .header-content-wrapper .version-select select option { + background-color: #333; } + body.theme2 .nfv-header .header-content-wrapper .sub-title { + color: #aaa6d9; } + body.theme2 .nfv-header .user-details .nfv-header-logged-user { + color: #f4f6f1; } + +body.theme2 .tasks-notifications-container .tasks-notification-icon { + color: #9bdb69; } + +body.theme2 .tasks-notifications-container .notification-counter { + background-color: #333; + color: #b9bab5; } + +body.theme2 .tasks-notifications-container .notifications-popup { + background-color: #333; + border: 1px solid #454544; + box-shadow: 0px 0px 5px 2px #b9bab5; } + body.theme2 .tasks-notifications-container .notifications-popup:after { + border-color: rgba(255, 255, 255, 0); + border-bottom-color: #232323; } + body.theme2 .tasks-notifications-container .notifications-popup:before { + border-color: rgba(167, 179, 178, 0); + border-bottom-color: #454544; } + body.theme2 .tasks-notifications-container .notifications-popup .notifications-popup-header { + border-bottom: 1px solid #454544; + background: #232323; } + body.theme2 .tasks-notifications-container .notifications-popup .notifications-popup-user-menu { + border-right: 1px solid #454544; + background: #232323; } + body.theme2 .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .settings { + color: #aaa6d9; } + body.theme2 .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .logout { + color: #ff7c54; } + body.theme2 .tasks-notifications-container .notifications-popup .notifications-popup-user-menu .theme-select { + color: #9bdb69; } + +.nfv-page { + overflow: hidden; + height: 100vh; + position: relative; } + .nfv-page .nfv-content { + background-color: #ffffff; + overflow: auto; + position: absolute; + top: 70px; + bottom: 0; + transition: background-color 0.2s; + width: 100%; } + +body.theme2 .nfv-page .nfv-content { + background-color: #232323; } + +.ui-dialog { + -webkit-box-shadow: 3px 5px 8px rgba(0, 0, 0, 0.6); + -moz-box-shadow: 3px 5px 8px rgba(0, 0, 0, 0.6); + box-shadow: 3px 5px 8px rgba(0, 0, 0, 0.6); } + .ui-dialog .nfv-content { + background: #ffffff; + color: #1a2531; + min-height: 0px; + width: auto; + margin: 0; + padding: 20px 35px 20px; + overflow-x: hidden; } + .ui-dialog .nfv-content p { + line-height: 1.6; } + +.ui-state-default.ui-button, +.ui-widget-content .ui-state-default.ui-button, +.ui-widget-header .ui-state-default.ui-button { + -webkit-border-radius: 2px; + border-radius: 2px; + color: #253244; + background: transparent; + min-width: 90px; + outline: none; } + .ui-state-default.ui-button .ui-button-text, + .ui-widget-content .ui-state-default.ui-button .ui-button-text, + .ui-widget-header .ui-state-default.ui-button .ui-button-text { + padding: 6px 10px; } + +.nfv-primary-button .ui-button.ui-widget, .nfv-secondary-button .ui-button.ui-widget, .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button.ui-widget { + transition: background 0.4s, color 0.4s, border 0.4s; } + .nfv-primary-button .ui-button.ui-widget.ui-state-disabled, .nfv-secondary-button .ui-button.ui-widget.ui-state-disabled, .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button.ui-widget.ui-state-disabled { + opacity: 0.5; + filter: alpha(opacity = 50); + background: transparent !important; + border: 1px solid #445a75; } + .nfv-primary-button .ui-button.ui-widget.ui-state-disabled .ui-button-text, .nfv-secondary-button .ui-button.ui-widget.ui-state-disabled .ui-button-text, .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button.ui-widget.ui-state-disabled .ui-button-text { + color: #445a75 !important; } + +.nfv-primary-button .ui-button.ui-widget { + color: #253244; + background: #ff8a00; + border: none; } + .nfv-primary-button .ui-button.ui-widget:hover { + background: #a8bbdc; } + +.nfv-secondary-button .ui-button, .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button { + color: #253244; + background: transparent; + border: 1px solid #253244; + min-width: 80px; } + .nfv-secondary-button .ui-button:hover, .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button:hover { + color: #419ef1; + border: 1px solid #419ef1; } + +.nfv-button-link .uxf-button, .nfv-button-link.ui-button-text-only { + background: none; + border: none; + color: #253244; + box-shadow: none; } + .nfv-button-link .uxf-button.ui-button:hover, .nfv-button-link.ui-button-text-only.ui-button:hover { + background: none; } + .nfv-button-link .uxf-button .ui-button-text, .nfv-button-link.ui-button-text-only .ui-button-text { + padding: 0; + text-decoration: underline; } + +.nfv-button-link .ui-state-default.ui-button, +.nfv-button-link .ui-widget-content .ui-state-default.ui-button, +.nfv-button-link .ui-widget-header .ui-state-default.ui-button { + color: #253244; + background: none; } + +.nfv-button-link .ui-state-default.ui-state-hover, +.nfv-button-link .ui-widget-content .ui-state-default.ui-state-hover, +.nfv-button-link .ui-widget-header .ui-state-default.ui-state-hover { + box-shadow: none; } + +.nfv-button-link a { + background: none; } + +body.theme2 .ui-state-default.ui-button, +body.theme2 .ui-widget-content .ui-state-default.ui-button, +body.theme2 .ui-widget-header .ui-state-default.ui-button { + color: rgba(185, 186, 181, 0.5); } + +body.theme2 .nfv-primary-button .ui-button.ui-widget.ui-state-disabled, body.theme2 .nfv-secondary-button .ui-button.ui-widget.ui-state-disabled, body.theme2 .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button.ui-widget.ui-state-disabled, .ui-dialog[role="dialog"] body.theme2 .ui-dialog-buttonset .ui-button.ui-widget.ui-state-disabled { + background: transparent !important; + border: 1px solid #2f2f2f; } + body.theme2 .nfv-primary-button .ui-button.ui-widget.ui-state-disabled .ui-button-text, body.theme2 .nfv-secondary-button .ui-button.ui-widget.ui-state-disabled .ui-button-text, body.theme2 .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button.ui-widget.ui-state-disabled .ui-button-text, .ui-dialog[role="dialog"] body.theme2 .ui-dialog-buttonset .ui-button.ui-widget.ui-state-disabled .ui-button-text { + color: #b9bab5 !important; } + +body.theme2 .nfv-primary-button .ui-button.ui-widget { + color: #232323; + background: rgba(155, 219, 105, 0.8); } + body.theme2 .nfv-primary-button .ui-button.ui-widget:hover { + background: #9bdb69; + color: #232323; } + +body.theme2 .nfv-secondary-button .ui-button, body.theme2 .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button, .ui-dialog[role="dialog"] body.theme2 .ui-dialog-buttonset .ui-button { + color: rgba(185, 186, 181, 0.7); + background: transparent; + border: 1px solid rgba(185, 186, 181, 0.7); } + body.theme2 .nfv-secondary-button .ui-button:hover, body.theme2 .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button:hover, .ui-dialog[role="dialog"] body.theme2 .ui-dialog-buttonset .ui-button:hover { + color: #b9bab5; + border: 1px solid #b9bab5; + background: transparent; } + +body.theme2 .nfv-button-link .uxf-button, body.theme2 .nfv-button-link.ui-button-text-only { + color: #b9bab5; } + +body.theme2 .nfv-button-link .ui-state-default.ui-button, +body.theme2 .nfv-button-link .ui-widget-content .ui-state-default.ui-button, +body.theme2 .nfv-button-link .ui-widget-header .ui-state-default.ui-button { + color: #b9bab5; } + +a.nfv-button-link { + cursor: pointer; + padding: 0; + font-size: inherit; + text-decoration: underline; } + a.nfv-button-link:hover { + text-decoration: none; } + a.nfv-button-link.nfv-active { + text-decoration: none; + font-weight: bold; } + +.nfv-link { + color: #419ef1; + text-decoration: none; + cursor: pointer; } + .nfv-link:hover { + text-decoration: underline; } + .nfv-link.nfv-active { + text-decoration: none; + font-weight: bold; } + .nfv-link .uxf-button { + background: none; + border: none; + color: #419ef1; } + .nfv-link .uxf-button .ui-button-text { + padding: 0; + font-size: inherit; + text-decoration: none; } + .nfv-link .uxf-button .ui-button-text:hover { + text-decoration: none; } + +.nfv-checkbox-button input[type="checkbox"] { + display: none; } + .nfv-checkbox-button input[type="checkbox"]:checked + label:before { + font-family: FontAwesome; + content: "\f00c"; + text-shadow: 1px 1px 1px rgba(0, 0, 0, 0.2); + font-size: 15px; + color: #419ef1; + text-align: center; + line-height: 15px; + font-weight: bold; } + +.nfv-checkbox-button label { + display: inline-block; + cursor: pointer; + position: relative; + padding-left: 25px; } + .nfv-checkbox-button label:before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 10px; + position: absolute; + left: 0; + bottom: 3px; + background-color: #ffffff; + border: 1px solid #445a75; } + +.nfv-radio-button input[type="radio"] { + display: none; } + .nfv-radio-button input[type="radio"]:checked + label:after { + opacity: 1; } + +.nfv-radio-button label { + display: inline-block; + cursor: pointer; + position: relative; + padding-left: 25px; } + .nfv-radio-button label:before { + content: ""; + display: inline-block; + width: 16px; + height: 16px; + margin-right: 10px; + position: absolute; + left: 0; + bottom: 3px; + background-color: #ffffff; + border: 1px solid #445a75; + -webkit-border-radius: 10px; + border-radius: 10px; } + .nfv-radio-button label:after { + opacity: 0; + content: ""; + background-color: #419ef1; + width: 10px; + height: 10PX; + border-radius: 10px; + position: absolute; + left: 3px; + top: 8px; + transition: opacity 0.2s; } + +.uxf-textinput input, .uxf-searchinput input { + border: none; + border-bottom: 1px solid #a8bbdc; + background: transparent; + outline: 0; } + .uxf-textinput input::-webkit-input-placeholder, .uxf-searchinput input::-webkit-input-placeholder { + color: #a8bbdc; } + .uxf-textinput input::-moz-placeholder, .uxf-searchinput input::-moz-placeholder { + color: #a8bbdc; } + +.form-element .form-element--error-message { + color: #e65353; + margin-left: 20px; } + +.form-element input.form-element--control { + height: 19px; + border-radius: 2px; + border: none; + border-bottom: 1px solid #a8bbdc; + outline: 0; } + .form-element input.form-element--control[disabled] { + opacity: 0.35; } + +.form-element select.form-element--control { + height: 35px; + border-radius: 2px; + border-color: #a8bbdc; } + +.nfv-mandatory label:after, .is-mandatory label:after { + content: '*'; + display: inline-block; + color: #e65353; } + +.nfv-mandatory-asterisk { + color: #e65353 !important; } + +.uxf-selectinput select, .form-element select { + color: #1a2531; + text-align: left; + min-width: 150px; + height: 35px !important; + padding-left: 10px; + padding-right: 17px; + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + background: url("../images/images_theme_1/drop_down_down_arrow.png") no-repeat 102% #ffffff; + border-radius: 3px; + border: 1px solid #a8bbdc; + outline: 0; } + +.uxf-selectinput .mlabel, .form-element .mlabel { + display: inline; + margin-right: 18px !important; } + +.LS-error { + display: none; + color: #e65353; + background-position: 0; + padding: 5px 0 5px 25px; } + +body.theme2 .nfv-link { + color: #f4f6f1; } + body.theme2 .nfv-link .uxf-button { + color: #f4f6f1; } + +body.theme2 .nfv-checkbox-button input[type=checkbox]:checked + label:before { + color: #9bdb69; } + +body.theme2 .nfv-checkbox-button label:before { + background-color: #333; + border: 1px solid #b9bab5; } + +body.theme2 .nfv-radio-button input[type="radio"]:checked + label:before { + color: #9bdb69; } + +body.theme2 .nfv-radio-button label:before { + background-color: #333; + border: 1px solid #b9bab5; } + +body.theme2 .nfv-radio-button label:after { + background-color: #9bdb69; } + +body.theme2 .uxf-textinput input, body.theme2 .uxf-searchinput input { + border-bottom: 1px solid #333; } + +body.theme2 .form-element .form-element--error-message { + color: #ff7c54; } + +body.theme2 .form-element input.form-element--control { + border-bottom: 1px solid #333; + background: #232323; } + +body.theme2 .form-element select.form-element--control { + border-color: #333; } + +body.theme2 .nfv-mandatory label:after, body.theme2 .is-mandatory label:after { + color: #ff7c54; } + +body.theme2 .nfv-mandatory-asterisk { + color: #ff7c54 !important; } + +body.theme2 .uxf-selectinput select, body.theme2 .form-element select { + color: #b9bab5; + background: url("../images/images_theme_1/drop_down_down_arrow.png") no-repeat 102% #232323; + border: 1px solid #333; } + +body.theme2 .LS-error { + color: #ff7c54; } + +body.theme2 .form-element-container > .form-element--label:first-child { + color: #9bdb69; } + +.nfv-wizard-header { + position: relative; + border-bottom: 1px solid rgba(168, 187, 220, 0.3); + padding: 0; + background: #ecf1f5; } + .nfv-wizard-header .wizard .nfv-wizard-steps { + padding: 10px 0; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step { + display: inline-block; + text-align: center; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step .step-item { + margin-left: 15px; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step .step-title { + margin: 0 15px; + text-align: center; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step .step-arrow { + font-size: 30px; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step:first-child { + margin-left: 37px; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step:first-child .step-item { + margin-left: 0; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step:last-child .step-arrow { + display: none; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step.active .step-item { + color: #419ef1; } + .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step.active .step-title { + color: #419ef1; } + +.wizard-nav-controls { + background: #ecf1f5; + padding: 12px 0; + border-top: 1px solid #445a75; + height: 38px; + position: fixed; + bottom: 0; + width: 100%; + z-index: 2; } + .wizard-nav-controls .nfv-button-link, .wizard-nav-controls .nfv-secondary-button, .wizard-nav-controls .ui-dialog[role="dialog"] .ui-dialog-buttonset, .ui-dialog[role="dialog"] .wizard-nav-controls .ui-dialog-buttonset, .wizard-nav-controls .nfv-primary-button { + display: inline-block; } + .wizard-nav-controls .nfv-secondary-button, .wizard-nav-controls .ui-dialog[role="dialog"] .ui-dialog-buttonset, .ui-dialog[role="dialog"] .wizard-nav-controls .ui-dialog-buttonset { + margin-left: 30px; } + .wizard-nav-controls .nfv-primary-button { + position: absolute; + top: 12px; + right: 2%; } + +body.theme2 .nfv-wizard-header { + border-bottom: 1px solid #454544; + background: #232323; } + body.theme2 .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step .step-arrow { + color: #9bdb69; } + body.theme2 .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step.active .step-item { + color: #8ccdf5; } + body.theme2 .nfv-wizard-header .wizard .nfv-wizard-steps .wizard-step.active .step-title { + color: #8ccdf5; } + +body.theme2 .wizard-nav-controls { + background: #333; + border-top: 1px solid #333; } + +.nfv-accordion .nfv-collapsible-item .nfv-collapsible-title { + background: #ecf1f5; + padding: 0px 10px; + height: 34px; + border: none; + border-bottom: 1px solid #a8bbdc; + margin-bottom: 10px; + display: table; + width: 99%; } + .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title .nfv-collapsible-title-icon { + display: table-cell; + vertical-align: middle; + width: 14px; } + .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title .nfv-collapsible-title-icon:before { + font-family: FontAwesome; + font-size: 15px; + content: "\f067"; + color: #1a2531; } + .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title .nfv-collapsible-title-text { + display: table-cell; + vertical-align: middle; + padding-left: 15px; + font-size: 25px; + color: #1a2531; } + .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title .nfv-collapsible-subtitle-text { + display: table-cell; + vertical-align: middle; + font-size: 22px; + color: #1a2531; + margin-left: 0.5em; } + .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title.ui-state-active { + background: #ecf1f5; } + .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title.ui-state-active .nfv-collapsible-title-icon:before { + content: "\f068"; } + +.nfv-accordion .nfv-collapsible-item .nfv-collapsible-content { + padding: 10px; } + +body.theme2 .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title { + background: #333; + border-bottom: 1px solid #2f2f2f; } + body.theme2 .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title .nfv-collapsible-title-icon:before { + color: #b9bab5; } + body.theme2 .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title .nfv-collapsible-title-text { + color: #b9bab5; } + body.theme2 .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title .nfv-collapsible-subtitle-text { + color: #b9bab5; } + body.theme2 .nfv-accordion .nfv-collapsible-item .nfv-collapsible-title.ui-state-active { + background: #333; } + +.nfv-tabpanel { + background: transparent; + border: none; } + .nfv-tabpanel .nfv-tabs-v1 { + border: none; + background: #e1e8f1; + border-radius: 0; + padding: 3px 0; } + .nfv-tabpanel .nfv-tabs-v1 .ui-state-default { + margin: 0 35px; + border: none; + background: transparent; } + .nfv-tabpanel .nfv-tabs-v1 .ui-state-default .ui-tabs-anchor { + color: #253244; + padding: .5em 0; + width: 100%; + text-align: center; } + .nfv-tabpanel .nfv-tabs-v1 .ui-state-default.ui-state-active .ui-tabs-anchor { + color: #ff8a00; + outline: 0; } + .nfv-tabpanel .nfv-tabs-v2 { + border: none; + background: #ffffff; + border-radius: 0; } + .nfv-tabpanel .nfv-tabs-v2 .ui-state-default { + margin: 0; + border: 1px solid #a8bbdc; + background: transparent; + width: 140px; } + .nfv-tabpanel .nfv-tabs-v2 .ui-state-default .ui-tabs-anchor { + color: #253244; + padding: .5em 0; + width: 100%; + text-align: center; } + .nfv-tabpanel .nfv-tabs-v2 .ui-state-default.ui-state-active { + border-bottom: none; } + .nfv-tabpanel .nfv-tabs-v2 .ui-state-default.ui-state-active .ui-tabs-anchor { + color: #ff8a00; + outline: 0; } + .nfv-tabpanel .nfv-tabs-v3 { + border: none; + background: #ffffff; + border-radius: 0; + padding: 16px 0; } + .nfv-tabpanel .nfv-tabs-v3 .ui-state-default { + margin: 0; + border: 1px solid #a8bbdc !important; + border-left: none !important; + background: transparent; + border-radius: 0; } + .nfv-tabpanel .nfv-tabs-v3 .ui-state-default:first-child { + border-bottom-left-radius: 2px; + border-top-left-radius: 2px; + border-left: 1px solid #a8bbdc !important; } + .nfv-tabpanel .nfv-tabs-v3 .ui-state-default:last-child { + border-bottom-right-radius: 2px; + border-top-right-radius: 2px; } + .nfv-tabpanel .nfv-tabs-v3 .ui-state-default .ui-tabs-anchor { + color: #253244; + padding: 6px 18px; + text-align: center; } + .nfv-tabpanel .nfv-tabs-v3 .ui-state-default.ui-state-active .ui-tabs-anchor { + background: #ecf1f5; + outline: 0; } + .nfv-tabpanel .nfv-tabs { + border: none; + background: transparent; } + .nfv-tabpanel .nfv-tabs .ui-state-default { + height: 40px; + background: #445a75; + border: 1px solid #a8bbdc; } + .nfv-tabpanel .nfv-tabs .ui-state-default .ui-tabs-anchor { + color: #253244; + padding: .5em 0; + width: 100%; + text-align: center; } + .nfv-tabpanel .nfv-tabs .ui-state-default.ui-state-active { + background: #ffffff; + border: 1px solid #ffffff; } + .nfv-tabpanel .nfv-tabs .ui-state-default.ui-state-active .ui-tabs-anchor { + color: #ff8a00; + outline: 0; } + .nfv-tabpanel .ui-tabs-panel { + border-top: 1px solid #a8bbdc; + padding: 20 55px; + background: #ffffff; } + .nfv-tabpanel.ui-tabs-vertical { + width: 100%; + height: 385; + border-top: 1px solid #a8bbdc; + border-bottom: 1px solid #a8bbdc; + overflow: hidden; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; } + .nfv-tabpanel.ui-tabs-vertical .nfv-tabs { + float: left; + width: 26%; + height: inherit; + overflow-y: auto; + overflow-x: hidden; } + .nfv-tabpanel.ui-tabs-vertical .nfv-tabs .ui-state-default { + clear: left; + width: 100%; + top: 0; + -webkit-border-top-left-radius: 0; + border-top-left-radius: 0; + -webkit-border-top-right-radius: 0; + border-top-right-radius: 0; + border-right: none; + border-left: none; + margin: 0 0 5px 0; } + .nfv-tabpanel.ui-tabs-vertical .nfv-tabs .ui-state-default .ui-tabs-anchor { + display: block; } + .nfv-tabpanel.ui-tabs-vertical .nfv-tabs .ui-state-default.ui-tabs-active { + padding-bottom: 0; + border-bottom: #a8bbdc 2px solid !important; + border-top: #a8bbdc 2px solid !important; + height: 36px; } + .nfv-tabpanel.ui-tabs-vertical .ui-tabs-panel { + float: right; + width: 65.1%; + border: none; + height: 345; + overflow-y: auto; } + +body.theme2 .nfv-tabpanel .nfv-tabs-v1 { + background-color: #232323; } + body.theme2 .nfv-tabpanel .nfv-tabs-v1 .ui-state-default .ui-tabs-anchor { + color: #b9bab5; } + body.theme2 .nfv-tabpanel .nfv-tabs-v1 .ui-state-default.ui-state-active .ui-tabs-anchor { + color: #9bdb69; } + +body.theme2 .nfv-tabs-v2 { + background: #232323; + border-bottom: 1px solid #2f2f2f; } + body.theme2 .nfv-tabs-v2 .ui-state-default { + border: 1px solid #2f2f2f; } + body.theme2 .nfv-tabs-v2 .ui-state-default .ui-tabs-anchor { + color: #b9bab5; } + body.theme2 .nfv-tabs-v2 .ui-state-default.ui-state-active .ui-tabs-anchor { + color: #9bdb69; } + +body.theme2 .nfv-tabs-v3 { + background: #232323; } + body.theme2 .nfv-tabs-v3 .ui-state-default { + border: 1px solid #2f2f2f !important; } + body.theme2 .nfv-tabs-v3 .ui-state-default:first-child { + border-bottom-left-radius: 2px; + border-top-left-radius: 2px; + border-left: 1px solid #2f2f2f !important; } + body.theme2 .nfv-tabs-v3 .ui-state-default:last-child { + border-bottom-right-radius: 2px; + border-top-right-radius: 2px; } + body.theme2 .nfv-tabs-v3 .ui-state-default .ui-tabs-anchor { + color: #b9bab5; } + body.theme2 .nfv-tabs-v3 .ui-state-default.ui-state-active .ui-tabs-anchor { + color: #9bdb69; + background: #232323; + outline: 0; } + +body.theme2 .nfv-tabs .ui-state-default { + height: 40px; + background: #232323; + border: 1px solid #2f2f2f; } + body.theme2 .nfv-tabs .ui-state-default .ui-tabs-anchor { + color: #b9bab5; } + body.theme2 .nfv-tabs .ui-state-default.ui-state-active { + background: #333; + border: 1px solid #2f2f2f; } + body.theme2 .nfv-tabs .ui-state-default.ui-state-active .ui-tabs-anchor { + color: #9bdb69; } + +body.theme2 .ui-tabs-panel { + border-top: 1px solid #2f2f2f; + background: #232323; } + +body.theme2.ui-tabs-vertical { + border-top: 1px solid #2f2f2f; + border-bottom: 1px solid #2f2f2f; } + body.theme2.ui-tabs-vertical .nfv-tabs .ui-state-default.ui-tabs-active { + border-bottom-color: #2f2f2f !important; + border-top-color: #2f2f2f !important; } + +.nfv-balloon { + min-width: 60px; + border: 1px solid #445a75; + box-shadow: 1px 2px 3px rgba(0, 0, 0, 0.35); + color: #1a2531; + background-color: #ffffff; + opacity: 1; + max-width: 350px; + z-index: 1; } + .nfv-balloon.ui-draggable-dragging { + z-index: 10; } + .nfv-balloon .balloon-header { + padding: 10px 22px 5px; + background-color: #a8bbdc; } + .nfv-balloon .balloon-header .balloon-title { + color: #253244; + margin-bottom: 10px; + margin-right: 23px; } + .nfv-balloon .balloon-header .ui-button { + position: absolute; + top: 10px; + right: 10px; + min-width: 20px; + margin-left: 20px; } + .nfv-balloon .balloon-content { + padding: 5px 22px 10px; + overflow: auto; + max-height: 250px; } + .nfv-balloon .balloon-content .node-attribute { + word-wrap: break-word; + padding: 10px 0; + border-bottom: 1px solid #445a75; } + +body.theme2 .nfv-balloon { + border: 1px solid #2f2f2f; + color: #b9bab5; + background-color: #333; + box-shadow: 0px 0px 6px 2px rgba(244, 246, 241, 0.8); } + body.theme2 .nfv-balloon .balloon-header { + background-color: #232323; } + body.theme2 .nfv-balloon .balloon-header .balloon-title { + color: #9bdb69; } + body.theme2 .nfv-balloon .balloon-content .node-attribute { + border-bottom: 1px solid #454544; } + +.network-graph .element.nfvo rect { + stroke-width: 2px; + stroke: #445a75; + fill: #ecf1f5; } + .network-graph .element.nfvo rect.rect-fadeout { + -webkit-animation: fadeout 0.25s; + -moz-animation: fadeout 0.25s; + -ms-animation: fadeout 0.25s; + -o-animation: fadeout 0.25s; + animation: fadeout 0.25s; } + +@keyframes fadeout { + from { + opacity: 1; } + to { + opacity: 0.2; } } + +@-moz-keyframes fadeout { + /* Firefox */ + from { + opacity: 1; } + to { + opacity: 0.2; } } + +@-webkit-keyframes fadeout { + /* Safari and Chrome */ + from { + opacity: 1; } + to { + opacity: 0.2; } } + +@-o-keyframes fadeout { + /* Opera */ + from { + opacity: 1; } + to { + opacity: 0.2; } } + .network-graph .element.nfvo rect.twins-container, .network-graph .element.nfvo rect.parent-container { + opacity: 0.5; + stroke-width: 1px; + fill: transparent; } + .network-graph .element.nfvo rect.node-title-frame { + fill: #a8bbdc; + stroke: #a8bbdc; } + .network-graph .element.nfvo rect.node-title-frame[status="removed"] { + fill: #a8bbdc; + stroke: #a8bbdc; } + .network-graph .element.nfvo rect.node-title-frame[status="completed"] { + fill: #1a2531; + stroke: #1a2531; } + .network-graph .element.nfvo rect.node-title-frame[status="in progress"] { + fill: #419ef1; + stroke: #419ef1; } + .network-graph .element.nfvo rect.node-title-frame[status="warning"] { + fill: #ff8a00; + stroke: #ff8a00; } + .network-graph .element.nfvo rect.node-title-frame[status="error"] { + fill: #e65353; + stroke: #e65353; } + .network-graph .element.nfvo rect.node-title-frame[status="down"] { + fill: #445a75; + stroke: #445a75; } + .network-graph .element.nfvo rect.main-rect[status="removed"] { + stroke: #a8bbdc; } + .network-graph .element.nfvo rect.main-rect[status="completed"] { + stroke: #1a2531; } + .network-graph .element.nfvo rect.main-rect[status="in progress"] { + stroke: #419ef1; } + .network-graph .element.nfvo rect.main-rect[status="warning"] { + stroke: #ff8a00; } + .network-graph .element.nfvo rect.main-rect[status="error"] { + stroke: #e65353; } + .network-graph .element.nfvo rect.main-rect[status="down"] { + stroke: #445a75; } + +.network-graph .element.nfvo path.right-arrow, .network-graph .element.nfvo path.left-arrow { + fill: transparent; + stroke: #ffffff; + stroke-width: 1.5px; + cursor: pointer; } + +.network-graph .element.nfvo .label { + fill: #ffffff; } + .network-graph .element.nfvo .label.twins-container-title { + fill: #344358; } + .network-graph .element.nfvo .label.sub-title { + font-size: 12px; } + +.network-graph .element.nfvo .port > .port-label { + opacity: 0; + z-index: 9999999; + fill: #1a2531; } + +.network-graph .element.nfvo .port > circle { + fill: #1a2531; + stroke: #ffffff; } + +.network-graph .element.nfvo .port:hover .port-label { + opacity: 1 !important; } + +.network-graph .link .connection { + stroke: #a8bbdc; + stroke-width: 2px; } + +.network-graph .link .marker-target { + stroke: #a8bbdc; + fill: #b9bab5; + stroke-width: 2px; } + +.network-graph .link .marker-source { + stroke: #b9bab5; + fill: #b9bab5; } + +.network-graph { + height: 690px; } + +.tree-graph .node { + cursor: pointer; } + .tree-graph .node circle { + stroke-width: 2px; + stroke: #445a75; + fill: #ecf1f5; } + .tree-graph .node text { + fill: #253244; + transform: rotate(-25deg); } + .tree-graph .node text.removed-node { + fill: rgba(37, 50, 68, 0.5); } + .tree-graph .node .nodeCircle.new-node { + stroke: #ff8a00; + stroke-dasharray: 4px; } + .tree-graph .node .nodeCircle.removed-node { + stroke: rgba(168, 187, 220, 0.5); } + .tree-graph .node .nodeCircle.has-children { + fill: #a8bbdc; } + +.tree-graph .link { + fill: none; + stroke: #a8bbdc; + stroke-width: 1.5px; } + +.link-tools .tool-remove { + display: none; } + +.marker-arrowheads .marker-arrowhead { + display: none; } + +.marker-vertex-group { + display: none; } + +.color-legend .statuses .legend, .color-legend .states .legend, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .status { + position: relative; + margin: 0px 0px 12px 30px; } + .color-legend .statuses .legend::before, .color-legend .states .legend::before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .status::before { + width: 20px; + height: 20px; + position: absolute; + content: ""; + left: -30px; } + .color-legend .statuses .up.legend:before, .color-legend .states .up.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .up.status:before, .color-legend .statuses .completed.legend:before, .color-legend .states .completed.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .completed.status:before { + background: #1a2531; } + .color-legend .statuses .error.legend:before, .color-legend .states .error.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .error.status:before { + background: #e65353; } + .color-legend .statuses .warning.legend:before, .color-legend .states .warning.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .warning.status:before { + background: #ff8a00; } + .color-legend .statuses .down.legend:before, .color-legend .states .down.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .down.status:before { + background: #445a75; } + .color-legend .statuses .in-progress.legend:before, .color-legend .states .in-progress.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .in-progress.status:before { + background: #419ef1; } + .color-legend .statuses .deleted.legend:before, .color-legend .states .deleted.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .deleted.status:before { + background: #a8bbdc; } + .color-legend .statuses .modified.legend:before, .color-legend .states .modified.legend:before, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .modified.status:before { + border: 2px solid #445a75; + box-shadow: 0px 0px 5px 2px #3ebd6b; } + +.color-legend { + padding: 10px; } + .color-legend .statuses .title, .color-legend .states .title { + text-decoration: underline; + margin: 10px 0; } + .color-legend .statuses .new .legend, .color-legend .states .new .legend { + margin-left: 17px; } + .color-legend .statuses .new .legend::before, .color-legend .states .new .legend::before { + width: 15px; + border: 2px solid #445a75; + opacity: 0.5; + left: -17px; } + +body.theme2 .tree-graph .node circle { + stroke: #b9bab5; + fill: #2f2f2f; } + +body.theme2 .tree-graph .node text { + fill: #8ccdf5; } + body.theme2 .tree-graph .node text.removed-node { + fill: rgba(140, 205, 245, 0.5); } + +body.theme2 .tree-graph .node .nodeCircle.new-node { + stroke: #f4f6f1; } + +body.theme2 .tree-graph .node .nodeCircle.removed-node { + stroke: rgba(170, 166, 217, 0.5); } + +body.theme2 .tree-graph .node .nodeCircle.has-children { + fill: #454544; } + +body.theme2 .tree-graph .link { + stroke: #b9bab5; } + +body.theme2 .network-graph .element.nfvo rect { + stroke: #b9bab5; + fill: #454544; } + body.theme2 .network-graph .element.nfvo rect.twins-container, body.theme2 .network-graph .element.nfvo rect.parent-container { + fill: transparent; } + body.theme2 .network-graph .element.nfvo rect.node-title-frame { + fill: #a8bbdc; } + body.theme2 .network-graph .element.nfvo rect.node-title-frame[status="removed"] { + fill: rgba(69, 69, 68, 0.7); + stroke: rgba(69, 69, 68, 0.7); } + body.theme2 .network-graph .element.nfvo rect.node-title-frame[status="completed"] { + fill: #b9bab5; + stroke: #b9bab5; } + body.theme2 .network-graph .element.nfvo rect.node-title-frame[status="in progress"] { + fill: #8ccdf5; + stroke: #8ccdf5; } + body.theme2 .network-graph .element.nfvo rect.node-title-frame[status="warning"] { + fill: #f7e385; + stroke: #f7e385; } + body.theme2 .network-graph .element.nfvo rect.node-title-frame[status="error"] { + fill: #ff7c54; + stroke: #ff7c54; } + body.theme2 .network-graph .element.nfvo rect.node-title-frame[status="down"] { + fill: #f4f6f1; + stroke: #f4f6f1; } + body.theme2 .network-graph .element.nfvo rect.main-rect[status="removed"] { + stroke: rgba(69, 69, 68, 0.7); } + body.theme2 .network-graph .element.nfvo rect.main-rect[status="completed"] { + stroke: #b9bab5; } + body.theme2 .network-graph .element.nfvo rect.main-rect[status="in progress"] { + stroke: #8ccdf5; } + body.theme2 .network-graph .element.nfvo rect.main-rect[status="warning"] { + stroke: #f7e385; } + body.theme2 .network-graph .element.nfvo rect.main-rect[status="error"] { + stroke: #ff7c54; } + body.theme2 .network-graph .element.nfvo rect.main-rect[status="down"] { + stroke: #f4f6f1; } + +body.theme2 .network-graph .element.nfvo path.right-arrow, body.theme2 .network-graph .element.nfvo path.left-arrow { + stroke: #232323; } + +body.theme2 .network-graph .element.nfvo .label { + fill: #232323; } + body.theme2 .network-graph .element.nfvo .label.twins-container-title { + fill: #f4f6f1; } + +body.theme2 .network-graph .element.nfvo .port > .port-label { + fill: #b9bab5; } + +body.theme2 .network-graph .element.nfvo .port > circle { + fill: #292929; + stroke: #f4f6f1; } + +body.theme2 .network-graph .link .connection { + stroke: #b9bab5; } + +body.theme2 .network-graph .link .marker-target { + stroke: #b9bab5; + fill: #b9bab5; } + +body.theme2 .network-graph .link .marker-source { + stroke: #b9bab5; + fill: #b9bab5; } + +body.theme2 .color-legend .statuses .up.legend:before, body.theme2 .color-legend .states .up.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .up.status:before, body.theme2 .color-legend .statuses .completed.legend:before, body.theme2 .color-legend .states .completed.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .completed.status:before { + background: #b9bab5; } + +body.theme2 .color-legend .statuses .error.legend:before, body.theme2 .color-legend .states .error.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .error.status:before { + background: #ff7c54; } + +body.theme2 .color-legend .statuses .warning.legend:before, body.theme2 .color-legend .states .warning.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .warning.status:before { + background: #f7e385; } + +body.theme2 .color-legend .statuses .down.legend:before, body.theme2 .color-legend .states .down.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .down.status:before { + background: #f4f6f1; } + +body.theme2 .color-legend .statuses .in-progress.legend:before, body.theme2 .color-legend .states .in-progress.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .in-progress.status:before { + background: #8ccdf5; } + +body.theme2 .color-legend .statuses .deleted.legend:before, body.theme2 .color-legend .states .deleted.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .deleted.status:before { + background: rgba(69, 69, 68, 0.7); } + +body.theme2 .color-legend .statuses .modified.legend:before, body.theme2 .color-legend .states .modified.legend:before, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .modified.status:before { + border-color: #b9bab5; + box-shadow: 0px 0px 5px 2px #9bdb69; } + +body.theme2 .color-legend .statuses .new .legend::before, body.theme2 .color-legend .states .new .legend::before { + border-color: #b9bab5; } + +.nfv-pagination, .uxf-pagination { + text-align: right; } + .nfv-pagination .nfv-pagination-info, .uxf-pagination .nfv-pagination-info { + display: inline-block; + margin: 0 16px; } + .nfv-pagination .uxf-pagination-goto, .uxf-pagination .uxf-pagination-goto { + display: inline; } + .nfv-pagination a, .uxf-pagination a { + color: #1a2531; + cursor: pointer; + width: 33px; + height: 33px; + display: inline-block; + text-align: center; + border: 1px solid #a8bbdc; + line-height: 30px; } + .nfv-pagination a.uxf-pagination-page.active, .uxf-pagination a.uxf-pagination-page.active { + background-color: #a8bbdc; + border: 1px solid #a8bbdc; + font-weight: bold; + text-decoration: underline; } + .nfv-pagination .uxf-pagination-prev, .nfv-pagination .uxf-pagination-prev, .uxf-pagination .uxf-pagination-prev, .uxf-pagination .uxf-pagination-prev { + font-weight: bold; + color: #419ef1; + margin-right: -3px; } + .nfv-pagination .uxf-pagination-prev.disable, .nfv-pagination .uxf-pagination-prev.disable, .uxf-pagination .uxf-pagination-prev.disable, .uxf-pagination .uxf-pagination-prev.disable { + color: #445a75; } + .nfv-pagination .uxf-pagination-next, .nfv-pagination .uxf-pagination-next, .uxf-pagination .uxf-pagination-next, .uxf-pagination .uxf-pagination-next { + font-weight: bold; + color: #419ef1; + margin-left: -2px; } + .nfv-pagination .uxf-pagination-next.disable, .nfv-pagination .uxf-pagination-next.disable, .uxf-pagination .uxf-pagination-next.disable, .uxf-pagination .uxf-pagination-next.disable { + color: #445a75; } + +/* dataTable overrides */ +div.dataTables_paginate > ul.pagination > li > a { + border-radius: initial; + color: #1a2531; } + +div.dataTables_paginate > ul.pagination > li.active > a { + background-color: #a8bbdc; + border-color: #a8bbdc; } + +div.dataTables_paginate > ul.pagination > li.previous > a, +div.dataTables_paginate > ul.pagination > li.next > a { + color: #419ef1; } + +div.dataTables_paginate > ul.pagination > li.disabled > a { + background-color: transparent; + color: #445a75; } + div.dataTables_paginate > ul.pagination > li.disabled > a:hover { + color: initial; } + +body.theme2 { + /* dataTable overrides */ } + body.theme2 .nfv-pagination a, body.theme2 .uxf-pagination a { + color: #b9bab5; + border: 1px solid #2f2f2f; } + body.theme2 .nfv-pagination a.uxf-pagination-page.active, body.theme2 .uxf-pagination a.uxf-pagination-page.active { + background-color: #2f2f2f; + border: 1px solid #2f2f2f; } + body.theme2 .nfv-pagination .uxf-pagination-prev, body.theme2 .nfv-pagination .uxf-pagination-prev, body.theme2 .uxf-pagination .uxf-pagination-prev, body.theme2 .uxf-pagination .uxf-pagination-prev { + font-weight: bold; + color: #b9bab5; } + body.theme2 .nfv-pagination .uxf-pagination-prev.disable, body.theme2 .nfv-pagination .uxf-pagination-prev.disable, body.theme2 .uxf-pagination .uxf-pagination-prev.disable, body.theme2 .uxf-pagination .uxf-pagination-prev.disable { + color: #454544; } + body.theme2 .nfv-pagination .uxf-pagination-next, body.theme2 .nfv-pagination .uxf-pagination-next, body.theme2 .uxf-pagination .uxf-pagination-next, body.theme2 .uxf-pagination .uxf-pagination-next { + font-weight: bold; + color: #b9bab5; } + body.theme2 .nfv-pagination .uxf-pagination-next.disable, body.theme2 .nfv-pagination .uxf-pagination-next.disable, body.theme2 .uxf-pagination .uxf-pagination-next.disable, body.theme2 .uxf-pagination .uxf-pagination-next.disable { + color: #454544; } + body.theme2 div.dataTables_paginate > ul.pagination > li > a { + color: #b9bab5; } + body.theme2 div.dataTables_paginate > ul.pagination > li.active > a { + color: #9bdb69; + background-color: #333; + border-color: #333; } + body.theme2 div.dataTables_paginate > ul.pagination > li.previous > a, + body.theme2 div.dataTables_paginate > ul.pagination > li.next > a { + color: #b9bab5; } + body.theme2 div.dataTables_paginate > ul.pagination > li.disabled > a { + background-color: transparent; + color: #454544; } + +.nfv-notifications-manager { + position: fixed; + top: 40px; + width: 50%; + left: 25%; + z-index: 99999; } + +.notification { + position: relative; + padding-left: 5px; + padding-right: 5px; + height: 0px; + background: #ffffff; + border: 1px solid #419ef1; + border-top: 0; + line-height: 40px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + color: #253244; } + .notification .notification-icon { + padding: 5px; + margin-right: 5px; + margin-left: 30px; + vertical-align: middle; + font-family: FontAwesome; } + .notification .notification-icon.error-icon:before { + content: "\f057"; + color: #e65353; } + .notification .notification-icon.success-icon:before { + content: "\f058"; + color: #3ebd6b; } + .notification .notification-icon.warning-icon:before { + content: "\f071"; + color: #ff8a00; } + .notification .notification-header { + display: inline; + margin-right: 5px; } + .notification .notification-header.error { + color: #e65353; } + .notification .notification-header::after { + content: "!"; } + .notification .notification-content.error { + color: #e65353; } + .notification .notification-content .notification-secondary { + display: block; + margin-left: 64px; + margin-right: 49px; + position: relative; + top: -13px; + color: #445a75; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + line-height: 19px; } + .notification .close-button { + position: absolute; + top: 0px; + right: 0px; + font-size: 36px; + color: #253244; + text-shadow: 0 1px 0 #ffffff; + opacity: 0.2; + filter: alpha(opacity=20); + vertical-align: middle; + height: 100%; + cursor: pointer !important; + margin-right: 30px; + margin-left: 17px; } + .notification .close-button:hover { + text-decoration: none; } + +body.theme2 .notification { + background: #454544; + border-color: #2f2f2f; + color: #b9bab5; } + body.theme2 .notification .notification-icon.error-icon:before { + color: #ff7c54; } + body.theme2 .notification .notification-icon.success-icon:before { + color: #9bdb69; } + body.theme2 .notification .notification-icon.warning-icon:before { + color: #f7e385; } + body.theme2 .notification .notification-content .notification-secondary { + color: #b9bab5; } + +body.theme2 .close-button { + color: #b9bab5; + text-shadow: 0 1px 0 #f4f6f1; } + +/* dataTable overrides */ +.data-table-wrapper { + position: relative; + transition: background-color 0.2s, color 0.2s, border 0.2s; } + .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(even) { + background-color: #ecf1f5; } + .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #e1e8f1; } + .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(even):hover, + .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(odd):hover { + background-color: #f6e6cd; } + .data-table-wrapper table.dataTable > thead > tr, + .data-table-wrapper table.dataTable > tbody > tr { + transition: background-color 0.2s; } + .data-table-wrapper table.dataTable > thead > tr > th, + .data-table-wrapper table.dataTable .dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid #a8bbdc; } + .data-table-wrapper table.dataTable > tbody > tr > td, + .data-table-wrapper table.dataTable > thead > tr > th { + border-left: 1px solid #a8bbdc; + border-top: 1px solid #a8bbdc; } + .data-table-wrapper table.dataTable > tbody > tr:first-child > td { + border-top: none; } + .data-table-wrapper table.dataTable > tbody > tr > td:last-child, + .data-table-wrapper table.dataTable > thead > tr > th:last-child { + border-right: 1px solid #a8bbdc; } + .data-table-wrapper table.dataTable > tbody > tr:hover { + background-color: #f6e6cd; + cursor: pointer; } + .data-table-wrapper table.dataTable > tbody > tr > td.dataTables_empty { + pointer-events: none; } + .data-table-wrapper table.dataTable > thead > tr > th:hover { + background-color: #f6e6cd; } + .data-table-wrapper div.dataTables_wrapper { + bottom: 30px; + left: 30px; + position: absolute; + right: 30px; + top: 30px; + width: auto; } + .data-table-wrapper div.dataTables_wrapper label select, + .data-table-wrapper div.dataTables_wrapper label input { + outline: 0; + height: 30px; } + .data-table-wrapper div.dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid rgba(168, 187, 220, 0.3); } + .data-table-wrapper div.dataTables_wrapper .ColVis_Button.ColVis_MasterButton { + background: none; + border: none; + box-shadow: none; + color: #ff8a00 !important; + font-family: FontAwesome; + font-size: 21px; + margin-left: 15px; + outline: 0px; } + .data-table-wrapper div.dataTables_wrapper .ColVis_Button.ColVis_MasterButton:before { + content: '\f013'; } + .data-table-wrapper div.dataTables_wrapper .ColVis_Button.ColVis_MasterButton span { + display: none; } + .data-table-wrapper .dataTables_wrapper .dataTables_length, + .data-table-wrapper .dataTables_wrapper .dataTables_filter, + .data-table-wrapper .dataTables_wrapper .dataTables_info, + .data-table-wrapper .dataTables_wrapper .dataTables_processing, + .data-table-wrapper .dataTables_wrapper .dataTables_paginate { + color: #1a2531; } + .data-table-wrapper .dataTables_wrapper .dataTables_length .form-control.input-sm { + appearance: none; + -moz-appearance: none; + -webkit-appearance: none; + background: url("../images/images_theme_1/drop_down_down_arrow.png") no-repeat 102% #ffffff; + padding: 0 17px 0 10px; + text-align: left; + border: 1px solid #a8bbdc; } + .data-table-wrapper .dataTables_wrapper .dataTables_filter .form-control.input-sm { + border-radius: 2px; + border: none; + border-bottom: 1px solid #a8bbdc; } + +body.theme2 .data-table-wrapper table.dataTable thead tr th { + color: #aaa6d9; } + +body.theme2 .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(even) { + background-color: #333; } + +body.theme2 .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(odd) { + background-color: #292929; } + +body.theme2 .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(even):hover, +body.theme2 .data-table-wrapper table.dataTable.table-striped > tbody > tr:nth-of-type(odd):hover { + background-color: #454544; } + +body.theme2 .data-table-wrapper table.dataTable > thead > tr, +body.theme2 .data-table-wrapper table.dataTable > tbody > tr { + transition: background-color 0.2s; } + +body.theme2 .data-table-wrapper table.dataTable > thead > tr > th, +body.theme2 .data-table-wrapper table.dataTable .dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid #2f2f2f; } + +body.theme2 .data-table-wrapper table.dataTable > tbody > tr > td, +body.theme2 .data-table-wrapper table.dataTable > thead > tr > th { + border-left: 1px solid #2f2f2f; + border-top: 1px solid #2f2f2f; } + +body.theme2 .data-table-wrapper table.dataTable > tbody > tr:first-child > td { + border-top: none; } + +body.theme2 .data-table-wrapper table.dataTable > tbody > tr > td:last-child, +body.theme2 .data-table-wrapper table.dataTable > thead > tr > th:last-child { + border-right: 1px solid #2f2f2f; } + +body.theme2 .data-table-wrapper table.dataTable > tbody > tr:hover { + background-color: #454544; + cursor: pointer; } + +body.theme2 .data-table-wrapper table.dataTable > tbody > tr > td.dataTables_empty { + pointer-events: none; } + +body.theme2 .data-table-wrapper table.dataTable > thead > tr > th:hover { + background-color: #454544; } + +body.theme2 .data-table-wrapper .dataTables_wrapper .dataTables_length, +body.theme2 .data-table-wrapper .dataTables_wrapper .dataTables_filter, +body.theme2 .data-table-wrapper .dataTables_wrapper .dataTables_info, +body.theme2 .data-table-wrapper .dataTables_wrapper .dataTables_processing, +body.theme2 .data-table-wrapper .dataTables_wrapper .dataTables_paginate { + color: #8ccdf5; } + +body.theme2 .data-table-wrapper .dataTables_wrapper .dataTables_length .form-control.input-sm { + color: #b9bab5; + background: url("../images/images_theme_1/drop_down_down_arrow.png") no-repeat 102% #232323; + border: 1px solid #333; } + +body.theme2 .data-table-wrapper div.dataTables_wrapper.no-footer .dataTables_scrollBody { + border-bottom: 1px solid #454544; } + +body.theme2 .data-table-wrapper div.dataTables_wrapper label select, +body.theme2 .data-table-wrapper div.dataTables_wrapper label input { + background-color: #232323; + color: #b9bab5; } + +body.theme2 .data-table-wrapper div.dataTables_wrapper .ColVis_Button.ColVis_MasterButton { + color: #8ccdf5 !important; } + body.theme2 .data-table-wrapper div.dataTables_wrapper .ColVis_Button.ColVis_MasterButton span { + display: none; } + +.topology-view .controllers { + width: 50px; + z-index: 20; + position: fixed; } + .topology-view .controllers .tree-toggle-button, .topology-view .controllers .network-toggle-button, .topology-view .controllers .service-toggle-button { + border: none; + min-width: 50px; } + .topology-view .controllers .tree-toggle-button .ui-button-text, .topology-view .controllers .network-toggle-button .ui-button-text, .topology-view .controllers .service-toggle-button .ui-button-text { + font-size: 20px; + padding: 0; } + .topology-view .controllers .tree-toggle-button.active, .topology-view .controllers .network-toggle-button.active, .topology-view .controllers .service-toggle-button.active { + color: #419ef1; } + .topology-view .controllers .diff-ind { + display: inline-block; } + +.network-topology-view .color-legend-icon { + display: inline-block; + position: absolute; + bottom: 10px; + left: 30px; + font-size: 25px; } + +.network-topology-view .right-click-context-menu { + display: none; + position: fixed; + border: 1px solid #1a2531; + box-shadow: 0px 1px 7px #1a2531; + background: #ecf1f5; + padding: 15px; } + .network-topology-view .right-click-context-menu .context-menu-item { + padding-top: 4px; + border-bottom: 2px solid #ecf1f5; } + .network-topology-view .right-click-context-menu .context-menu-item:first-child { + padding-top: 0; } + .network-topology-view .right-click-context-menu .context-menu-item:hover { + cursor: pointer; + display: inline-block; + border-bottom: 2px solid #419ef1; } + +.network-topology-view .right-pane-controller { + position: fixed; + right: -28%; + width: 28%; + top: 0; + background: rgba(255, 255, 255, 0.95); + border: 1px solid #253244; + height: 97%; + box-shadow: -3px 3px 10px 0px #1a2531; + z-index: 100; } + .network-topology-view .right-pane-controller .header { + padding: 10px; + background: #445a75; + color: #ecf1f5; + cursor: move; } + .network-topology-view .right-pane-controller .header .node-attributes-title { + display: inline-block; } + .network-topology-view .right-pane-controller .header .toggle { + float: right; + display: inline-block; + cursor: pointer; + font-size: 22px; } + .network-topology-view .right-pane-controller .header .toggle * { + margin-left: 5px; } + .network-topology-view .right-pane-controller .header .toggle .minimize { + vertical-align: text-bottom; } + .network-topology-view .right-pane-controller .header .toggle .minimize:hover, .network-topology-view .right-pane-controller .header .toggle .hide:hover { + color: #ff8a00; } + .network-topology-view .right-pane-controller .node-attributes .nfv-tabs-v3 { + padding: 10px; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list { + overflow: auto; + height: 71vh; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item { + display: table; + width: 100%; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item .node-attribute { + display: table-cell; + padding: 5px 0 5px 10px; + max-width: 0px; + text-overflow: ellipsis; + overflow: hidden; + white-space: nowrap; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item .node-attribute.name { + border-right: 1px solid #a8bbdc; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:first-child { + border-top: 1px solid #a8bbdc; + border-bottom: 1px solid #a8bbdc; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:last-child { + border-bottom: none; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:nth-child(even) { + background: rgba(168, 187, 220, 0.2); } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:hover, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item.selected { + background: rgba(65, 158, 241, 0.5); } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-item .node-attribute.name, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-header .node-attribute.name { + width: 85%; + text-align: center; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-item .node-attribute.value, .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-header .node-attribute.value { + width: 15%; + text-align: center; } + .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .multi-node-status-cell .status::before { + border-radius: 50%; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-title { + margin-bottom: 0; + height: 50px; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item { + display: inline-block; + margin: 0 22px; + text-align: center; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-icon { + width: 30px; + height: 30px; + background-position-y: -27px; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-icon.cpu { + background-image: url("../images/images_theme_1/cpu.png"); + background-repeat: no-repeat; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-icon.disk { + background-image: url("../images/images_theme_1/disk.png"); + background-repeat: no-repeat; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-icon.memory { + background-image: url("../images/images_theme_1/memory.png"); + background-repeat: no-repeat; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-icon.network { + background-image: url("../images/images_theme_1/network.png"); + background-repeat: no-repeat; } + .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-name { + text-transform: uppercase; } + .network-topology-view .right-pane-controller .kpi-graph { + overflow: hidden; + left: -315px; + top: 200px; + box-shadow: -3px 3px 10px 0px #1a2531; } + .network-topology-view .right-pane-controller .kpi-graph .header { + padding: 5px; } + .network-topology-view .right-pane-controller .kpi-graph .kpi-graph-area { + background: #ffffff; + border: 1px solid #253244; } + .network-topology-view .right-pane-controller .kpi-graph .kpi-graph-area .highcharts-container { + margin-top: 20px; } + +body.theme2 .topology-view .tree-toggle-button.active, body.theme2 .topology-view .network-toggle-button.active, body.theme2 .topology-view .service-toggle-button.active { + color: #9bdb69; } + +body.theme2 .network-topology-view .color-legend-icon { + color: #f7e385; } + +body.theme2 .network-topology-view .right-click-context-menu { + border: 1px solid #b9bab5; + box-shadow: 0px 1px 7px #b9bab5; + background: #232323; } + body.theme2 .network-topology-view .right-click-context-menu .context-menu-item { + border-bottom: 2px solid #232323; } + body.theme2 .network-topology-view .right-click-context-menu .context-menu-item:hover { + border-bottom: 2px solid #8ccdf5; } + +body.theme2 .network-topology-view .right-pane-controller { + background: #232323; + border-color: #333; + box-shadow: -3px 3px 10px 0px #333; } + body.theme2 .network-topology-view .right-pane-controller .header { + background: #232323; + color: #9bdb69; } + body.theme2 .network-topology-view .right-pane-controller .header .toggle .minimize:hover, body.theme2 .network-topology-view .right-pane-controller .header .toggle .hide:hover { + color: #ff8a00; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .ui-tabs-panel { + border-color: transparent; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes [id=tabs-kpi] .node-attributes-list .node-attribute-list-item:nth-child(even) { + background: inherit; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item .node-attribute.name { + border-right-color: #333; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:first-child { + border-top: 1px solid #333; + border-bottom: 1px solid #333; + color: #aaa6d9; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:nth-child(even) { + background: #292929; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item:hover, body.theme2 .network-topology-view .right-pane-controller .node-attributes .node-attributes-list .node-attribute-list-item.selected { + background: rgba(140, 205, 245, 0.5); } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item { + display: inline-block; + margin: 0 22px; + text-align: center; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-icon { + background-position-y: 0px; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-value { + color: #f4f6f1; } + body.theme2 .network-topology-view .right-pane-controller .node-attributes .nfv-collapsible-item .nfv-collapsible-content .kpi-item .kpi-item-name { + color: #9bdb69; } + body.theme2 .network-topology-view .right-pane-controller .kpi-graph { + box-shadow: -1px 1px 5px 0px #b9bab5; } + body.theme2 .network-topology-view .right-pane-controller .kpi-graph .kpi-graph-area { + background: #333; + border-color: #2f2f2f; } + body.theme2 .network-topology-view .right-pane-controller .kpi-graph .highcharts-container .highcharts-background { + fill: #333; } + body.theme2 .network-topology-view .right-pane-controller .kpi-graph .highcharts-container tspan { + fill: #f4f6f1; } + body.theme2 .network-topology-view .right-pane-controller .kpi-graph .highcharts-container .highcharts-tooltip rect:nth-child(4) { + fill: #232323; } + +.nfv-loader { + background-color: rgba(0, 0, 0, 0.65); + position: fixed; + top: 0; + left: 0; + z-index: 200001; + width: 100%; + height: 100%; } + .nfv-loader .loading { + width: 200px; + height: 200px; + position: absolute; + top: 40%; + left: 45%; } + .nfv-loader .loading .circle { + border-radius: 100%; + border-top: 5px solid #419ef1; + margin: auto; + transform-origin: 50%; + position: relative; } + .nfv-loader .loading .s_3 { + width: 200px; + height: 200px; + animation: rot_right 2s infinite linear; + -webkit-animation: rot_right 2s infinite linear; + transition: 2s; + -webkit-transition: 2s; } + .nfv-loader .loading .s_2 { + width: 150px; + height: 150px; + margin-top: 10px; + animation: rot_left 2s infinite linear; + -webkit-animation: rot_left 2s infinite linear; + transition: 2s; + -webkit-transition: 2s; + margin-top: -190px; } + .nfv-loader .loading .s_1 { + width: 100px; + height: 100px; + margin-top: 10px; + animation: rot_right 2s infinite linear; + -webkit-animation: rot_right 2s infinite linear; + transition: 2s; + -webkit-transition: 2s; + margin-top: -140px; } + +@keyframes rot_right { + from { + transform: rotate(0deg); } + to { + transform: rotate(360deg); } } + +@-webkit-keyframes rot_right { + from { + transform: rotate(0deg); } + to { + transform: rotate(360deg); } } + +@keyframes rot_left { + from { + transform: rotate(360deg); } + to { + transform: rotate(0deg); } } + +@-webkit-keyframes rot_left { + from { + transform: rotate(360deg); } + to { + transform: rotate(0deg); } } + .nfv-loader .loading .s_title { + border: 0; + color: white; + text-align: center; + margin-top: -60px; + animation: blink 2s infinite linear; + -webkit-animation: blink 2s infinite linear; + transition: 2s; + -webkit-transition: 2s; + letter-spacing: 1px; } + +@keyframes blink { + 0% { + opacity: 1; } + 50% { + opacity: 0.5; } + 100% { + opacity: 1; } } + +@-webkit-keyframes blink { + 0% { + opacity: 1; } + 50% { + opacity: 0.5; } + 100% { + opacity: 1; } } + +/* Components */ +.tasks-handler, .parameters-tab .tasks-handler { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 170px; } + .tasks-handler .reject-button { + display: inline-block; + margin-top: 18px; } + .tasks-handler .right-side-buttons { + position: absolute; + display: inline-block; + top: 12px; + right: 2%; } + .tasks-handler .right-side-buttons .skip-to-end-button { + display: none; } + .tasks-handler .right-side-buttons .approve-button { + position: initial !important; + margin-left: 30px; } + +.not-editable { + pointer-events: none; } + .not-editable input, .not-editable select { + border: none; + background: #ffffff; } + +.service-attributes { + overflow-y: auto; + margin-top: 30px; + margin-bottom: 30px; } + .service-attributes .mandatory { + margin-bottom: 30px; } + .service-attributes .form-container .form-element--label { + margin-bottom: 15px; + border-left: none; + position: relative; } + .service-attributes .form-element { + padding-top: 20px; + border-left: 3px solid #419ef1; } + .service-attributes .form-element .form-element--label { + display: inline-block; + margin-right: 10px; + min-width: 200px; + padding-left: 20px; } + .service-attributes .form-element input { + min-width: 150px; } + .service-attributes .form-element select { + min-width: 172px; } + .service-attributes .form-element .form-element--error-message { + display: block; + margin-left: 235px; } + .service-attributes .form-element-container { + margin-bottom: 80px; } + .service-attributes .previous-value { + margin-left: 50px; } + .service-attributes .previous-value:before { + content: "Previous: "; } + +.orchestration-tree { + width: 120%; } + +.launch-service-wizard .nfv-wizard-content { + background: #ffffff; + padding-left: 30px; + padding-top: 30px; + position: absolute; + overflow-x: hidden; + overflow-y: auto; + top: 58px; + left: 0px; + bottom: 64px; + right: 0px; } + .launch-service-wizard .nfv-wizard-content .select-service-title, .launch-service-wizard .nfv-wizard-content .launch-service-title, .launch-service-wizard .nfv-wizard-content .parameters-service-title { + color: #253244; + margin-bottom: 30px; } + .launch-service-wizard .nfv-wizard-content .service-list-item { + display: inline-block; + background-color: rgba(236, 241, 245, 0.5); + padding-top: 15px; + width: 202px; + margin: 0 15px 15px 0; + height: 130px; + cursor: pointer; + transition: background-color 0.25s; } + .launch-service-wizard .nfv-wizard-content .service-list-item:hover { + background-color: #ecf1f5; } + .launch-service-wizard .nfv-wizard-content .service-list-item .service-image { + text-align: center; + font-size: 44px; } + .launch-service-wizard .nfv-wizard-content .service-list-item .service-name { + text-align: center; + display: block; + /* Fallback for non-webkit */ + display: -webkit-box; + max-width: 170px; + height: 49.5px; + /* Fallback for non-webkit */ + margin: 10px auto 0; + font-size: 15px; + line-height: 1.1; + -webkit-line-clamp: 3; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; + word-wrap: break-word; } + +.launch-service-wizard .wizard-nav-controls .skip-to-end { + position: absolute; + right: 160px; } + +body.theme2 .not-editable input, body.theme2 .not-editable select { + background: #232323; } + +body.theme2 .service-attributes .form-container .form-element--label::before { + background-color: #333; } + +body.theme2 .service-attributes .form-element { + border-left: 3px solid #8ccdf5; } + +body.theme2 .launch-service-wizard .nfv-wizard-content { + background: #232323; + padding-left: 30px; } + body.theme2 .launch-service-wizard .nfv-wizard-content .select-service-title, body.theme2 .launch-service-wizard .nfv-wizard-content .launch-service-title, body.theme2 .launch-service-wizard .nfv-wizard-content .parameters-service-title { + color: #aaa6d9; } + body.theme2 .launch-service-wizard .nfv-wizard-content .service-list-item { + background-color: rgba(47, 47, 47, 0.8); } + body.theme2 .launch-service-wizard .nfv-wizard-content .service-list-item:hover { + background-color: #2f2f2f; } + +.system-events .dataTable .column.type .type-icon, .service-events-tab .service-events .dataTable .column.type .type-icon { + width: 100%; + height: 28px; + font-family: FontAwesome; + font-size: 20px; + text-align: center; } + .system-events .dataTable .column.type .type-icon.error, .service-events-tab .service-events .dataTable .column.type .type-icon.error { + color: #e65353; } + .system-events .dataTable .column.type .type-icon.error:before, .service-events-tab .service-events .dataTable .column.type .type-icon.error:before { + content: '\f05c'; } + .system-events .dataTable .column.type .type-icon.info, .service-events-tab .service-events .dataTable .column.type .type-icon.info { + color: #419ef1; } + .system-events .dataTable .column.type .type-icon.info:before, .service-events-tab .service-events .dataTable .column.type .type-icon.info:before { + content: '\f05a'; } + .system-events .dataTable .column.type .type-icon.warning, .service-events-tab .service-events .dataTable .column.type .type-icon.warning { + color: #419ef1; } + .system-events .dataTable .column.type .type-icon.warning:before, .service-events-tab .service-events .dataTable .column.type .type-icon.warning:before { + content: '\f071'; } + +.system-events .dataTable .column.message .column-cell-content .flexible-content, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content { + display: flex; + flex-wrap: nowrap; } + .system-events .dataTable .column.message .column-cell-content .flexible-content .service-message, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .service-message { + flex-basis: 85%; + width: 50px; + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; + padding-right: 20px; } + .system-events .dataTable .column.message .column-cell-content .flexible-content .nfv-secondary-button, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .nfv-secondary-button, .system-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog[role="dialog"] .ui-dialog-buttonset, .ui-dialog[role="dialog"] .system-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog-buttonset, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog[role="dialog"] .ui-dialog-buttonset, .ui-dialog[role="dialog"] .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog-buttonset { + flex-basis: 15%; + flex-shrik: 0; } + .system-events .dataTable .column.message .column-cell-content .flexible-content .nfv-secondary-button .uxf-button, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .nfv-secondary-button .uxf-button, .system-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog[role="dialog"] .ui-dialog-buttonset .uxf-button, .ui-dialog[role="dialog"] .system-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog-buttonset .uxf-button, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog[role="dialog"] .ui-dialog-buttonset .uxf-button, .ui-dialog[role="dialog"] .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog-buttonset .uxf-button { + width: 75px; + min-width: 0; } + .system-events .dataTable .column.message .column-cell-content .flexible-content .nfv-secondary-button .ui-button-text, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .nfv-secondary-button .ui-button-text, .system-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button-text, .ui-dialog[role="dialog"] .system-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog-buttonset .ui-button-text, .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog[role="dialog"] .ui-dialog-buttonset .ui-button-text, .ui-dialog[role="dialog"] .service-events-tab .service-events .dataTable .column.message .column-cell-content .flexible-content .ui-dialog-buttonset .ui-button-text { + padding: 3px 0; } + +.system-events .dataTable .column.where .column-cell-content, .service-events-tab .service-events .dataTable .column.where .column-cell-content { + max-width: 160px; + min-width: 150px; } + +.system-events .dataTable .column.component .column-cell-content, .service-events-tab .service-events .dataTable .column.component .column-cell-content { + display: table-cell; + margin-right: 25px; + text-overflow: ellipsis; + overflow: hidden; + max-width: 170px; } + +body.theme2 .system-events .dataTable .column.type .type-icon.error, body.theme2 .service-events-tab .service-events .dataTable .column.type .type-icon.error, .service-events-tab body.theme2 .service-events .dataTable .column.type .type-icon.error { + color: #ff7c54; } + +body.theme2 .system-events .dataTable .column.type .type-icon.info, body.theme2 .service-events-tab .service-events .dataTable .column.type .type-icon.info, .service-events-tab body.theme2 .service-events .dataTable .column.type .type-icon.info { + color: #8ccdf5; } + +body.theme2 .system-events .dataTable .column.type .type-icon.warning, body.theme2 .service-events-tab .service-events .dataTable .column.type .type-icon.warning, .service-events-tab body.theme2 .service-events .dataTable .column.type .type-icon.warning { + color: #f7e385; } + +.service-details .activities-button { + float: right !important; } + .service-details .activities-button .uxf-button.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only { + border: 1px solid #253244; + color: #253244; + background-color: #ffffff; } + .service-details .activities-button .uxf-button.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only:hover { + color: #419ef1; + border: 1px solid #419ef1; } + @media screen and (max-width: 1024px) { + .service-details .activities-button .uxf-button { + margin: 8px; + min-width: 80px; } + .service-details .activities-button .uxf-button .ui-button-text { + padding: 0px 5px; } } + +@media screen and (max-width: 1024px) { + .service-details .nfv-tabs-v1 li.ui-state-default { + margin: 0 30px; } } + +.service-details .services-tabs { + left: 0px; + position: fixed; + right: 0px; + top: 70px; + transition: background-color 0.2s; + z-index: 100; } + +.service-details div[role="tabpanel"].ui-tabs-panel { + padding-top: 40px; } + +.service-details .workflow-view .refresh-button { + border: none; } + .service-details .workflow-view .refresh-button .ui-button-text { + font-size: 30px; + padding: 0; } + +/* service overview tab */ +.service-overview-tab .service-metrics { + padding: 14px 14px 0px 14px; } + .service-overview-tab .service-metrics .service-metric { + background-color: rgba(236, 241, 245, 0.5); + display: inline-block; + transition: background-color 0.2s; + padding: 10px; } + @media screen and (max-width: 1024px) { + .service-overview-tab .service-metrics .service-metric { + padding: 5px; } + .service-overview-tab .service-metrics .service-metric:first-child { + padding-top: 6px; } } + @media screen and (min-width: 1224px) { + .service-overview-tab .service-metrics .service-metric { + min-width: 150px; + margin-right: 12px; } } + .service-overview-tab .service-metrics .service-metric .vnf-icon, .service-overview-tab .service-metrics .service-metric .vm-icon { + font-size: 55px; + display: inline-block; + position: relative; + top: -5px; } + .service-overview-tab .service-metrics .service-metric .metric-details { + display: inline-block; + line-height: 1.0; + margin-left: 15px; } + .service-overview-tab .service-metrics .service-status .service-status-icon { + display: inline-block; + padding-right: 20px; + font-size: 55px; + position: relative; + top: -5px; } + .service-overview-tab .service-metrics .service-status .service-status-icon.active i:before { + color: #419ef1; + content: '\f046'; } + .service-overview-tab .service-metrics .service-status .service-status-icon.new i:before, + .service-overview-tab .service-metrics .service-status .service-status-icon.service-tree-created i:before, + .service-overview-tab .service-metrics .service-status .service-status-icon.service-tree-approved i:before, + .service-overview-tab .service-metrics .service-status .service-status-icon.workflow-created i:before, + .service-overview-tab .service-metrics .service-status .service-status-icon.workflow-started i:before { + color: #419ef1; + content: '\f017'; } + .service-overview-tab .service-metrics .service-status .service-status-icon.terminated i:before { + color: #419ef1; + content: '\f05e'; } + .service-overview-tab .service-metrics .service-status .service-status-icon.error i:before { + color: #e65353; + content: '\f05c'; } + .service-overview-tab .service-metrics .service-status .service-details { + display: inline-block; + border-left: 1px solid #454544; + padding-left: 20px; } + .service-overview-tab .service-metrics .service-status .service-details .status { + color: #419ef1; } + .service-overview-tab .service-metrics .service-status .service-details .service-times { + color: #1a2531; } + .service-overview-tab .service-metrics .service-status .service-details .service-times .service-time-value { + color: #419ef1; + float: right; + margin-left: 12px; } + +.service-overview-tab .service-detailed-info { + padding: 14px; } + .service-overview-tab .service-detailed-info .service-tasks, .service-overview-tab .service-detailed-info .service-events { + background: rgba(236, 241, 245, 0.5); } + @media screen and (min-width: 1224px) { + .service-overview-tab .service-detailed-info .service-tasks, .service-overview-tab .service-detailed-info .service-events { + display: inline-block; + vertical-align: top; } } + .service-overview-tab .service-detailed-info .service-tasks .list-header, .service-overview-tab .service-detailed-info .service-events .list-header { + color: #419ef1; + padding: 4px 30px; + border-bottom: 1px solid rgba(168, 187, 220, 0.3); + transition: color 0.2s, border 0.2s; } + .service-overview-tab .service-detailed-info .service-tasks .see-all-link, .service-overview-tab .service-detailed-info .service-events .see-all-link { + border-top: 1px solid rgba(168, 187, 220, 0.3); + padding: 11px 30px; } + @media screen and (min-width: 1224px) { + .service-overview-tab .service-detailed-info .service-tasks { + width: 34%; + margin-right: 14px; } } + @media screen and (max-width: 1024px) { + .service-overview-tab .service-detailed-info .service-tasks { + margin-bottom: 14px; } } + .service-overview-tab .service-detailed-info .service-tasks .service-tasks-list { + height: 260px; + overflow-y: auto; + overflow-x: hidden; } + .service-overview-tab .service-detailed-info .service-tasks .task-list-item { + border-bottom: 1px solid rgba(168, 187, 220, 0.3); } + .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-item-content { + cursor: pointer; + padding: 14px 30px; } + .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-time .due { + color: #445a75; } + .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-message { + overflow: hidden; + text-overflow: ellipsis; + width: 100%; + white-space: nowrap; + margin-top: 4px; } + .service-overview-tab .service-detailed-info .service-tasks .task-list-item:hover { + background: #f6e6cd; } + @media screen and (min-width: 1224px) { + .service-overview-tab .service-detailed-info .service-events { + width: 63.8%; } } + .service-overview-tab .service-detailed-info .service-events .service-events-list { + height: 260px; + overflow-y: auto; + overflow-x: hidden; } + .service-overview-tab .service-detailed-info .service-events .event-list-item { + border-bottom: 1px solid rgba(168, 187, 220, 0.3); } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon { + display: table-cell; + width: 28px; + height: 28px; + font-family: FontAwesome; + font-size: 20px; + text-align: center; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.error { + color: #e65353; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.error:before { + content: '\f05c'; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.info { + color: #419ef1; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.info:before { + content: '\f05a'; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.warning, .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.warn { + color: #419ef1; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.warning:before, .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.warn:before { + content: '\f071'; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-content { + padding: 10px 30px; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-content .event-item-data .event-time { + display: table-cell; + vertical-align: middle; + padding-left: 12px; } + .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-content .event-message { + overflow: hidden; + text-overflow: ellipsis; + width: 100%; + white-space: nowrap; + margin-top: 4px; + margin-left: 40px; } + .service-overview-tab .service-detailed-info .service-events .event-list-item:hover { + background: #f6e6cd; } + .service-overview-tab .service-detailed-info .service-performance { + margin-top: 20px; + text-align: center; } + .service-overview-tab .service-detailed-info .service-performance .services-performance-header { + padding: 10px; + color: #419ef1; } + .service-overview-tab .service-detailed-info .service-performance .services-performance-header .title { + display: inline-block; } + .service-overview-tab .service-detailed-info .service-performance .services-performance-header .scale-buttons { + display: inline-block; + float: right; + border: 1px solid #a8bbdc; } + .service-overview-tab .service-detailed-info .service-performance .services-performance-header .scale-buttons .scale-button { + min-width: 0; + width: 30px; + margin: 0; + border: none; } + .service-overview-tab .service-detailed-info .service-performance .services-performance-header .scale-buttons .scale-button .ui-button-text { + padding: 2px 5px; } + .service-overview-tab .service-detailed-info .service-performance .services-performance-header .scale-buttons .scale-button.active { + background: #419ef1; } + .service-overview-tab .service-detailed-info .service-performance .vm-chart { + margin: 0 auto; } + .service-overview-tab .service-detailed-info .service-performance svg { + padding: 0; } + +/* Service Events Tab */ +/* Service Parameters */ +.parameters-tab { + margin-left: 30px; } + .parameters-tab .edit-buttons-toolbar { + background: #ecf1f5; + padding: 12px 0; + border-top: 1px solid #445a75; + position: fixed; + bottom: 0; + left: 0; + width: 100%; + z-index: 3; } + .parameters-tab .edit-buttons-toolbar .edit, .parameters-tab .edit-buttons-toolbar .submit, .parameters-tab .edit-buttons-toolbar .discard { + display: inline-block; } + .parameters-tab .edit-buttons-toolbar .edit { + margin-left: 30px; } + .parameters-tab .edit-buttons-toolbar .submit { + position: absolute; + right: 160px; } + .parameters-tab .edit-buttons-toolbar .continue { + position: absolute; + top: 12px; + right: 20px; } + +body.theme2 { + /* Service Parameters */ } + body.theme2 .service-details .activities-button .uxf-button.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only { + border: 1px solid rgba(185, 186, 181, 0.7); + color: rgba(185, 186, 181, 0.7); + background-color: transparent; } + body.theme2 .service-details .activities-button .uxf-button.ui-button.ui-widget.ui-state-default.ui-corner-all.ui-button-text-only:hover { + color: #b9bab5; + border: 1px solid #b9bab5; } + body.theme2 .service-overview-tab .service-metrics .service-metric { + background-color: #333; } + body.theme2 .service-overview-tab .service-metrics .service-metric .vnf-icon, body.theme2 .service-overview-tab .service-metrics .service-metric .vm-icon { + color: #8ccdf5; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.active i:before { + color: #9bdb69; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.new i:before, + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.service-tree-created i:before, + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.service-tree-approved i:before, + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.workflow-created i:before, + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.workflow-started i:before { + color: #8ccdf5; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.terminated i:before { + color: #f7e385; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-status-icon.error i:before { + color: #ff7c54; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-details { + border-left: 1px solid #454544; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-details .status { + color: #f4f6f1; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-details .service-times { + color: #b9bab5; } + body.theme2 .service-overview-tab .service-metrics .service-status .service-details .service-times .service-time-value { + color: #f7e385; } + body.theme2 .service-overview-tab .service-detailed-info .service-tasks, body.theme2 .service-overview-tab .service-detailed-info .service-events { + background: #333; } + body.theme2 .service-overview-tab .service-detailed-info .service-tasks .list-header, body.theme2 .service-overview-tab .service-detailed-info .service-events .list-header { + color: #8ccdf5; + border-bottom: 1px solid #454544; } + body.theme2 .service-overview-tab .service-detailed-info .service-tasks .see-all-link, body.theme2 .service-overview-tab .service-detailed-info .service-events .see-all-link { + border-top: 1px solid #454544; } + body.theme2 .service-overview-tab .service-detailed-info .service-tasks .task-list-item { + border-bottom: 1px solid #454544; } + body.theme2 .service-overview-tab .service-detailed-info .service-tasks .task-list-item .task-time .due { + color: #f4f6f1; } + body.theme2 .service-overview-tab .service-detailed-info .service-tasks .task-list-item:hover { + background: #454544; } + body.theme2 .service-overview-tab .service-detailed-info .service-events .event-list-item { + border-bottom: 1px solid #454544; } + body.theme2 .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.error { + color: #ff7c54; } + body.theme2 .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.info { + color: #8ccdf5; } + body.theme2 .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.warning, body.theme2 .service-overview-tab .service-detailed-info .service-events .event-list-item .event-item-icon.warn { + color: #f7e385; } + body.theme2 .service-overview-tab .service-detailed-info .service-events .event-list-item:hover { + background: #454544; } + body.theme2 .service-overview-tab .service-detailed-info .service-performance .services-performance-header { + color: #8ccdf5; } + body.theme2 .service-overview-tab .service-detailed-info .service-performance .services-performance-header .scale-buttons { + border: 1px solid #a8bbdc; } + body.theme2 .service-overview-tab .service-detailed-info .service-performance .services-performance-header .scale-buttons .scale-button.active { + background: #419ef1; } + body.theme2 .service-overview-tab .service-detailed-info .service-performance .highcharts-container .highcharts-background { + fill: #333; } + body.theme2 .service-overview-tab .service-detailed-info .service-performance .highcharts-container tspan { + fill: #f4f6f1; } + body.theme2 .service-overview-tab .service-detailed-info .service-performance .highcharts-container .highcharts-tooltip rect:nth-child(4) { + fill: #232323; } + body.theme2 .parameters-tab .edit-buttons-toolbar { + background: #333; + border-top: 1px solid #333; } + +.modify-service-wizard { + margin-left: -30px; } + .modify-service-wizard .nfv-wizard-header { + background: transparent; + border-bottom: none; } + .modify-service-wizard .impact-view { + padding: 40px; } + .modify-service-wizard .impact-view .impact-view-title { + margin-bottom: 30px; } + .modify-service-wizard .impact-view .impact-list .impact-item { + margin: 20px 0; } + .modify-service-wizard .impact-view .impact-list .impact-item .impact-item-icon { + background: url("../images/images_theme_1/cloud.png") no-repeat; + width: 67px; + height: 42px; + display: table-cell; + vertical-align: middle; } + .modify-service-wizard .impact-view .impact-list .impact-item .impact-item-text { + display: table-cell; + vertical-align: middle; + padding-left: 20px; } + .modify-service-wizard .impact-view .nfv-collapsible-title-text { + width: 20px; } + +.system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .serviceName, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .serviceName, .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer, .system-tasks .task-details-container .task-details-header .serviceTitles, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles, .system-tasks .task-details-container .task-details-header .serviceTitles .serviceName, .system-tasks .task-details-container .task-details-header .serviceTitles .customer, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .serviceName, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .customer, .system-tasks .task-details-container .task-details-header .dueDateGroup, .tasks-notifications-container .task-details-container .task-details-header .dueDateGroup { + white-space: nowrap; + overflow: hidden; + text-overflow: ellipsis; } + +.system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview, .system-tasks .task-details-container .task-details-header .description, .tasks-notifications-container .task-details-container .task-details-header .description { + display: -webkit-box; + -webkit-line-clamp: 2; + line-height: 1.55; + -webkit-box-orient: vertical; + overflow: hidden; + text-overflow: ellipsis; } + +.system-tasks { + position: absolute; + bottom: 0; + top: 0; + right: 0; + left: 0; } + +.nfv-balloon.reject-balloon .reject-task-balloon { + width: 300px; + height: 220px; } + .nfv-balloon.reject-balloon .reject-task-balloon .reject-title, .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container, .nfv-balloon.reject-balloon .reject-task-balloon .reject-reason { + padding-left: 14px; + padding-right: 14px; } + .nfv-balloon.reject-balloon .reject-task-balloon .reject-title { + padding-top: 10px; + padding-bottom: 10px; } + .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container { + margin-top: 9px; + padding-top: 3px; + display: table; + width: 272px; + height: 40px; + background: #f6e6cd; } + .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container .cancel-reject-btn-holder, .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container .reject-btn-holder { + display: table-cell; + vertical-align: middle; } + .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container .reject-btn-holder { + text-align: right; } + .nfv-balloon.reject-balloon .reject-task-balloon .reject-reason-text { + width: 99%; + height: 118px; } + .nfv-balloon.reject-balloon .reject-task-balloon .reject-reason-text.required { + border: 1px solid #e65353; } + +.system-tasks, .tasks-notifications-container { + color: #1a2531; } + .system-tasks .tasks-list-container, .tasks-notifications-container .tasks-list-container { + height: 100%; + width: 330px; + background: #ffffff; + overflow: hidden; } + .system-tasks .tasks-list-container .filters, .tasks-notifications-container .tasks-list-container .filters { + background-color: #ecf1f5; + height: 63px; + width: 100%; + display: table; + position: relative; + z-index: 5; + border-bottom: 2px solid #a8bbdc; } + .system-tasks .tasks-list-container .filters .select, .tasks-notifications-container .tasks-list-container .filters .select { + display: table-cell; + text-align: left; + vertical-align: middle; + position: relative; + padding-top: 5px; } + .system-tasks .tasks-list-container .filters .select select, .tasks-notifications-container .tasks-list-container .filters .select select { + min-width: 100px; } + .system-tasks .tasks-list-container .filters .tasks-list-footer, .system-tasks .tasks-list-container .filters .tasks-list-popup-footer, .tasks-notifications-container .tasks-list-container .filters .tasks-list-footer, .tasks-notifications-container .tasks-list-container .filters .tasks-list-popup-footer { + display: table-cell; + vertical-align: middle; } + .system-tasks .tasks-list-container .placeholder, .tasks-notifications-container .tasks-list-container .placeholder { + position: absolute; + left: 324px; + height: 110px; + width: 330px; + border-bottom: 1px solid #a8bbdc; + overflow: hidden; } + .system-tasks .tasks-list-container .placeholder .approve-bg, .tasks-notifications-container .tasks-list-container .placeholder .approve-bg { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #3ebd6b; + opacity: 0.1; } + .system-tasks .tasks-list-container .placeholder .reject-bg, .tasks-notifications-container .tasks-list-container .placeholder .reject-bg { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #e65353; + opacity: 0.1; } + .system-tasks .tasks-list-container .placeholder .replan-bg, .tasks-notifications-container .tasks-list-container .placeholder .replan-bg { + position: absolute; + top: 0; + left: 0; + right: 0; + bottom: 0; + background-color: #ff8a00; + opacity: 0.1; } + .system-tasks .tasks-list-container .placeholder .text, .tasks-notifications-container .tasks-list-container .placeholder .text { + position: absolute; + top: 44px; + left: 137px; + opacity: 1; } + .system-tasks .tasks-list-container .tasks-collection-container, .tasks-notifications-container .tasks-list-container .tasks-collection-container { + overflow-y: auto; + overflow-x: hidden; + width: 330px; + position: absolute; } + .system-tasks .tasks-list-container .tasks-collection-container.popup, .tasks-notifications-container .tasks-list-container .tasks-collection-container.popup { + top: 0px; + bottom: 0px; } + .system-tasks .tasks-list-container .tasks-collection-container.full-mode, .tasks-notifications-container .tasks-list-container .tasks-collection-container.full-mode { + top: 63px; + bottom: 0px; } + .system-tasks .tasks-list-container .tasks-collection-container.full-mode .task-list-item.active, .tasks-notifications-container .tasks-list-container .tasks-collection-container.full-mode .task-list-item.active { + background-color: #ecf1f5; + border-left: 5px solid #419ef1; + padding-left: 25px; } + .system-tasks .tasks-list-container .tasks-collection-container.full-mode .task-list-item.active .serviceParams, .tasks-notifications-container .tasks-list-container .tasks-collection-container.full-mode .task-list-item.active .serviceParams { + left: 165px; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist { + list-style-type: none; + padding: 0px; + margin: 0px; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item { + cursor: pointer; + position: relative; + top: 0; + height: 98px; + width: 300px; + padding-left: 30px; + padding-top: 12px; + background-color: #ffffff; + border-bottom: 1px solid #a8bbdc; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item:hover, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item:hover { + background-color: #ecf1f5; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles { + width: 130px; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer { + margin-top: 2px; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer::before, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer::before { + content: "("; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer::after, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer::after { + content: ")"; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview { + word-spacing: 2px; + margin-top: 8px; + height: 37px; + width: 280px; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .message, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .message { + color: #445a75; + white-space: nowrap; + text-overflow: ellipsis; + overflow: hidden; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-approve .value, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-approve .value { + color: #3ebd6b; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-cancel .value, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-cancel .value { + color: #e65353; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams { + position: absolute; + top: 12px; + left: 170px; } + .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams .Default, .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceParams .Default { + height: 18px; + line-height: 18px; } + .system-tasks .task-details-container, .tasks-notifications-container .task-details-container { + height: 100%; + background: #ffffff; + position: absolute; + top: 0px; + left: 330px; + right: 0; + border-left: 2px solid #a8bbdc; + overflow: hidden; } + .system-tasks .task-details-container .empty, .tasks-notifications-container .task-details-container .empty { + display: table; + position: absolute; + background: #ffffff; + width: 100%; + z-index: 100; + height: 100%; } + .system-tasks .task-details-container .empty span, .tasks-notifications-container .task-details-container .empty span { + display: table-cell; + text-align: center; + vertical-align: middle; } + .system-tasks .task-details-container .task-details-header, .tasks-notifications-container .task-details-container .task-details-header { + overflow: hidden; + position: absolute; + right: 0; + left: 0; + height: 61px; + background-color: #ecf1f5; + padding-left: 15px; } + .system-tasks .task-details-container .task-details-header .serviceTitles, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles { + display: inline-block; + height: 47px; + padding-top: 11px; + padding-right: 10px; + border-right: 1px solid #a8bbdc; + width: 170px; } + .system-tasks .task-details-container .task-details-header .serviceTitles .customer::before, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .customer::before { + content: "("; } + .system-tasks .task-details-container .task-details-header .serviceTitles .customer::after, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .customer::after { + content: ")"; } + .system-tasks .task-details-container .task-details-header .serviceTitles .customer:empty, .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .customer:empty { + display: none; } + .system-tasks .task-details-container .task-details-header .dueDateGroup, .tasks-notifications-container .task-details-container .task-details-header .dueDateGroup { + display: inline-block; + height: 47px; + padding: 11px 10px 0 10px; + border-right: 1px solid #a8bbdc; + width: 110px; } + .system-tasks .task-details-container .task-details-header .description, .tasks-notifications-container .task-details-container .task-details-header .description { + height: 40px; + padding: 11px 10px 10px 10px; + position: absolute; + top: 0; + left: 330px; + right: 300px; + border-right: 1px solid #a8bbdc; } + .system-tasks .task-details-container .buttons-container, .tasks-notifications-container .task-details-container .buttons-container { + float: right; + margin: 10px 30px 10px 0; } + .system-tasks .task-details-container .buttons-container .approve-btn, .system-tasks .task-details-container .buttons-container .reject-btn, .system-tasks .task-details-container .buttons-container .replan-btn, .tasks-notifications-container .task-details-container .buttons-container .approve-btn, .tasks-notifications-container .task-details-container .buttons-container .reject-btn, .tasks-notifications-container .task-details-container .buttons-container .replan-btn { + border: none; } + .system-tasks .task-details-container .buttons-container .approve-btn:before, .tasks-notifications-container .task-details-container .buttons-container .approve-btn:before { + font-family: FontAwesome; + content: "\f00c"; + color: #3ebd6b; } + .system-tasks .task-details-container .buttons-container .reject-btn:before, .tasks-notifications-container .task-details-container .buttons-container .reject-btn:before { + font-family: FontAwesome; + content: "\f00d"; + color: #e65353; } + .system-tasks .task-details-container .buttons-container .replan-btn:before, .tasks-notifications-container .task-details-container .buttons-container .replan-btn:before { + font-family: FontAwesome; + content: "\f021"; } + .system-tasks .task-details-container .task-details-tabs-container, .tasks-notifications-container .task-details-container .task-details-tabs-container { + position: absolute; + top: 61px; + bottom: 0px; + left: 0; + right: 0; } + .system-tasks .task-details-container .task-details-tabs-container .tree-graph, .tasks-notifications-container .task-details-container .task-details-tabs-container .tree-graph { + height: 667px; } + .system-tasks .task-details-container .task-details-tabs-container .tree-graph svg, .tasks-notifications-container .task-details-container .task-details-tabs-container .tree-graph svg { + border: none; } + .system-tasks .task-details-container .task-details-tabs-container .nfv-tabpanel, .tasks-notifications-container .task-details-container .task-details-tabs-container .nfv-tabpanel { + position: absolute; + top: 0px; + bottom: 0px; + left: 0px; + right: 0px; } + .system-tasks .task-details-container .task-details-tabs-container .nfv-tabpanel .nfv-tabs-v3, .tasks-notifications-container .task-details-container .task-details-tabs-container .nfv-tabpanel .nfv-tabs-v3 { + padding: 0; } + .system-tasks .task-details-container .task-details-tabs-container .nfv-tabpanel #tabs-parameters-tab, .tasks-notifications-container .task-details-container .task-details-tabs-container .nfv-tabpanel #tabs-parameters-tab { + position: absolute; + top: 42px; + left: 0px; + right: 0px; + bottom: 0px; + overflow-y: auto; } + +body.theme2 .nfv-balloon.reject-balloon { + border-color: #333; + background-color: #454544; } + body.theme2 .nfv-balloon.reject-balloon .reject-task-balloon .reject-title { + color: #f4f6f1; } + body.theme2 .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container { + background: #333; } + body.theme2 .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container .reject-btn-holder a { + color: #f4f6f1; + border-color: #f4f6f1; } + body.theme2 .nfv-balloon.reject-balloon .reject-task-balloon .buttons-container .reject-btn-holder a:hover { + border-color: #ff7c54; + color: #ff7c54; } + body.theme2 .nfv-balloon.reject-balloon .reject-task-balloon .reject-reason-text { + background-color: inherit; + border-color: inherit; + color: #f4f6f1; } + body.theme2 .nfv-balloon.reject-balloon .reject-task-balloon .reject-reason-text.required { + border: 1px solid #f7e385; } + +body.theme2 .system-tasks, body.theme2 .tasks-notifications-container { + color: #b9bab5; } + body.theme2 .system-tasks .tasks-list-container, body.theme2 .tasks-notifications-container .tasks-list-container { + background: #232323; } + body.theme2 .system-tasks .tasks-list-container .filters, body.theme2 .tasks-notifications-container .tasks-list-container .filters { + background-color: #232323; + border-bottom: 2px solid #454544; } + body.theme2 .system-tasks .tasks-list-container .placeholder, body.theme2 .tasks-notifications-container .tasks-list-container .placeholder { + border-bottom: 1px solid #454544; } + body.theme2 .system-tasks .tasks-list-container .placeholder .approve-bg, body.theme2 .tasks-notifications-container .tasks-list-container .placeholder .approve-bg { + background-color: #9bdb69; } + body.theme2 .system-tasks .tasks-list-container .placeholder .reject-bg, body.theme2 .tasks-notifications-container .tasks-list-container .placeholder .reject-bg { + background-color: #f7e385; } + body.theme2 .system-tasks .tasks-list-container .placeholder .replan-bg, body.theme2 .tasks-notifications-container .tasks-list-container .placeholder .replan-bg { + background-color: #8ccdf5; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container.full-mode .task-list-item.active, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container.full-mode .task-list-item.active { + background-color: #333; + border-left: 5px solid #f4f6f1; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item { + background-color: #232323; + border-bottom: 1px solid #454544; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .serviceName, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .serviceName { + color: #8ccdf5; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .serviceTitles .customer { + color: #aaa6d9; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item:hover, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item:hover { + background-color: #333; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .message, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .message { + color: #b9bab5; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-approve .value, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-approve .value { + color: #9bdb69; } + body.theme2 .system-tasks .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-cancel .value, body.theme2 .tasks-notifications-container .tasks-list-container .tasks-collection-container .uxf-itemlist .task-list-item .contentPreview .action-taken.action-taken-cancel .value { + color: #f7e385; } + body.theme2 .system-tasks .task-details-container, body.theme2 .tasks-notifications-container .task-details-container { + background: #333; + border-left: 2px solid #454544; } + body.theme2 .system-tasks .task-details-container .empty, body.theme2 .tasks-notifications-container .task-details-container .empty { + background: #333; } + body.theme2 .system-tasks .task-details-container .task-details-header, body.theme2 .tasks-notifications-container .task-details-container .task-details-header { + background-color: #292929; + border-bottom: 2px solid #454544; } + body.theme2 .system-tasks .task-details-container .task-details-header .serviceTitles, body.theme2 .tasks-notifications-container .task-details-container .task-details-header .serviceTitles { + border-right: 1px solid #454544; } + body.theme2 .system-tasks .task-details-container .task-details-header .serviceTitles .serviceName, body.theme2 .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .serviceName { + color: #8ccdf5; } + body.theme2 .system-tasks .task-details-container .task-details-header .serviceTitles .customer, body.theme2 .tasks-notifications-container .task-details-container .task-details-header .serviceTitles .customer { + color: #aaa6d9; } + body.theme2 .system-tasks .task-details-container .task-details-header .dueDateGroup, body.theme2 .tasks-notifications-container .task-details-container .task-details-header .dueDateGroup { + border-right: 1px solid #454544; } + body.theme2 .system-tasks .task-details-container .task-details-header .description, body.theme2 .tasks-notifications-container .task-details-container .task-details-header .description { + border-color: #454544; } + body.theme2 .system-tasks .approve-btn:before, body.theme2 .tasks-notifications-container .approve-btn:before { + color: #9bdb69; } + body.theme2 .system-tasks .reject-btn:before, body.theme2 .tasks-notifications-container .reject-btn:before { + color: #ff7c54; } + body.theme2 .system-tasks .replan-btn:before, body.theme2 .tasks-notifications-container .replan-btn:before { + color: #8ccdf5; } + +[data-uxf-point="settings-cp-add"] { + background-color: #ecf1f5; + left: 30px; + padding-left: 30px; + position: absolute; + top: 270px; + width: 190px; } + [data-uxf-point="settings-cp-add"] button.ui-state-default.ui-button { + border: none; + position: relative; + text-align: left; + width: 150px; } + [data-uxf-point="settings-cp-add"] button.ui-state-default.ui-button:before { + font-family: FontAwesome; + content: '\f067'; + position: absolute; + left: 0px; + top: 8px; + font-size: 10px; } + [data-uxf-point="settings-cp-add"] button.ui-state-default.ui-button:hover { + border: none; } + +.settings[data-uxf-point="settings-view"] { + background-color: #e1e8f1; + height: 100%; + /* DataTables modifications */ } + .settings[data-uxf-point="settings-view"] .image-controllers { + background-color: #ecf1f5; + margin: 30px 30px 0px 0px; + text-align: right; + padding: 3px 10px 2px 0; + border-bottom: 1px solid rgba(168, 187, 220, 0.3); } + .settings[data-uxf-point="settings-view"] .image-controllers .controller { + margin-left: 20px; + cursor: pointer; + transition: color 0.4s; } + .settings[data-uxf-point="settings-view"] .image-controllers .controller:hover { + color: #419ef1; } + .settings[data-uxf-point="settings-view"] .image-controllers .controller .fa { + margin-right: 5px; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 { + background-color: #ecf1f5; + border: none; + left: 30px; + position: absolute; + top: 30px; + width: 220px; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3:after { + background-color: #ecf1f5; + content: ''; + height: 40px; + position: absolute; + right: -30px; + top: 0px; + width: 30px; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 .ui-state-disabled, + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 .ui-widget-content .ui-state-disabled, + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 .ui-widget-header .ui-state-disabled { + opacity: 1; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default { + border: none !important; + float: none; + line-height: 27px; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default.ui-tabs-active.ui-state-active { + color: #ff8a00; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default a.ui-tabs-anchor { + background-color: #ffffff; + display: block; + float: none; + margin: 5px 20px; + text-align: left; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default a.ui-tabs-anchor:hover { + text-decoration: underline; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default:nth-child(2) a.ui-tabs-anchor, + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default:nth-child(3) a.ui-tabs-anchor, + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default:nth-child(4) a.ui-tabs-anchor { + background-color: #ecf1f5; + margin: 0px 0px 0px 30px; } + .settings[data-uxf-point="settings-view"] .nfv-tabpanel .ui-tabs-panel { + border: none; + left: 280px; + position: absolute; + right: 10px; + background: transparent; } + .settings[data-uxf-point="settings-view"] #tabs-images .data-table-wrapper div.dataTables_wrapper { + top: 0px; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper div.dataTables_wrapper { + left: 0px; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper .dataTables_scroll { + background-color: #ecf1f5; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable.table-bordered { + border: none; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > tbody > tr > td, + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > thead > tr > th { + border: none; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > tbody > tr > td:nth-last-child(1) { + color: #ff7c54; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > tbody > tr > td:nth-last-child(2) { + border-left: solid 1px #a8bbdc; + color: #8ccdf5; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > tbody > tr > td:nth-last-child(-n+2) { + font-size: 20px; + text-align: center; + width: 20px; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > thead > tr > th { + border-bottom: solid 1px #a8bbdc; } + .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > thead > tr > th:hover { + background-color: transparent; } + +.add-setting-popup-module .form-container { + border-left: solid 3px #419ef1; + margin-bottom: 20px; + padding-left: 20px; } + .add-setting-popup-module .form-container + .nfv-primary-button { + float: right; } + .add-setting-popup-module .form-container .form-element { + margin-bottom: 15px; } + .add-setting-popup-module .form-container .form-element .form-element--label { + display: inline-block; + width: 200px; } + .add-setting-popup-module .form-container .form-element select { + padding-right: 10px; } + .add-setting-popup-module .form-container .form-element .form-element--control { + width: 290px; + box-sizing: content-box; + display: block; } + .add-setting-popup-module .form-container .form-element .form-element--error-message { + margin-left: 0px; } + +body.theme2 [data-uxf-point="settings-cp-add"] { + background-color: #333; } + +body.theme2 .settings[data-uxf-point="settings-view"] { + background-color: #232323; + /* DataTables modifications */ } + body.theme2 .settings[data-uxf-point="settings-view"] .image-controllers { + background-color: #333; + border-bottom: 1px solid #454544; } + body.theme2 .settings[data-uxf-point="settings-view"] .image-controllers .controller:hover { + color: #9bdb69; } + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 { + background-color: #333; } + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3:after { + background-color: #333; } + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default { + border: none !important; } + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default.ui-tabs-active.ui-state-active a.ui-tabs-anchor { + color: #9bdb69; } + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default a.ui-tabs-anchor { + background-color: #232323; } + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default:nth-child(2) a.ui-tabs-anchor, + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default:nth-child(3) a.ui-tabs-anchor, + body.theme2 .settings[data-uxf-point="settings-view"] .nfv-tabpanel .nfv-tabs-v3 li.ui-state-default:nth-child(4) a.ui-tabs-anchor { + background-color: #333; } + body.theme2 .settings[data-uxf-point="settings-view"] > tbody > tr > td:nth-last-child(2) { + border-left: solid 1px #2f2f2f; } + body.theme2 .settings[data-uxf-point="settings-view"] > thead > tr > th { + border-bottom: solid 1px #2f2f2f; + color: #aaa6d9; } + body.theme2 .settings[data-uxf-point="settings-view"] > thead > tr > th:hover { + background-color: transparent; } + body.theme2 .settings[data-uxf-point="settings-view"] .data-table-wrapper .dataTables_scroll { + background-color: #333; } + body.theme2 .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > tbody > tr > td:nth-last-child(1) { + color: #ff7c54; } + body.theme2 .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > tbody > tr > td:nth-last-child(2) { + border-left: solid 1px #2f2f2f; + color: #8ccdf5; } + body.theme2 .settings[data-uxf-point="settings-view"] .data-table-wrapper table.dataTable > thead > tr > th { + border-bottom: solid 1px #2f2f2f; + color: #aaa6d9; } + +body.theme2 .add-setting-popup-module .form-container { + border-left: solid 3px #454544; } + +.service-termination-view .service-termination-subtitle { + margin: 30px 0; } + +.service-termination-view .uxf-input select { + min-width: 200px; } + +.service-termination-view .service-termination-controllers { + margin-top: 30px; } + +.service-termination-view .nfv-button-link { + display: inline-block; + float: left; } + +.service-termination-view .nfv-primary-button { + display: inline-block; + float: right; } + +.confirmation-popup-view .confirmation-popup-subtitle { + margin-bottom: 30px; + padding-left: 42px; + padding-top: 15px; + height: 35px; } + .confirmation-popup-view .confirmation-popup-subtitle:before { + content: "\f071"; + margin-right: 12px; + font-family: FontAwesome; + font-size: 18px; } + +.confirmation-popup-view .confirmation-popup-message { + background: #fcf3d4; + display: inline-block; } + +.confirmation-popup-view .confirmation-popup-controllers { + margin-top: 10px; } + .confirmation-popup-view .confirmation-popup-controllers .confirmation-popup-button { + display: inline-block; } + .confirmation-popup-view .confirmation-popup-controllers .confirmation-popup-button.nfv-primary-button { + float: right; } + +.nfv-anonymous-landing-page .nfv-content { + min-height: 595px; } + +.nfv-landing-page .landing-page-content { + height: 100%; + position: relative; + transition: background-color 0.4s, color 0.4s; } + +.nfv-landing-page .landing-page-view { + bottom: 0px; + left: 0px; + position: absolute; + right: 0px; + top: 0px; } + .nfv-landing-page .landing-page-view h2 { + box-sizing: border-box; + color: #253244; + float: left; + padding: 16px 20px; + position: relative; + width: 27%; + transition: color 0.2s; } + .nfv-landing-page .landing-page-view h2:nth-child(2) { + border-left: solid 2px #a8bbdc; + width: 73%; } + .nfv-landing-page .landing-page-view h2 [data-uxf-point="add-service-button"] { + color: #ff7c54; + font-size: 18px; + position: absolute; + right: 75px; + top: 50%; + transform: translateY(-50%); } + .nfv-landing-page .landing-page-view h2 [data-uxf-point="add-service-button"] button { + border: none; + min-width: initial; + position: absolute; + right: -3px; + width: 18px; } + .nfv-landing-page .landing-page-view h2 .see-all-link { + position: absolute; + right: 10px; + top: 40%; + transform: translateY(-50%); } + .nfv-landing-page .landing-page-view .search-filter-input { + position: fixed; + left: 420px; + top: 22px; } + .nfv-landing-page .landing-page-view .search-filter-input i.fa { + cursor: pointer; } + .nfv-landing-page .landing-page-view .search-filter-input input[type="search"] { + color: #1a2531; + border-bottom-color: #1a2531; + opacity: 0; + transition: width 0.4s, opacity 0.4s; + width: 20px; } + .nfv-landing-page .landing-page-view .search-filter-input input[type="search"]:focus { + width: 150px; + opacity: 1; } + .nfv-landing-page .landing-page-view .lists-box { + bottom: 0px; + left: 0px; + position: absolute; + right: 3px; + top: 0px; } + .nfv-landing-page .landing-page-view .lists-box .events { + border-left: solid 2px #a8bbdc; + left: 27%; + width: 73%; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li { + display: table-row; + padding: 10px 20px; + transition: background-color 0.2s; + background-color: #ffffff; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li:nth-child(even) { + background-color: #ecf1f5; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li > * { + display: table-cell; + padding: 10px; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .status { + display: block; + font-size: 15px; + position: absolute; + right: 15px; + top: 20px; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .status.error { + color: #ff7c54; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .status.suspend { + color: #f7e385; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .event-message p { + position: relative; + display: block; + overflow: hidden; + height: 2.4em; + /* exactly two lines */ + line-height: 1.4; + margin: 0; + -webkit-box-orient: vertical; + display: -webkit-box; + -webkit-line-clamp: 2; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .event-message p:after { + /* fade out last line until multiline ellipsis (clamp) browsers' support */ + content: ""; + text-align: right; + position: absolute; + bottom: 0; + right: 0; + width: 40%; + height: 1.2em; + background: linear-gradient(to right, rgba(255, 255, 255, 0), #ffffff 80%); } + .nfv-landing-page .landing-page-view .lists-box .events ul > li:nth-child(even) .event-message p:after { + background: linear-gradient(to right, rgba(236, 241, 245, 0), #ecf1f5 80%); } + .nfv-landing-page .landing-page-view .lists-box .events ul > li time { + color: #253244; + text-align: center; + width: 80px; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .machine-id { + text-align: center; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .task-icon, .nfv-landing-page .landing-page-view .lists-box .events ul > li .type { + position: relative; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .task-icon:before, .nfv-landing-page .landing-page-view .lists-box .events ul > li .type:before { + position: absolute; + top: 50%; + transform: translateY(-50%); } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .task-icon { + color: #8ccdf5; + cursor: pointer; + font-size: 17px; + height: 30px; + width: 10px; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .task-icon.empty { + background: none; + cursor: default; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .task-icon.empty:before { + content: ''; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .type { + width: 20px; } + .nfv-landing-page .landing-page-view .lists-box .events ul > li .type:before { + transform: translateY(-45%); } + .nfv-landing-page .landing-page-view .lists-box .list { + border-top: solid 1px rgba(168, 187, 220, 0.3); + bottom: 20px; + overflow-y: scroll; + position: absolute; + top: 65px; + transition: border 0.2s; } + .nfv-landing-page .landing-page-view .lists-box .list::after, .nfv-landing-page .landing-page-view .lists-box .list::before { + background: rgba(0, 0, 0, 0.6); + bottom: inherit; + content: ''; + height: 50px; + opacity: 0; + position: fixed; + transform: scale(1, 0.5); + transform-origin: bottom; + transition: opacity 0.2s, transform 0.2s; + width: inherit; + z-index: 1; } + .nfv-landing-page .landing-page-view .lists-box .list::after { + -moz-animation: loader-spin 5s infinite linear; + -ms-animation: loader-spin 5s infinite linear; + -webkit-animation: loader-spin 5s infinite linear; + background-color: transparent; + color: white; + content: '\21bb'; + font-size: 40px; + text-align: center; + transform-origin: center; + z-index: 2; } + .nfv-landing-page .landing-page-view .lists-box .list.loader-on::after, .nfv-landing-page .landing-page-view .lists-box .list.loader-on::before { + opacity: 1; + transform: scale(1, 1); } + .nfv-landing-page .landing-page-view .lists-box .services { + width: 27%; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li { + border-left: 5px solid transparent; + border-bottom: solid 1px rgba(168, 187, 220, 0.3); + cursor: pointer; + padding: 10px; + position: relative; + transition: border 0.2s; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > h3 { + color: #253244; + transition: color 0.2s; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > label { + color: #1a2531; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > time { + display: block; + margin-top: 10px; + transition: color 0.2s; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li .machine-id { + color: #f4f6f1; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status { + display: block; + font-size: 17px; + position: absolute; + right: 17px; + top: 15px; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.active { + color: #9bdb69; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.error { + color: #e65353; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.new, .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.service-tree-created, .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.service-tree-approved { + color: #344358; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.workflow-created, .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.workflow-started { + color: #419ef1; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.suspended { + color: #419ef1; } + .nfv-landing-page .landing-page-view .lists-box .services ul > li > .status.terminated { + color: #a8bbdc; } + +body.theme2 .landing-page-view h2 { + color: #8ccdf5; } + body.theme2 .landing-page-view h2:nth-child(2) { + border-left: solid 2px #454544; } + body.theme2 .landing-page-view h2 .see-all-link span { + color: #f4f6f1; } + +body.theme2 .landing-page-view .search-filter-input input[type="search"] { + color: #b9bab5; + border-bottom-color: #454544; } + +body.theme2 .landing-page-view .lists-box .events { + border-left: solid 3px #454544; } + body.theme2 .landing-page-view .lists-box .events ul > li { + background-color: #232323; } + body.theme2 .landing-page-view .lists-box .events ul > li:nth-child(even) { + background-color: #292929; } + body.theme2 .landing-page-view .lists-box .events ul > li time { + color: #aaa6d9; } + body.theme2 .landing-page-view .lists-box .events ul > li .machine-id { + color: #f4f6f1; } + body.theme2 .landing-page-view .lists-box .events ul > li .event-message p:after { + background: linear-gradient(to right, rgba(35, 35, 35, 0), #232323 80%); } + body.theme2 .landing-page-view .lists-box .events ul > li:nth-child(even) .event-message p:after { + background: linear-gradient(to right, rgba(41, 41, 41, 0), #292929 80%); } + +body.theme2 .landing-page-view .lists-box .list { + border-top: solid 1px #454544; } + +body.theme2 .landing-page-view .lists-box .services ul > li { + border-bottom: solid 1px #454544; } + body.theme2 .landing-page-view .lists-box .services ul > li > label { + color: #f4f6f1; } + body.theme2 .landing-page-view .lists-box .services ul > li h3 { + color: #8ccdf5; } + body.theme2 .landing-page-view .lists-box .services ul > li > .status.active { + color: #9bdb69; } + body.theme2 .landing-page-view .lists-box .services ul > li > .status.error { + color: #ff7c54; } + body.theme2 .landing-page-view .lists-box .services ul > li > .status.new, body.theme2 .landing-page-view .lists-box .services ul > li > .status.service-tree-created, body.theme2 .landing-page-view .lists-box .services ul > li > .status.service-tree-approved { + color: #aaa6d9; } + body.theme2 .landing-page-view .lists-box .services ul > li > .status.workflow-created, body.theme2 .landing-page-view .lists-box .services ul > li > .status.workflow-started { + color: #8ccdf5; } + body.theme2 .landing-page-view .lists-box .services ul > li > .status.suspended { + color: #aaa6d9; } + body.theme2 .landing-page-view .lists-box .services ul > li > .status.terminated { + color: #b9bab5; } + +@-moz-keyframes loader-spin { + from { + transform: rotate(0deg); } + to { + transform: rotate(3600deg); } } + +@-ms-keyframes loader-spin { + from { + transform: rotate(0deg); } + to { + transform: rotate(3600deg); } } + +@-webkit-keyframes loader-spin { + from { + transform: rotate(0deg); } + to { + transform: rotate(3600deg); } } + +.graph-simulator-page h1, .graph-simulator-page h2, .graph-simulator-page h3, .graph-simulator-page h4 { + margin: 10px; } + +.graph-simulator-page .simulator-content { + padding-top: 20px; + padding-left: 20px; } + +.graph-simulator-page .input-label-first-fieldset { + min-width: 150px; } + +.graph-simulator-page .input-label-second-fieldset { + min-width: 150px; } + +.graph-simulator-page .first-fieldset, .graph-simulator-page .second-fieldset { + display: inline-block; + vertical-align: top; } + +.graph-simulator-page .warning { + color: red; } + +.graph-simulator-page .nfv-checkbox-button { + margin: 13px; } + +.graph-simulator-page .nfv-primary-button { + margin-bottom: 13px; } + +/*# sourceMappingURL=style.css.map */ \ No newline at end of file diff --git a/openecomp-be/tools/swagger-ui/css/print.css b/openecomp-be/tools/swagger-ui/css/print.css new file mode 100644 index 0000000000..c90e9f568e --- /dev/null +++ b/openecomp-be/tools/swagger-ui/css/print.css @@ -0,0 +1,1175 @@ +/* Original style from softwaremaniacs.org (c) Ivan Sagalaev */ +.swagger-section pre code { + display: block; + padding: 0.5em; + background: #F0F0F0; +} +.swagger-section pre code, +.swagger-section pre .subst, +.swagger-section pre .tag .title, +.swagger-section pre .lisp .title, +.swagger-section pre .clojure .built_in, +.swagger-section pre .nginx .title { + color: black; +} +.swagger-section pre .string, +.swagger-section pre .title, +.swagger-section pre .constant, +.swagger-section pre .parent, +.swagger-section pre .tag .value, +.swagger-section pre .rules .value, +.swagger-section pre .rules .value .number, +.swagger-section pre .preprocessor, +.swagger-section pre .ruby .symbol, +.swagger-section pre .ruby .symbol .string, +.swagger-section pre .aggregate, +.swagger-section pre .template_tag, +.swagger-section pre .django .variable, +.swagger-section pre .smalltalk .class, +.swagger-section pre .addition, +.swagger-section pre .flow, +.swagger-section pre .stream, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .apache .cbracket, +.swagger-section pre .tex .command, +.swagger-section pre .tex .special, +.swagger-section pre .erlang_repl .function_or_atom, +.swagger-section pre .markdown .header { + color: #800; +} +.swagger-section pre .comment, +.swagger-section pre .annotation, +.swagger-section pre .template_comment, +.swagger-section pre .diff .header, +.swagger-section pre .chunk, +.swagger-section pre .markdown .blockquote { + color: #888; +} +.swagger-section pre .number, +.swagger-section pre .date, +.swagger-section pre .regexp, +.swagger-section pre .literal, +.swagger-section pre .smalltalk .symbol, +.swagger-section pre .smalltalk .char, +.swagger-section pre .go .constant, +.swagger-section pre .change, +.swagger-section pre .markdown .bullet, +.swagger-section pre .markdown .link_url { + color: #080; +} +.swagger-section pre .label, +.swagger-section pre .javadoc, +.swagger-section pre .ruby .string, +.swagger-section pre .decorator, +.swagger-section pre .filter .argument, +.swagger-section pre .localvars, +.swagger-section pre .array, +.swagger-section pre .attr_selector, +.swagger-section pre .important, +.swagger-section pre .pseudo, +.swagger-section pre .pi, +.swagger-section pre .doctype, +.swagger-section pre .deletion, +.swagger-section pre .envvar, +.swagger-section pre .shebang, +.swagger-section pre .apache .sqbracket, +.swagger-section pre .nginx .built_in, +.swagger-section pre .tex .formula, +.swagger-section pre .erlang_repl .reserved, +.swagger-section pre .prompt, +.swagger-section pre .markdown .link_label, +.swagger-section pre .vhdl .attribute, +.swagger-section pre .clojure .attribute, +.swagger-section pre .coffeescript .property { + color: #8888ff; +} +.swagger-section pre .keyword, +.swagger-section pre .id, +.swagger-section pre .phpdoc, +.swagger-section pre .title, +.swagger-section pre .built_in, +.swagger-section pre .aggregate, +.swagger-section pre .css .tag, +.swagger-section pre .javadoctag, +.swagger-section pre .phpdoc, +.swagger-section pre .yardoctag, +.swagger-section pre .smalltalk .class, +.swagger-section pre .winutils, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .go .typename, +.swagger-section pre .tex .command, +.swagger-section pre .markdown .strong, +.swagger-section pre .request, +.swagger-section pre .status { + font-weight: bold; +} +.swagger-section pre .markdown .emphasis { + font-style: italic; +} +.swagger-section pre .nginx .built_in { + font-weight: normal; +} +.swagger-section pre .coffeescript .javascript, +.swagger-section pre .javascript .xml, +.swagger-section pre .tex .formula, +.swagger-section pre .xml .javascript, +.swagger-section pre .xml .vbscript, +.swagger-section pre .xml .css, +.swagger-section pre .xml .cdata { + opacity: 0.5; +} +.swagger-section .swagger-ui-wrap { + line-height: 1; + font-family: "Droid Sans", sans-serif; + max-width: 960px; + margin-left: auto; + margin-right: auto; +} +.swagger-section .swagger-ui-wrap b, +.swagger-section .swagger-ui-wrap strong { + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap q, +.swagger-section .swagger-ui-wrap blockquote { + quotes: none; +} +.swagger-section .swagger-ui-wrap p { + line-height: 1.4em; + padding: 0 0 10px; + color: #333333; +} +.swagger-section .swagger-ui-wrap q:before, +.swagger-section .swagger-ui-wrap q:after, +.swagger-section .swagger-ui-wrap blockquote:before, +.swagger-section .swagger-ui-wrap blockquote:after { + content: none; +} +.swagger-section .swagger-ui-wrap .heading_with_menu h1, +.swagger-section .swagger-ui-wrap .heading_with_menu h2, +.swagger-section .swagger-ui-wrap .heading_with_menu h3, +.swagger-section .swagger-ui-wrap .heading_with_menu h4, +.swagger-section .swagger-ui-wrap .heading_with_menu h5, +.swagger-section .swagger-ui-wrap .heading_with_menu h6 { + display: block; + clear: none; + float: left; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width: 60%; +} +.swagger-section .swagger-ui-wrap table { + border-collapse: collapse; + border-spacing: 0; +} +.swagger-section .swagger-ui-wrap table thead tr th { + padding: 5px; + font-size: 0.9em; + color: #666666; + border-bottom: 1px solid #999999; +} +.swagger-section .swagger-ui-wrap table tbody tr:last-child td { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap table tbody tr.offset { + background-color: #f0f0f0; +} +.swagger-section .swagger-ui-wrap table tbody tr td { + padding: 6px; + font-size: 0.9em; + border-bottom: 1px solid #cccccc; + vertical-align: top; + line-height: 1.3em; +} +.swagger-section .swagger-ui-wrap ol { + margin: 0px 0 10px; + padding: 0 0 0 18px; + list-style-type: decimal; +} +.swagger-section .swagger-ui-wrap ol li { + padding: 5px 0px; + font-size: 0.9em; + color: #333333; +} +.swagger-section .swagger-ui-wrap ol, +.swagger-section .swagger-ui-wrap ul { + list-style: none; +} +.swagger-section .swagger-ui-wrap h1 a, +.swagger-section .swagger-ui-wrap h2 a, +.swagger-section .swagger-ui-wrap h3 a, +.swagger-section .swagger-ui-wrap h4 a, +.swagger-section .swagger-ui-wrap h5 a, +.swagger-section .swagger-ui-wrap h6 a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap h1 a:hover, +.swagger-section .swagger-ui-wrap h2 a:hover, +.swagger-section .swagger-ui-wrap h3 a:hover, +.swagger-section .swagger-ui-wrap h4 a:hover, +.swagger-section .swagger-ui-wrap h5 a:hover, +.swagger-section .swagger-ui-wrap h6 a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap h1 span.divider, +.swagger-section .swagger-ui-wrap h2 span.divider, +.swagger-section .swagger-ui-wrap h3 span.divider, +.swagger-section .swagger-ui-wrap h4 span.divider, +.swagger-section .swagger-ui-wrap h5 span.divider, +.swagger-section .swagger-ui-wrap h6 span.divider { + color: #aaaaaa; +} +.swagger-section .swagger-ui-wrap a { + color: #547f00; +} +.swagger-section .swagger-ui-wrap a img { + border: none; +} +.swagger-section .swagger-ui-wrap article, +.swagger-section .swagger-ui-wrap aside, +.swagger-section .swagger-ui-wrap details, +.swagger-section .swagger-ui-wrap figcaption, +.swagger-section .swagger-ui-wrap figure, +.swagger-section .swagger-ui-wrap footer, +.swagger-section .swagger-ui-wrap header, +.swagger-section .swagger-ui-wrap hgroup, +.swagger-section .swagger-ui-wrap menu, +.swagger-section .swagger-ui-wrap nav, +.swagger-section .swagger-ui-wrap section, +.swagger-section .swagger-ui-wrap summary { + display: block; +} +.swagger-section .swagger-ui-wrap pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; +} +.swagger-section .swagger-ui-wrap pre code { + line-height: 1.6em; + background: none; +} +.swagger-section .swagger-ui-wrap .content > .content-type > div > label { + clear: both; + display: block; + color: #0F6AB4; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap .content pre { + font-size: 12px; + margin-top: 5px; + padding: 5px; +} +.swagger-section .swagger-ui-wrap .icon-btn { + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .info_title { + padding-bottom: 10px; + font-weight: bold; + font-size: 25px; +} +.swagger-section .swagger-ui-wrap .footer { + margin-top: 20px; +} +.swagger-section .swagger-ui-wrap p.big, +.swagger-section .swagger-ui-wrap div.big p { + font-size: 1em; + margin-bottom: 10px; +} +.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input { + width: 500px !important; +} +.swagger-section .swagger-ui-wrap .info_license { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_tos { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .message-fail { + color: #cc0000; +} +.swagger-section .swagger-ui-wrap .info_url { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_email { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_name { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_description { + padding-bottom: 10px; + font-size: 15px; +} +.swagger-section .swagger-ui-wrap .markdown ol li, +.swagger-section .swagger-ui-wrap .markdown ul li { + padding: 3px 0px; + line-height: 1.4em; + color: #333333; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input { + display: block; + padding: 4px; + width: auto; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title { + font-size: 1.3em; +} +.swagger-section .swagger-ui-wrap table.fullwidth { + width: 100%; +} +.swagger-section .swagger-ui-wrap .model-signature { + font-family: "Droid Sans", sans-serif; + font-size: 1em; + line-height: 1.5em; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a { + text-decoration: none; + color: #AAA; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap .model-signature .propType { + color: #5555aa; +} +.swagger-section .swagger-ui-wrap .model-signature pre:hover { + background-color: #ffffdd; +} +.swagger-section .swagger-ui-wrap .model-signature pre { + font-size: .85em; + line-height: 1.2em; + overflow: auto; + max-height: 200px; + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav { + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li { + float: left; + margin: 0 5px 5px 0; + padding: 2px 5px 2px 0; + border-right: 1px solid #ddd; +} +.swagger-section .swagger-ui-wrap .model-signature .propOpt { + color: #555; +} +.swagger-section .swagger-ui-wrap .model-signature .snippet small { + font-size: 0.75em; +} +.swagger-section .swagger-ui-wrap .model-signature .propOptKey { + font-style: italic; +} +.swagger-section .swagger-ui-wrap .model-signature .description .strong { + font-weight: bold; + color: #000; + font-size: .9em; +} +.swagger-section .swagger-ui-wrap .model-signature .description div { + font-size: 0.9em; + line-height: 1.5em; + margin-left: 1em; +} +.swagger-section .swagger-ui-wrap .model-signature .description .stronger { + font-weight: bold; + color: #000; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper { + border-spacing: 0; + position: absolute; + background-color: #ffffff; + border: 1px solid #bbbbbb; + display: none; + font-size: 11px; + max-width: 400px; + line-height: 30px; + color: black; + padding: 5px; + margin-left: 10px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th { + text-align: center; + background-color: #eeeeee; + border: 1px solid #bbbbbb; + font-size: 11px; + color: #666666; + font-weight: bold; + padding: 5px; + line-height: 15px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:first-child, +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:last-child { + display: inline; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:not(:first-child):before { + display: block; + content: ''; +} +.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown > p:only-child { + margin-right: -3px; +} +.swagger-section .swagger-ui-wrap .model-signature .propName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-container { + clear: both; +} +.swagger-section .swagger-ui-wrap .body-textarea { + width: 300px; + height: 100px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap .markdown p code, +.swagger-section .swagger-ui-wrap .markdown li code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #f0f0f0; + color: black; + padding: 1px 3px; +} +.swagger-section .swagger-ui-wrap .required { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap input.parameter { + width: 300px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap h1 { + color: black; + font-size: 1.5em; + line-height: 1.3em; + padding: 10px 0 10px 0; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .heading_with_menu { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap .heading_with_menu ul { + display: block; + clear: none; + float: right; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; +} +.swagger-section .swagger-ui-wrap h2 { + color: black; + font-size: 1.3em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap h2 span.sub { + font-size: 0.7em; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap h2 span.sub a { + color: #777777; +} +.swagger-section .swagger-ui-wrap span.weak { + color: #666666; +} +.swagger-section .swagger-ui-wrap .message-success { + color: #89BF04; +} +.swagger-section .swagger-ui-wrap caption, +.swagger-section .swagger-ui-wrap th, +.swagger-section .swagger-ui-wrap td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} +.swagger-section .swagger-ui-wrap .code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea { + font-family: "Droid Sans", sans-serif; + height: 250px; + padding: 4px; + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select { + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label { + display: block; + float: left; + clear: none; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input { + display: block; + float: left; + clear: none; + margin: 0 5px 0 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label { + color: black; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label { + display: block; + clear: both; + width: auto; + padding: 0 0 3px; + color: #666666; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr { + padding-left: 3px; + color: #888888; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints { + margin-left: 0; + font-style: italic; + font-size: 0.9em; + margin: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap span.blank, +.swagger-section .swagger-ui-wrap span.empty { + color: #888888; + font-style: italic; +} +.swagger-section .swagger-ui-wrap .markdown h3 { + color: #547f00; +} +.swagger-section .swagger-ui-wrap .markdown h4 { + color: #666666; +} +.swagger-section .swagger-ui-wrap .markdown pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; + margin: 0 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown pre code { + line-height: 1.6em; +} +.swagger-section .swagger-ui-wrap div.gist { + margin: 20px 0 25px 0 !important; +} +.swagger-section .swagger-ui-wrap ul#resources { + font-family: "Droid Sans", sans-serif; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource { + border-bottom: 1px solid #dddddd; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a { + color: #555555; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading { + border: 1px solid transparent; + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 14px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; + color: #666666; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a { + color: #aaaaaa; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { + color: #999999; + padding-left: 0; + display: block; + clear: none; + float: left; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { + color: #999999; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path { + padding-left: 10px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a { + text-transform: uppercase; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 { + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a { + padding: 4px 0 0 10px; + display: inline-block; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber { + background-image: url('../images/throbber.gif'); + width: 128px; + height: 16px; + display: block; + clear: none; + float: right; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form select[name='parameterContentType'] { + max-width: 300px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading { + background-color: #f9f2e9; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a { + background-color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0e0ca; + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content { + background-color: #faf5ee; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #ffd20f; + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading { + background-color: #f5e8e8; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #e8c6c7; + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + background-color: #f7eded; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a { + color: #c8787a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading { + background-color: #e7f6ec; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a { + background-color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3e8d1; + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content { + background-color: #ebf7f0; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading { + background-color: #FCE9E3; + border: 1px solid #F5D5C3; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a { + background-color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0cecb; + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content { + background-color: #faf0ef; + border: 1px solid #f0cecb; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + border-top: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap p#colophon { + margin: 0 15px 40px 15px; + padding: 10px 0; + font-size: 0.8em; + border-top: 1px solid #dddddd; + font-family: "Droid Sans", sans-serif; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap p#colophon a { + text-decoration: none; + color: #547f00; +} +.swagger-section .swagger-ui-wrap h3 { + color: black; + font-size: 1.1em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown ol, +.swagger-section .swagger-ui-wrap .markdown ul { + font-family: "Droid Sans", sans-serif; + margin: 5px 0 10px; + padding: 0 0 0 18px; + list-style-type: disc; +} +.swagger-section .swagger-ui-wrap form.form_box { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box label { + color: #0f6ab4 !important; +} +.swagger-section .swagger-ui-wrap form.form_box input[type=submit] { + display: block; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box p.weak { + font-size: 0.8em; +} +.swagger-section .swagger-ui-wrap form.form_box p { + font-size: 0.9em; + padding: 0 0 15px; + color: #7e7b6d; +} +.swagger-section .swagger-ui-wrap form.form_box p a { + color: #646257; +} +.swagger-section .swagger-ui-wrap form.form_box p strong { + color: black; +} +.swagger-section .swagger-ui-wrap .operation-status td.markdown > p:last-child { + padding-bottom: 0; +} +.swagger-section .title { + font-style: bold; +} +.swagger-section .secondary_form { + display: none; +} +.swagger-section .main_image { + display: block; + margin-left: auto; + margin-right: auto; +} +.swagger-section .oauth_body { + margin-left: 100px; + margin-right: 100px; +} +.swagger-section .oauth_submit { + text-align: center; +} +.swagger-section .api-popup-dialog { + z-index: 10000; + position: absolute; + width: 500px; + background: #FFF; + padding: 20px; + border: 1px solid #ccc; + border-radius: 5px; + display: none; + font-size: 13px; + color: #777; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog p.error-msg { + padding-left: 5px; + padding-bottom: 5px; +} +.swagger-section .api-popup-dialog button.api-popup-authbtn { + height: 30px; +} +.swagger-section .api-popup-dialog button.api-popup-cancel { + height: 30px; +} +.swagger-section .api-popup-scopes { + padding: 10px 20px; +} +.swagger-section .api-popup-scopes li { + padding: 5px 0; + line-height: 20px; +} +.swagger-section .api-popup-scopes .api-scope-desc { + padding-left: 20px; + font-style: italic; +} +.swagger-section .api-popup-scopes li input { + position: relative; + top: 2px; +} +.swagger-section .api-popup-actions { + padding-top: 10px; +} +#header { + display: none; +} +.swagger-section .swagger-ui-wrap .model-signature pre { + max-height: none; +} +.swagger-section .swagger-ui-wrap .body-textarea { + width: 100px; +} +.swagger-section .swagger-ui-wrap input.parameter { + width: 100px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { + display: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints { + display: block !important; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { + display: block !important; +} diff --git a/openecomp-be/tools/swagger-ui/css/reset.css b/openecomp-be/tools/swagger-ui/css/reset.css new file mode 100644 index 0000000000..b2b078943c --- /dev/null +++ b/openecomp-be/tools/swagger-ui/css/reset.css @@ -0,0 +1,125 @@ +/* http://meyerweb.com/eric/tools/css/reset/ v2.0 | 20110126 */ +html, +body, +div, +span, +applet, +object, +iframe, +h1, +h2, +h3, +h4, +h5, +h6, +p, +blockquote, +pre, +a, +abbr, +acronym, +address, +big, +cite, +code, +del, +dfn, +em, +img, +ins, +kbd, +q, +s, +samp, +small, +strike, +strong, +sub, +sup, +tt, +var, +b, +u, +i, +center, +dl, +dt, +dd, +ol, +ul, +li, +fieldset, +form, +label, +legend, +table, +caption, +tbody, +tfoot, +thead, +tr, +th, +td, +article, +aside, +canvas, +details, +embed, +figure, +figcaption, +footer, +header, +hgroup, +menu, +nav, +output, +ruby, +section, +summary, +time, +mark, +audio, +video { + margin: 0; + padding: 0; + border: 0; + font-size: 100%; + font: inherit; + vertical-align: baseline; +} +/* HTML5 display-role reset for older browsers */ +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +menu, +nav, +section { + display: block; +} +body { + line-height: 1; +} +ol, +ul { + list-style: none; +} +blockquote, +q { + quotes: none; +} +blockquote:before, +blockquote:after, +q:before, +q:after { + content: ''; + content: none; +} +table { + border-collapse: collapse; + border-spacing: 0; +} diff --git a/openecomp-be/tools/swagger-ui/css/screen.css b/openecomp-be/tools/swagger-ui/css/screen.css new file mode 100644 index 0000000000..96f54548c0 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/css/screen.css @@ -0,0 +1,1282 @@ +/* Original style from softwaremaniacs.org (c) Ivan Sagalaev */ +.swagger-section pre code { + display: block; + padding: 0.5em; + background: #F0F0F0; +} +.swagger-section pre code, +.swagger-section pre .subst, +.swagger-section pre .tag .title, +.swagger-section pre .lisp .title, +.swagger-section pre .clojure .built_in, +.swagger-section pre .nginx .title { + color: black; +} +.swagger-section pre .string, +.swagger-section pre .title, +.swagger-section pre .constant, +.swagger-section pre .parent, +.swagger-section pre .tag .value, +.swagger-section pre .rules .value, +.swagger-section pre .rules .value .number, +.swagger-section pre .preprocessor, +.swagger-section pre .ruby .symbol, +.swagger-section pre .ruby .symbol .string, +.swagger-section pre .aggregate, +.swagger-section pre .template_tag, +.swagger-section pre .django .variable, +.swagger-section pre .smalltalk .class, +.swagger-section pre .addition, +.swagger-section pre .flow, +.swagger-section pre .stream, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .apache .cbracket, +.swagger-section pre .tex .command, +.swagger-section pre .tex .special, +.swagger-section pre .erlang_repl .function_or_atom, +.swagger-section pre .markdown .header { + color: #800; +} +.swagger-section pre .comment, +.swagger-section pre .annotation, +.swagger-section pre .template_comment, +.swagger-section pre .diff .header, +.swagger-section pre .chunk, +.swagger-section pre .markdown .blockquote { + color: #888; +} +.swagger-section pre .number, +.swagger-section pre .date, +.swagger-section pre .regexp, +.swagger-section pre .literal, +.swagger-section pre .smalltalk .symbol, +.swagger-section pre .smalltalk .char, +.swagger-section pre .go .constant, +.swagger-section pre .change, +.swagger-section pre .markdown .bullet, +.swagger-section pre .markdown .link_url { + color: #080; +} +.swagger-section pre .label, +.swagger-section pre .javadoc, +.swagger-section pre .ruby .string, +.swagger-section pre .decorator, +.swagger-section pre .filter .argument, +.swagger-section pre .localvars, +.swagger-section pre .array, +.swagger-section pre .attr_selector, +.swagger-section pre .important, +.swagger-section pre .pseudo, +.swagger-section pre .pi, +.swagger-section pre .doctype, +.swagger-section pre .deletion, +.swagger-section pre .envvar, +.swagger-section pre .shebang, +.swagger-section pre .apache .sqbracket, +.swagger-section pre .nginx .built_in, +.swagger-section pre .tex .formula, +.swagger-section pre .erlang_repl .reserved, +.swagger-section pre .prompt, +.swagger-section pre .markdown .link_label, +.swagger-section pre .vhdl .attribute, +.swagger-section pre .clojure .attribute, +.swagger-section pre .coffeescript .property { + color: #8888ff; +} +.swagger-section pre .keyword, +.swagger-section pre .id, +.swagger-section pre .phpdoc, +.swagger-section pre .title, +.swagger-section pre .built_in, +.swagger-section pre .aggregate, +.swagger-section pre .css .tag, +.swagger-section pre .javadoctag, +.swagger-section pre .phpdoc, +.swagger-section pre .yardoctag, +.swagger-section pre .smalltalk .class, +.swagger-section pre .winutils, +.swagger-section pre .bash .variable, +.swagger-section pre .apache .tag, +.swagger-section pre .go .typename, +.swagger-section pre .tex .command, +.swagger-section pre .markdown .strong, +.swagger-section pre .request, +.swagger-section pre .status { + font-weight: bold; +} +.swagger-section pre .markdown .emphasis { + font-style: italic; +} +.swagger-section pre .nginx .built_in { + font-weight: normal; +} +.swagger-section pre .coffeescript .javascript, +.swagger-section pre .javascript .xml, +.swagger-section pre .tex .formula, +.swagger-section pre .xml .javascript, +.swagger-section pre .xml .vbscript, +.swagger-section pre .xml .css, +.swagger-section pre .xml .cdata { + opacity: 0.5; +} +.swagger-section .swagger-ui-wrap { + line-height: 1; + font-family: "Droid Sans", sans-serif; + max-width: 960px; + margin-left: auto; + margin-right: auto; +} +.swagger-section .swagger-ui-wrap b, +.swagger-section .swagger-ui-wrap strong { + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap q, +.swagger-section .swagger-ui-wrap blockquote { + quotes: none; +} +.swagger-section .swagger-ui-wrap p { + line-height: 1.4em; + padding: 0 0 10px; + color: #333333; +} +.swagger-section .swagger-ui-wrap q:before, +.swagger-section .swagger-ui-wrap q:after, +.swagger-section .swagger-ui-wrap blockquote:before, +.swagger-section .swagger-ui-wrap blockquote:after { + content: none; +} +.swagger-section .swagger-ui-wrap .heading_with_menu h1, +.swagger-section .swagger-ui-wrap .heading_with_menu h2, +.swagger-section .swagger-ui-wrap .heading_with_menu h3, +.swagger-section .swagger-ui-wrap .heading_with_menu h4, +.swagger-section .swagger-ui-wrap .heading_with_menu h5, +.swagger-section .swagger-ui-wrap .heading_with_menu h6 { + display: block; + clear: none; + float: left; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + width: 60%; +} +.swagger-section .swagger-ui-wrap table { + border-collapse: collapse; + border-spacing: 0; +} +.swagger-section .swagger-ui-wrap table thead tr th { + padding: 5px; + font-size: 0.9em; + color: #666666; + border-bottom: 1px solid #999999; +} +.swagger-section .swagger-ui-wrap table tbody tr:last-child td { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap table tbody tr.offset { + background-color: #f0f0f0; +} +.swagger-section .swagger-ui-wrap table tbody tr td { + padding: 6px; + font-size: 0.9em; + border-bottom: 1px solid #cccccc; + vertical-align: top; + line-height: 1.3em; +} +.swagger-section .swagger-ui-wrap ol { + margin: 0px 0 10px; + padding: 0 0 0 18px; + list-style-type: decimal; +} +.swagger-section .swagger-ui-wrap ol li { + padding: 5px 0px; + font-size: 0.9em; + color: #333333; +} +.swagger-section .swagger-ui-wrap ol, +.swagger-section .swagger-ui-wrap ul { + list-style: none; +} +.swagger-section .swagger-ui-wrap h1 a, +.swagger-section .swagger-ui-wrap h2 a, +.swagger-section .swagger-ui-wrap h3 a, +.swagger-section .swagger-ui-wrap h4 a, +.swagger-section .swagger-ui-wrap h5 a, +.swagger-section .swagger-ui-wrap h6 a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap h1 a:hover, +.swagger-section .swagger-ui-wrap h2 a:hover, +.swagger-section .swagger-ui-wrap h3 a:hover, +.swagger-section .swagger-ui-wrap h4 a:hover, +.swagger-section .swagger-ui-wrap h5 a:hover, +.swagger-section .swagger-ui-wrap h6 a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap h1 span.divider, +.swagger-section .swagger-ui-wrap h2 span.divider, +.swagger-section .swagger-ui-wrap h3 span.divider, +.swagger-section .swagger-ui-wrap h4 span.divider, +.swagger-section .swagger-ui-wrap h5 span.divider, +.swagger-section .swagger-ui-wrap h6 span.divider { + color: #aaaaaa; +} +.swagger-section .swagger-ui-wrap a { + color: #547f00; +} +.swagger-section .swagger-ui-wrap a img { + border: none; +} +.swagger-section .swagger-ui-wrap article, +.swagger-section .swagger-ui-wrap aside, +.swagger-section .swagger-ui-wrap details, +.swagger-section .swagger-ui-wrap figcaption, +.swagger-section .swagger-ui-wrap figure, +.swagger-section .swagger-ui-wrap footer, +.swagger-section .swagger-ui-wrap header, +.swagger-section .swagger-ui-wrap hgroup, +.swagger-section .swagger-ui-wrap menu, +.swagger-section .swagger-ui-wrap nav, +.swagger-section .swagger-ui-wrap section, +.swagger-section .swagger-ui-wrap summary { + display: block; +} +.swagger-section .swagger-ui-wrap pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; +} +.swagger-section .swagger-ui-wrap pre code { + line-height: 1.6em; + background: none; +} +.swagger-section .swagger-ui-wrap .content > .content-type > div > label { + clear: both; + display: block; + color: #0F6AB4; + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap .content pre { + font-size: 12px; + margin-top: 5px; + padding: 5px; +} +.swagger-section .swagger-ui-wrap .icon-btn { + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .info_title { + padding-bottom: 10px; + font-weight: bold; + font-size: 25px; +} +.swagger-section .swagger-ui-wrap .footer { + margin-top: 20px; +} +.swagger-section .swagger-ui-wrap p.big, +.swagger-section .swagger-ui-wrap div.big p { + font-size: 1em; + margin-bottom: 10px; +} +.swagger-section .swagger-ui-wrap form.fullwidth ol li.string input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.url input, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.text textarea, +.swagger-section .swagger-ui-wrap form.fullwidth ol li.numeric input { + width: 500px !important; +} +.swagger-section .swagger-ui-wrap .info_license { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_tos { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .message-fail { + color: #cc0000; +} +.swagger-section .swagger-ui-wrap .info_url { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_email { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_name { + padding-bottom: 5px; +} +.swagger-section .swagger-ui-wrap .info_description { + padding-bottom: 10px; + font-size: 15px; +} +.swagger-section .swagger-ui-wrap .markdown ol li, +.swagger-section .swagger-ui-wrap .markdown ul li { + padding: 3px 0px; + line-height: 1.4em; + color: #333333; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input { + display: block; + padding: 4px; + width: auto; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.string input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.url input.title, +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.numeric input.title { + font-size: 1.3em; +} +.swagger-section .swagger-ui-wrap table.fullwidth { + width: 100%; +} +.swagger-section .swagger-ui-wrap .model-signature { + font-family: "Droid Sans", sans-serif; + font-size: 1em; + line-height: 1.5em; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a { + text-decoration: none; + color: #AAA; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-nav .selected { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap .model-signature .propType { + color: #5555aa; +} +.swagger-section .swagger-ui-wrap .model-signature pre:hover { + background-color: #ffffdd; +} +.swagger-section .swagger-ui-wrap .model-signature pre { + font-size: .85em; + line-height: 1.2em; + overflow: auto; + max-height: 200px; + cursor: pointer; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav { + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li:last-child { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap .model-signature ul.signature-nav li { + float: left; + margin: 0 5px 5px 0; + padding: 2px 5px 2px 0; + border-right: 1px solid #ddd; +} +.swagger-section .swagger-ui-wrap .model-signature .propOpt { + color: #555; +} +.swagger-section .swagger-ui-wrap .model-signature .snippet small { + font-size: 0.75em; +} +.swagger-section .swagger-ui-wrap .model-signature .propOptKey { + font-style: italic; +} +.swagger-section .swagger-ui-wrap .model-signature .description .strong { + font-weight: bold; + color: #000; + font-size: .9em; +} +.swagger-section .swagger-ui-wrap .model-signature .description div { + font-size: 0.9em; + line-height: 1.5em; + margin-left: 1em; +} +.swagger-section .swagger-ui-wrap .model-signature .description .stronger { + font-weight: bold; + color: #000; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper { + border-spacing: 0; + position: absolute; + background-color: #ffffff; + border: 1px solid #bbbbbb; + display: none; + font-size: 11px; + max-width: 400px; + line-height: 30px; + color: black; + padding: 5px; + margin-left: 10px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper th { + text-align: center; + background-color: #eeeeee; + border: 1px solid #bbbbbb; + font-size: 11px; + color: #666666; + font-weight: bold; + padding: 5px; + line-height: 15px; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propWrap .optionsWrapper .optionName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:first-child, +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:last-child { + display: inline; +} +.swagger-section .swagger-ui-wrap .model-signature .description .propDesc.markdown > p:not(:first-child):before { + display: block; + content: ''; +} +.swagger-section .swagger-ui-wrap .model-signature .description span:last-of-type.propDesc.markdown > p:only-child { + margin-right: -3px; +} +.swagger-section .swagger-ui-wrap .model-signature .propName { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .model-signature .signature-container { + clear: both; +} +.swagger-section .swagger-ui-wrap .body-textarea { + width: 300px; + height: 100px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap .markdown p code, +.swagger-section .swagger-ui-wrap .markdown li code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #f0f0f0; + color: black; + padding: 1px 3px; +} +.swagger-section .swagger-ui-wrap .required { + font-weight: bold; +} +.swagger-section .swagger-ui-wrap input.parameter { + width: 300px; + border: 1px solid #aaa; +} +.swagger-section .swagger-ui-wrap h1 { + color: black; + font-size: 1.5em; + line-height: 1.3em; + padding: 10px 0 10px 0; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap .heading_with_menu { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap .heading_with_menu ul { + display: block; + clear: none; + float: right; + -moz-box-sizing: border-box; + -webkit-box-sizing: border-box; + -ms-box-sizing: border-box; + box-sizing: border-box; + margin-top: 10px; +} +.swagger-section .swagger-ui-wrap h2 { + color: black; + font-size: 1.3em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap h2 span.sub { + font-size: 0.7em; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap h2 span.sub a { + color: #777777; +} +.swagger-section .swagger-ui-wrap span.weak { + color: #666666; +} +.swagger-section .swagger-ui-wrap .message-success { + color: #89BF04; +} +.swagger-section .swagger-ui-wrap caption, +.swagger-section .swagger-ui-wrap th, +.swagger-section .swagger-ui-wrap td { + text-align: left; + font-weight: normal; + vertical-align: middle; +} +.swagger-section .swagger-ui-wrap .code { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.text textarea { + font-family: "Droid Sans", sans-serif; + height: 250px; + padding: 4px; + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.select select { + display: block; + clear: both; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean label { + display: block; + float: left; + clear: none; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.boolean input { + display: block; + float: left; + clear: none; + margin: 0 5px 0 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li.required label { + color: black; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label { + display: block; + clear: both; + width: auto; + padding: 0 0 3px; + color: #666666; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li label abbr { + padding-left: 3px; + color: #888888; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.inputs ol li p.inline-hints { + margin-left: 0; + font-style: italic; + font-size: 0.9em; + margin: 0; +} +.swagger-section .swagger-ui-wrap form.formtastic fieldset.buttons { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap span.blank, +.swagger-section .swagger-ui-wrap span.empty { + color: #888888; + font-style: italic; +} +.swagger-section .swagger-ui-wrap .markdown h3 { + color: #547f00; +} +.swagger-section .swagger-ui-wrap .markdown h4 { + color: #666666; +} +.swagger-section .swagger-ui-wrap .markdown pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + padding: 10px; + margin: 0 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown pre code { + line-height: 1.6em; +} +.swagger-section .swagger-ui-wrap div.gist { + margin: 20px 0 25px 0 !important; +} +.swagger-section .swagger-ui-wrap ul#resources { + font-family: "Droid Sans", sans-serif; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource { + border-bottom: 1px solid #dddddd; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading h2 a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading h2 a { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:hover div.heading ul.options li a, +.swagger-section .swagger-ui-wrap ul#resources li.resource.active div.heading ul.options li a { + color: #555555; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource:last-child { + border-bottom: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading { + border: 1px solid transparent; + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 14px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + border-right: 1px solid #dddddd; + color: #666666; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a { + color: #aaaaaa; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover { + text-decoration: underline; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading ul.options.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { + color: #999999; + padding-left: 0; + display: block; + clear: none; + float: left; + font-family: "Droid Sans", sans-serif; + font-weight: bold; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { + color: #999999; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0 0 10px; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading { + float: none; + clear: both; + overflow: hidden; + display: block; + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 { + display: block; + clear: none; + float: left; + width: auto; + margin: 0; + padding: 0; + line-height: 1.1em; + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path { + padding-left: 10px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a { + color: black; + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.path a:hover { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span.http_method a { + text-transform: uppercase; + text-decoration: none; + color: white; + display: inline-block; + width: 50px; + font-size: 0.7em; + text-align: center; + padding: 7px 0 4px; + -moz-border-radius: 2px; + -webkit-border-radius: 2px; + -o-border-radius: 2px; + -ms-border-radius: 2px; + -khtml-border-radius: 2px; + border-radius: 2px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading h3 span { + margin: 0; + padding: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options { + overflow: hidden; + padding: 0; + display: block; + clear: none; + float: right; + margin: 6px 10px 0 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li { + float: left; + clear: none; + margin: 0; + padding: 2px 10px; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li a { + text-decoration: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.heading ul.options li.access { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content { + border-top: none; + padding: 10px; + -moz-border-radius-bottomleft: 6px; + -webkit-border-bottom-left-radius: 6px; + -o-border-bottom-left-radius: 6px; + -ms-border-bottom-left-radius: 6px; + -khtml-border-bottom-left-radius: 6px; + border-bottom-left-radius: 6px; + -moz-border-radius-bottomright: 6px; + -webkit-border-bottom-right-radius: 6px; + -o-border-bottom-right-radius: 6px; + -ms-border-bottom-right-radius: 6px; + -khtml-border-bottom-right-radius: 6px; + border-bottom-right-radius: 6px; + margin: 0 0 20px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content h4 { + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header { + float: none; + clear: both; + overflow: hidden; + display: block; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header a { + padding: 4px 0 0 10px; + display: inline-block; + font-size: 0.9em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header input.submit { + display: block; + clear: none; + float: left; + padding: 6px 8px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.sandbox_header span.response_throbber { + background-image: url('../images/throbber.gif'); + width: 128px; + height: 16px; + display: block; + clear: none; + float: right; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form input[type='text'].error { + outline: 2px solid black; + outline-color: #cc0000; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content form select[name='parameterContentType'] { + max-width: 300px; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation div.content div.response div.block pre { + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + padding: 10px; + font-size: 0.9em; + max-height: 400px; + overflow-y: auto; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading { + background-color: #f9f2e9; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading h3 span.http_method a { + background-color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0e0ca; + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li a { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content { + background-color: #faf5ee; + border: 1px solid #f0e0ca; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content h4 { + color: #c5862b; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #ffd20f; + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li a { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content { + background-color: #fcffcd; + border: 1px solid black; + border-color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content h4 { + color: #ffd20f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading { + background-color: #f5e8e8; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading h3 span.http_method a { + text-transform: uppercase; + background-color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #e8c6c7; + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li a { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + background-color: #f7eded; + border: 1px solid #e8c6c7; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content h4 { + color: #a41e22; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content div.sandbox_header a { + color: #c8787a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading { + background-color: #e7f6ec; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading h3 span.http_method a { + background-color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3e8d1; + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li a { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content { + background-color: #ebf7f0; + border: 1px solid #c3e8d1; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content h4 { + color: #10a54a; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content div.sandbox_header a { + color: #6fc992; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading { + background-color: #FCE9E3; + border: 1px solid #F5D5C3; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading h3 span.http_method a { + background-color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #f0cecb; + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li a { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content { + background-color: #faf0ef; + border: 1px solid #f0cecb; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content h4 { + color: #D38042; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content div.sandbox_header a { + color: #dcb67f; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading { + background-color: #e7f0f7; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading h3 span.http_method a { + background-color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li { + border-right: 1px solid #dddddd; + border-right-color: #c3d9ec; + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.heading ul.options li a { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content h4 { + color: #0f6ab4; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.options div.content div.sandbox_header a { + color: #6fa5d2; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.content, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.content { + border-top: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li:last-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.get div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.post div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.head div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.put div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.patch div.heading ul.options li.last, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations li.operation.delete div.heading ul.options li.last { + padding-right: 0; + border-right: none; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:hover, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a:active, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li a.active { + text-decoration: underline; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations ul.options li.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations:first-child, +.swagger-section .swagger-ui-wrap ul#resources li.resource ul.endpoints li.endpoint ul.operations.first { + padding-left: 0; +} +.swagger-section .swagger-ui-wrap p#colophon { + margin: 0 15px 40px 15px; + padding: 10px 0; + font-size: 0.8em; + border-top: 1px solid #dddddd; + font-family: "Droid Sans", sans-serif; + color: #999999; + font-style: italic; +} +.swagger-section .swagger-ui-wrap p#colophon a { + text-decoration: none; + color: #547f00; +} +.swagger-section .swagger-ui-wrap h3 { + color: black; + font-size: 1.1em; + padding: 10px 0 10px 0; +} +.swagger-section .swagger-ui-wrap .markdown ol, +.swagger-section .swagger-ui-wrap .markdown ul { + font-family: "Droid Sans", sans-serif; + margin: 5px 0 10px; + padding: 0 0 0 18px; + list-style-type: disc; +} +.swagger-section .swagger-ui-wrap form.form_box { + background-color: #ebf3f9; + border: 1px solid #c3d9ec; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box label { + color: #0f6ab4 !important; +} +.swagger-section .swagger-ui-wrap form.form_box input[type=submit] { + display: block; + padding: 10px; +} +.swagger-section .swagger-ui-wrap form.form_box p.weak { + font-size: 0.8em; +} +.swagger-section .swagger-ui-wrap form.form_box p { + font-size: 0.9em; + padding: 0 0 15px; + color: #7e7b6d; +} +.swagger-section .swagger-ui-wrap form.form_box p a { + color: #646257; +} +.swagger-section .swagger-ui-wrap form.form_box p strong { + color: black; +} +.swagger-section .swagger-ui-wrap .operation-status td.markdown > p:last-child { + padding-bottom: 0; +} +.swagger-section .title { + font-style: bold; +} +.swagger-section .secondary_form { + display: none; +} +.swagger-section .main_image { + display: block; + margin-left: auto; + margin-right: auto; +} +.swagger-section .oauth_body { + margin-left: 100px; + margin-right: 100px; +} +.swagger-section .oauth_submit { + text-align: center; +} +.swagger-section .api-popup-dialog { + z-index: 10000; + position: absolute; + width: 500px; + background: #FFF; + padding: 20px; + border: 1px solid #ccc; + border-radius: 5px; + display: none; + font-size: 13px; + color: #777; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog .api-popup-title { + font-size: 24px; + padding: 10px 0; +} +.swagger-section .api-popup-dialog p.error-msg { + padding-left: 5px; + padding-bottom: 5px; +} +.swagger-section .api-popup-dialog button.api-popup-authbtn { + height: 30px; +} +.swagger-section .api-popup-dialog button.api-popup-cancel { + height: 30px; +} +.swagger-section .api-popup-scopes { + padding: 10px 20px; +} +.swagger-section .api-popup-scopes li { + padding: 5px 0; + line-height: 20px; +} +.swagger-section .api-popup-scopes .api-scope-desc { + padding-left: 20px; + font-style: italic; +} +.swagger-section .api-popup-scopes li input { + position: relative; + top: 2px; +} +.swagger-section .api-popup-actions { + padding-top: 10px; +} +.swagger-section .access { + float: right; +} +.swagger-section .auth { + float: right; +} +.swagger-section .api-ic { + height: 18px; + vertical-align: middle; + display: inline-block; + background: url(../images/explorer_icons.png) no-repeat; +} +.swagger-section .api-ic .api_information_panel { + position: relative; + margin-top: 20px; + margin-left: -5px; + background: #FFF; + border: 1px solid #ccc; + border-radius: 5px; + display: none; + font-size: 13px; + max-width: 300px; + line-height: 30px; + color: black; + padding: 5px; +} +.swagger-section .api-ic .api_information_panel p .api-msg-enabled { + color: green; +} +.swagger-section .api-ic .api_information_panel p .api-msg-disabled { + color: red; +} +.swagger-section .api-ic:hover .api_information_panel { + position: absolute; + display: block; +} +.swagger-section .ic-info { + background-position: 0 0; + width: 18px; + margin-top: -6px; + margin-left: 4px; +} +.swagger-section .ic-warning { + background-position: -60px 0; + width: 18px; + margin-top: -6px; + margin-left: 4px; +} +.swagger-section .ic-error { + background-position: -30px 0; + width: 18px; + margin-top: -6px; + margin-left: 4px; +} +.swagger-section .ic-off { + background-position: -90px 0; + width: 58px; + margin-top: -4px; + cursor: pointer; +} +.swagger-section .ic-on { + background-position: -160px 0; + width: 58px; + margin-top: -4px; + cursor: pointer; +} +.swagger-section #header { + background-color: #89bf04; + padding: 14px; +} +.swagger-section #header a#logo { + font-size: 1.5em; + font-weight: bold; + text-decoration: none; + background: transparent url(../images/logo_small.png) no-repeat left center; + padding: 20px 0 20px 40px; + color: white; +} +.swagger-section #header form#api_selector { + display: block; + clear: none; + float: right; +} +.swagger-section #header form#api_selector .input { + display: block; + clear: none; + float: left; + margin: 0 10px 0 0; +} +.swagger-section #header form#api_selector .input input#input_apiKey { + width: 200px; +} +.swagger-section #header form#api_selector .input input#input_baseUrl { + width: 400px; +} +.swagger-section #header form#api_selector .input a#explore { + display: block; + text-decoration: none; + font-weight: bold; + padding: 6px 8px; + font-size: 0.9em; + color: white; + background-color: #547f00; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + -o-border-radius: 4px; + -ms-border-radius: 4px; + -khtml-border-radius: 4px; + border-radius: 4px; +} +.swagger-section #header form#api_selector .input a#explore:hover { + background-color: #547f00; +} +.swagger-section #header form#api_selector .input input { + font-size: 0.9em; + padding: 3px; + margin: 0; +} +.swagger-section #content_message { + margin: 10px 15px; + font-style: italic; + color: #999999; +} +.swagger-section #message-bar { + min-height: 30px; + text-align: center; + padding-top: 10px; +} diff --git a/openecomp-be/tools/swagger-ui/css/style.css b/openecomp-be/tools/swagger-ui/css/style.css new file mode 100644 index 0000000000..fc21a31db5 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/css/style.css @@ -0,0 +1,250 @@ +.swagger-section #header a#logo { + font-size: 1.5em; + font-weight: bold; + text-decoration: none; + background: transparent url(../images/logo.png) no-repeat left center; + padding: 20px 0 20px 40px; +} +#text-head { + font-size: 80px; + font-family: 'Roboto', sans-serif; + color: #ffffff; + float: right; + margin-right: 20%; +} +.navbar-fixed-top .navbar-nav { + height: auto; +} +.navbar-fixed-top .navbar-brand { + height: auto; +} +.navbar-header { + height: auto; +} +.navbar-inverse { + background-color: #000; + border-color: #000; +} +#navbar-brand { + margin-left: 20%; +} +.navtext { + font-size: 10px; +} +.h1, +h1 { + font-size: 60px; +} +.navbar-default .navbar-header .navbar-brand { + color: #a2dfee; +} +/* tag titles */ +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a { + color: #393939; + font-family: 'Arvo', serif; + font-size: 1.5em; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 a:hover { + color: black; +} +.swagger-section .swagger-ui-wrap ul#resources li.resource div.heading h2 { + color: #525252; + padding-left: 0px; + display: block; + clear: none; + float: left; + font-family: 'Arvo', serif; + font-weight: bold; +} +.navbar-default .navbar-collapse, +.navbar-default .navbar-form { + border-color: #0A0A0A; +} +.container1 { + width: 1500px; + margin: auto; + margin-top: 0; + background-image: url('../images/shield.png'); + background-repeat: no-repeat; + background-position: -40px -20px; + margin-bottom: 210px; +} +.container-inner { + width: 1200px; + margin: auto; + background-color: rgba(223, 227, 228, 0.75); + padding-bottom: 40px; + padding-top: 40px; + border-radius: 15px; +} +.header-content { + padding: 0; + width: 1000px; +} +.title1 { + font-size: 80px; + font-family: 'Vollkorn', serif; + color: #404040; + text-align: center; + padding-top: 40px; + padding-bottom: 100px; +} +#icon { + margin-top: -18px; +} +.subtext { + font-size: 25px; + font-style: italic; + color: #08b; + text-align: right; + padding-right: 250px; +} +.bg-primary { + background-color: #00468b; +} +.navbar-default .nav > li > a, +.navbar-default .nav > li > a:focus { + color: #08b; +} +.navbar-default .nav > li > a, +.navbar-default .nav > li > a:hover { + color: #08b; +} +.navbar-default .nav > li > a, +.navbar-default .nav > li > a:focus:hover { + color: #08b; +} +.text-faded { + font-size: 25px; + font-family: 'Vollkorn', serif; +} +.section-heading { + font-family: 'Vollkorn', serif; + font-size: 45px; + padding-bottom: 10px; +} +hr { + border-color: #00468b; + padding-bottom: 10px; +} +.description { + margin-top: 20px; + padding-bottom: 200px; +} +.description li { + font-family: 'Vollkorn', serif; + font-size: 25px; + color: #525252; + margin-left: 28%; + padding-top: 5px; +} +.gap { + margin-top: 200px; +} +.troubleshootingtext { + color: rgba(255, 255, 255, 0.7); + padding-left: 30%; +} +.troubleshootingtext li { + list-style-type: circle; + font-size: 25px; + padding-bottom: 5px; +} +.overlay { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + z-index: 1000; +} +.block.response_body.json:hover { + cursor: pointer; +} +.backdrop { + color: blue; +} +#myModal { + height: 100%; +} +.modal-backdrop { + bottom: 0; + position: fixed; +} +.curl { + padding: 10px; + font-family: "Anonymous Pro", "Menlo", "Consolas", "Bitstream Vera Sans Mono", "Courier New", monospace; + font-size: 0.9em; + max-height: 400px; + margin-top: 5px; + overflow-y: auto; + background-color: #fcf6db; + border: 1px solid #e5e0c6; + border-radius: 4px; +} +.curl_title { + font-size: 1.1em; + margin: 0; + padding: 15px 0 5px; + font-family: 'Open Sans', 'Helvetica Neue', Arial, sans-serif; + font-weight: 500; + line-height: 1.1; +} +.footer { + display: none; +} +.swagger-section .swagger-ui-wrap h2 { + padding: 0; +} +h2 { + margin: 0; + margin-bottom: 5px; +} +.markdown p { + font-size: 15px; + font-family: 'Arvo', serif; +} +.swagger-section .swagger-ui-wrap .code { + font-size: 15px; + font-family: 'Arvo', serif; +} +.swagger-section .swagger-ui-wrap b { + font-family: 'Arvo', serif; +} +#signin:hover { + cursor: pointer; +} +.dropdown-menu { + padding: 15px; +} +.navbar-right .dropdown-menu { + left: 0; + right: auto; +} +#signinbutton { + width: 100%; + height: 32px; + font-size: 13px; + font-weight: bold; + color: #08b; +} +.navbar-default .nav > li .details { + color: #000000; + text-transform: none; + font-size: 15px; + font-weight: normal; + font-family: 'Open Sans', sans-serif; + font-style: italic; + line-height: 20px; + top: -2px; +} +.navbar-default .nav > li .details:hover { + color: black; +} +#signout { + width: 100%; + height: 32px; + font-size: 13px; + font-weight: bold; + color: #08b; +} diff --git a/openecomp-be/tools/swagger-ui/css/typography.css b/openecomp-be/tools/swagger-ui/css/typography.css new file mode 100644 index 0000000000..27c3751ac2 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/css/typography.css @@ -0,0 +1,26 @@ +/* droid-sans-regular - latin */ +@font-face { + font-family: 'Droid Sans'; + font-style: normal; + font-weight: 400; + src: url('../fonts/droid-sans-v6-latin-regular.eot'); /* IE9 Compat Modes */ + src: local('Droid Sans'), local('DroidSans'), + url('../fonts/droid-sans-v6-latin-regular.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/droid-sans-v6-latin-regular.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/droid-sans-v6-latin-regular.woff') format('woff'), /* Modern Browsers */ + url('../fonts/droid-sans-v6-latin-regular.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/droid-sans-v6-latin-regular.svg#DroidSans') format('svg'); /* Legacy iOS */ +} +/* droid-sans-700 - latin */ +@font-face { + font-family: 'Droid Sans'; + font-style: normal; + font-weight: 700; + src: url('../fonts/droid-sans-v6-latin-700.eot'); /* IE9 Compat Modes */ + src: local('Droid Sans Bold'), local('DroidSans-Bold'), + url('../fonts/droid-sans-v6-latin-700.eot?#iefix') format('embedded-opentype'), /* IE6-IE8 */ + url('../fonts/droid-sans-v6-latin-700.woff2') format('woff2'), /* Super Modern Browsers */ + url('../fonts/droid-sans-v6-latin-700.woff') format('woff'), /* Modern Browsers */ + url('../fonts/droid-sans-v6-latin-700.ttf') format('truetype'), /* Safari, Android, iOS */ + url('../fonts/droid-sans-v6-latin-700.svg#DroidSans') format('svg'); /* Legacy iOS */ +} diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.eot b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.eot new file mode 100644 index 0000000000..d8524983ad Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.eot differ diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.svg b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.svg new file mode 100644 index 0000000000..a54bbbbf25 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.svg @@ -0,0 +1,411 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.ttf b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.ttf new file mode 100644 index 0000000000..15896c441f Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.ttf differ diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff new file mode 100644 index 0000000000..67e3e25f83 Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff differ diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff2 b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff2 new file mode 100644 index 0000000000..1e726a7cfc Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-700.woff2 differ diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.eot b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.eot new file mode 100644 index 0000000000..ac2698e85a Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.eot differ diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.svg b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.svg new file mode 100644 index 0000000000..d9f2a214f9 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.svg @@ -0,0 +1,403 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.ttf b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.ttf new file mode 100644 index 0000000000..fb8cea662b Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.ttf differ diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff new file mode 100644 index 0000000000..abf19899f7 Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff differ diff --git a/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff2 b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff2 new file mode 100644 index 0000000000..9f93f74c3b Binary files /dev/null and b/openecomp-be/tools/swagger-ui/fonts/droid-sans-v6-latin-regular.woff2 differ diff --git a/openecomp-be/tools/swagger-ui/images/Thumbs.db b/openecomp-be/tools/swagger-ui/images/Thumbs.db new file mode 100644 index 0000000000..400bf4e0ec Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/Thumbs.db differ diff --git a/openecomp-be/tools/swagger-ui/images/explorer_icons.png b/openecomp-be/tools/swagger-ui/images/explorer_icons.png new file mode 100644 index 0000000000..ed9d2fffb6 Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/explorer_icons.png differ diff --git a/openecomp-be/tools/swagger-ui/images/favicon-16x16.png b/openecomp-be/tools/swagger-ui/images/favicon-16x16.png new file mode 100644 index 0000000000..66b1a5bfb9 Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/favicon-16x16.png differ diff --git a/openecomp-be/tools/swagger-ui/images/favicon-32x32.png b/openecomp-be/tools/swagger-ui/images/favicon-32x32.png new file mode 100644 index 0000000000..32f319f89b Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/favicon-32x32.png differ diff --git a/openecomp-be/tools/swagger-ui/images/favicon.ico b/openecomp-be/tools/swagger-ui/images/favicon.ico new file mode 100644 index 0000000000..36c02749fc Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/favicon.ico differ diff --git a/openecomp-be/tools/swagger-ui/images/logo_small.png b/openecomp-be/tools/swagger-ui/images/logo_small.png new file mode 100644 index 0000000000..5496a65579 Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/logo_small.png differ diff --git a/openecomp-be/tools/swagger-ui/images/pet_store_api.png b/openecomp-be/tools/swagger-ui/images/pet_store_api.png new file mode 100644 index 0000000000..f9f9cd4aeb Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/pet_store_api.png differ diff --git a/openecomp-be/tools/swagger-ui/images/throbber.gif b/openecomp-be/tools/swagger-ui/images/throbber.gif new file mode 100644 index 0000000000..0639388924 Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/throbber.gif differ diff --git a/openecomp-be/tools/swagger-ui/images/wordnik_api.png b/openecomp-be/tools/swagger-ui/images/wordnik_api.png new file mode 100644 index 0000000000..dca4f1455a Binary files /dev/null and b/openecomp-be/tools/swagger-ui/images/wordnik_api.png differ diff --git a/openecomp-be/tools/swagger-ui/index.html b/openecomp-be/tools/swagger-ui/index.html new file mode 100644 index 0000000000..fe0c8ad7c7 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/index.html @@ -0,0 +1,328 @@ + + + + + API Docs + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
+ +
+
+
+
+
+
+
+ +
+ +
Custom Headers
+
+ +
+
+ Reset + Add +
+ +
+
 
+
+ + diff --git a/openecomp-be/tools/swagger-ui/lang/en.js b/openecomp-be/tools/swagger-ui/lang/en.js new file mode 100644 index 0000000000..9ed12ccffb --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/en.js @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Warning: Deprecated", + "Implementation Notes":"Implementation Notes", + "Response Class":"Response Class", + "Status":"Status", + "Parameters":"Parameters", + "Parameter":"Parameter", + "Value":"Value", + "Description":"Description", + "Parameter Type":"Parameter Type", + "Data Type":"Data Type", + "Response Messages":"Response Messages", + "HTTP Status Code":"HTTP Status Code", + "Reason":"Reason", + "Response Model":"Response Model", + "Request URL":"Request URL", + "Response Body":"Response Body", + "Response Code":"Response Code", + "Response Headers":"Response Headers", + "Hide Response":"Hide Response", + "Headers":"Headers", + "Try it out!":"Try it out!", + "Show/Hide":"Show/Hide", + "List Operations":"List Operations", + "Expand Operations":"Expand Operations", + "Raw":"Raw", + "can't parse JSON. Raw result":"can't parse JSON. Raw result", + "Model Schema":"Model Schema", + "Model":"Model", + "apply":"apply", + "Username":"Username", + "Password":"Password", + "Terms of service":"Terms of service", + "Created by":"Created by", + "See more at":"See more at", + "Contact the developer":"Contact the developer", + "api version":"api version", + "Response Content Type":"Response Content Type", + "fetching resource":"fetching resource", + "fetching resource list":"fetching resource list", + "Explore":"Explore", + "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Can't read from server. It may not have the appropriate access-control-origin settings.", + "Please specify the protocol for":"Please specify the protocol for", + "Can't read swagger JSON from":"Can't read swagger JSON from", + "Finished Loading Resource Information. Rendering Swagger UI":"Finished Loading Resource Information. Rendering Swagger UI", + "Unable to read api":"Unable to read api", + "from path":"from path", + "server returned":"server returned" +}); diff --git a/openecomp-be/tools/swagger-ui/lang/es.js b/openecomp-be/tools/swagger-ui/lang/es.js new file mode 100644 index 0000000000..bd948fc27b --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/es.js @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Advertencia: Obsoleto", + "Implementation Notes":"Notas de implementación", + "Response Class":"Clase de la Respuesta", + "Status":"Status", + "Parameters":"Parámetros", + "Parameter":"Parámetro", + "Value":"Valor", + "Description":"Descripción", + "Parameter Type":"Tipo del Parámetro", + "Data Type":"Tipo del Dato", + "Response Messages":"Mensajes de la Respuesta", + "HTTP Status Code":"Código de Status HTTP", + "Reason":"Razón", + "Response Model":"Modelo de la Respuesta", + "Request URL":"URL de la Solicitud", + "Response Body":"Cuerpo de la Respuesta", + "Response Code":"Código de la Respuesta", + "Response Headers":"Encabezados de la Respuesta", + "Hide Response":"Ocultar Respuesta", + "Try it out!":"Pruébalo!", + "Show/Hide":"Mostrar/Ocultar", + "List Operations":"Listar Operaciones", + "Expand Operations":"Expandir Operaciones", + "Raw":"Crudo", + "can't parse JSON. Raw result":"no puede parsear el JSON. Resultado crudo", + "Model Schema":"Esquema del Modelo", + "Model":"Modelo", + "apply":"aplicar", + "Username":"Nombre de usuario", + "Password":"Contraseña", + "Terms of service":"Términos de Servicio", + "Created by":"Creado por", + "See more at":"Ver más en", + "Contact the developer":"Contactar al desarrollador", + "api version":"versión de la api", + "Response Content Type":"Tipo de Contenido (Content Type) de la Respuesta", + "fetching resource":"buscando recurso", + "fetching resource list":"buscando lista del recurso", + "Explore":"Explorar", + "Show Swagger Petstore Example Apis":"Mostrar Api Ejemplo de Swagger Petstore", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"No se puede leer del servidor. Tal vez no tiene la configuración de control de acceso de origen (access-control-origin) apropiado.", + "Please specify the protocol for":"Por favor, especificar el protocola para", + "Can't read swagger JSON from":"No se puede leer el JSON de swagger desde", + "Finished Loading Resource Information. Rendering Swagger UI":"Finalizada la carga del recurso de Información. Mostrando Swagger UI", + "Unable to read api":"No se puede leer la api", + "from path":"desde ruta", + "server returned":"el servidor retornó" +}); diff --git a/openecomp-be/tools/swagger-ui/lang/ja.js b/openecomp-be/tools/swagger-ui/lang/ja.js new file mode 100644 index 0000000000..895353c525 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/ja.js @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"警告: 廃止予定", + "Implementation Notes":"実装メモ", + "Response Class":"レス�?ンスクラス", + "Status":"ステータス", + "Parameters":"パラメータ群", + "Parameter":"パラメータ", + "Value":"値", + "Description":"説明", + "Parameter Type":"パラメータタイプ", + "Data Type":"データタイプ", + "Response Messages":"レス�?ンスメッセージ", + "HTTP Status Code":"HTTPステータスコード", + "Reason":"�?�由", + "Response Model":"レス�?ンスモデル", + "Request URL":"リクエストURL", + "Response Body":"レス�?ンスボディ", + "Response Code":"レス�?ンスコード", + "Response Headers":"レス�?ンスヘッダ", + "Hide Response":"レス�?ンスを隠�?�", + "Headers":"ヘッダ", + "Try it out!":"実際�?�実行!", + "Show/Hide":"表示/�?�表示", + "List Operations":"�?作一覧", + "Expand Operations":"�?作�?�展開", + "Raw":"Raw", + "can't parse JSON. Raw result":"JSON�?�解釈�?��??�?��?�ん. 未加工�?��?果", + "Model Schema":"モデルスキーマ", + "Model":"モデル", + "apply":"実行", + "Username":"ユーザ�??", + "Password":"パスワード", + "Terms of service":"サービス利用�?約", + "Created by":"Created by", + "See more at":"See more at", + "Contact the developer":"開発者�?�連絡", + "api version":"API�?ージョン", + "Response Content Type":"レス�?ンス コンテンツタイプ", + "fetching resource":"リソース�?��?�得", + "fetching resource list":"リソース一覧�?��?�得", + "Explore":"Explore", + "Show Swagger Petstore Example Apis":"SwaggerペットストアAPI�?�表示", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"サー�?�?�ら読�?�込�?�?��?�ん. �?�切�?�access-control-origin設定を�?�?��?��?��?��?��?�能性�?��?�り�?��?�.", + "Please specify the protocol for":"プロトコルを指定�?��?��??�?��?��?�", + "Can't read swagger JSON from":"次�?�らswagger JSONを読�?�込�?�?��?�ん", + "Finished Loading Resource Information. Rendering Swagger UI":"リソース情報�?�読�?�込�?��?�完了�?��?��?��?�. Swagger UIを�??画�?��?��?��?��?�", + "Unable to read api":"APIを読�?�込�?�?��?�ん", + "from path":"次�?�パス�?�ら", + "server returned":"サー�?�?�ら�?�返答" +}); diff --git a/openecomp-be/tools/swagger-ui/lang/pt.js b/openecomp-be/tools/swagger-ui/lang/pt.js new file mode 100644 index 0000000000..a74b4a3d01 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/pt.js @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Aviso: Depreciado", + "Implementation Notes":"Notas de Implementação", + "Response Class":"Classe de resposta", + "Status":"Status", + "Parameters":"Parâmetros", + "Parameter":"Parâmetro", + "Value":"Valor", + "Description":"Descrição", + "Parameter Type":"Tipo de parâmetro", + "Data Type":"Tipo de dados", + "Response Messages":"Mensagens de resposta", + "HTTP Status Code":"Código de status HTTP", + "Reason":"Razão", + "Response Model":"Modelo resposta", + "Request URL":"URL requisição", + "Response Body":"Corpo da resposta", + "Response Code":"Código da resposta", + "Response Headers":"Cabeçalho da resposta", + "Headers":"Cabeçalhos", + "Hide Response":"Esconder resposta", + "Try it out!":"Tente agora!", + "Show/Hide":"Mostrar/Esconder", + "List Operations":"Listar operações", + "Expand Operations":"Expandir operações", + "Raw":"Cru", + "can't parse JSON. Raw result":"Falha ao analisar JSON. Resulto cru", + "Model Schema":"Modelo esquema", + "Model":"Modelo", + "apply":"Aplicar", + "Username":"Usuário", + "Password":"Senha", + "Terms of service":"Termos do serviço", + "Created by":"Criado por", + "See more at":"Veja mais em", + "Contact the developer":"Contate o desenvolvedor", + "api version":"Versão api", + "Response Content Type":"Tipo de conteúdo da resposta", + "fetching resource":"busca recurso", + "fetching resource list":"buscando lista de recursos", + "Explore":"Explorar", + "Show Swagger Petstore Example Apis":"Show Swagger Petstore Example Apis", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Não é possível ler do servidor. Pode não ter as apropriadas configurações access-control-origin", + "Please specify the protocol for":"Por favor especifique o protocolo", + "Can't read swagger JSON from":"Não é possível ler o JSON Swagger de", + "Finished Loading Resource Information. Rendering Swagger UI":"Carregar informação de recurso finalizada. Renderizando Swagger UI", + "Unable to read api":"Não foi possível ler api", + "from path":"do caminho", + "server returned":"servidor retornou" +}); diff --git a/openecomp-be/tools/swagger-ui/lang/ru.js b/openecomp-be/tools/swagger-ui/lang/ru.js new file mode 100644 index 0000000000..ce117fd84e --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/ru.js @@ -0,0 +1,72 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Ворнинг: Депрекейтед", + "Implementation Notes":"Заметки", + "Response Class":"Пример ответа", + "Status":"Стату�?", + "Parameters":"Параметры", + "Parameter":"Параметр", + "Value":"Значение", + "Description":"Опи�?ание", + "Parameter Type":"Тип параметра", + "Data Type":"Тип данных", + "HTTP Status Code":"HTTP код", + "Reason":"Причина", + "Response Model":"Структура ответа", + "Request URL":"URL запро�?а", + "Response Body":"Тело ответа", + "Response Code":"HTTP код ответа", + "Response Headers":"Заголовки ответа", + "Hide Response":"Спр�?тать ответ", + "Response Messages":"Что может прийти в ответ", + "Try it out!":"Попробовать!", + "Show/Hide":"Показать/Скрыть", + "List Operations":"Операции кратко", + "Expand Operations":"Операции подробно", + "Raw":"В �?ыром виде", + "can't parse JSON. Raw result":"�?е удает�?�? ра�?пар�?ить ответ:", + "Model Schema":"Структура", + "Model":"Опи�?ание", + "apply":"применить", + "Username":"Им�? пользовател�?", + "Password":"Пароль", + "Terms of service":"У�?лови�? и�?пользовани�?", + "Created by":"Разработано", + "See more at":"Еще тут", + "Contact the developer":"Св�?зать�?�? �? разработчиком", + "api version":"Вер�?и�? API", + "Response Content Type":"Content Type ответа", + "fetching resource":"Получение ре�?ур�?а", + "fetching resource list":"Получение ре�?ур�?ов", + "Explore":"Поехали", + "Show Swagger Petstore Example Apis":"Показать примеры �?ПИ", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"�?е удает�?�? получить ответ от �?ервера. Возможно, кака�?-то лажа �? на�?тройками до�?тупа", + "Please specify the protocol for":"Пожалуй�?та, укажите протогол дл�?", + "Can't read swagger JSON from":"�?е получает�?�? прочитать swagger json из", + "Finished Loading Resource Information. Rendering Swagger UI":"Загрузка информации о ре�?ур�?ах завершена. Рендерим", + "Unable to read api":"�?е удало�?ь прочитать api", + "from path":"по адре�?у", + "server returned":"�?ервер �?казал" +}); diff --git a/openecomp-be/tools/swagger-ui/lang/tr.js b/openecomp-be/tools/swagger-ui/lang/tr.js new file mode 100644 index 0000000000..359583e4b4 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/tr.js @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"Uyarı: Deprecated", + "Implementation Notes":"Gerçekleştirim Notları", + "Response Class":"Dönen Sınıf", + "Status":"Statü", + "Parameters":"Parametreler", + "Parameter":"Parametre", + "Value":"Değer", + "Description":"Açıklama", + "Parameter Type":"Parametre Tipi", + "Data Type":"Veri Tipi", + "Response Messages":"Dönüş Mesajı", + "HTTP Status Code":"HTTP Statü Kodu", + "Reason":"Gerekçe", + "Response Model":"Dönüş Modeli", + "Request URL":"İstek URL", + "Response Body":"Dönüş İçeriği", + "Response Code":"Dönüş Kodu", + "Response Headers":"Dönüş Üst Bilgileri", + "Hide Response":"Dönüşü Gizle", + "Headers":"Üst Bilgiler", + "Try it out!":"Dene!", + "Show/Hide":"Göster/Gizle", + "List Operations":"Operasyonları Listele", + "Expand Operations":"Operasyonları Aç", + "Raw":"Ham", + "can't parse JSON. Raw result":"JSON çözümlenemiyor. Ham sonuç", + "Model Schema":"Model Şema", + "Model":"Model", + "apply":"uygula", + "Username":"Kullanıcı Adı", + "Password":"Parola", + "Terms of service":"Servis şartları", + "Created by":"Oluşturan", + "See more at":"Daha fazlası için", + "Contact the developer":"Geliştirici ile İletişime Geçin", + "api version":"api versiyon", + "Response Content Type":"Dönüş İçerik Tipi", + "fetching resource":"kaynak getiriliyor", + "fetching resource list":"kaynak listesi getiriliyor", + "Explore":"Keşfet", + "Show Swagger Petstore Example Apis":"Swagger Petstore Örnek Api'yi Gör", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"Sunucudan okuma yapılamıyor. Sunucu access-control-origin ayarlarınızı kontrol edin.", + "Please specify the protocol for":"Lütfen istenen adres için protokol belirtiniz", + "Can't read swagger JSON from":"Swagger JSON bu kaynaktan okunamıyor", + "Finished Loading Resource Information. Rendering Swagger UI":"Kaynak baglantısı tamamlandı. Swagger UI gösterime hazırlanıyor", + "Unable to read api":"api okunamadı", + "from path":"yoldan", + "server returned":"sunucuya dönüldü" +}); diff --git a/openecomp-be/tools/swagger-ui/lang/translator.js b/openecomp-be/tools/swagger-ui/lang/translator.js new file mode 100644 index 0000000000..9232ac18a6 --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/translator.js @@ -0,0 +1,59 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/** + * Translator for documentation pages. + * + * To enable translation you should include one of language-files in your index.html + * after . + * For example - + * + * If you wish to translate some new texsts you should do two things: + * 1. Add a new phrase pair ("New Phrase": "New Translation") into your language file (for example lang/ru.js). It will be great if you add it in other language files too. + * 2. Mark that text it templates this way New Phrase or . + * The main thing here is attribute data-sw-translate. Only inner html, title-attribute and value-attribute are going to translate. + * + */ +window.SwaggerTranslator = { + + _words:[], + + translate: function(sel) { + var $this = this; + sel = sel || '[data-sw-translate]'; + + $(sel).each(function() { + $(this).html($this._tryTranslate($(this).html())); + + $(this).val($this._tryTranslate($(this).val())); + $(this).attr('title', $this._tryTranslate($(this).attr('title'))); + }); + }, + + _tryTranslate: function(word) { + return this._words[$.trim(word)] !== undefined ? this._words[$.trim(word)] : word; + }, + + learn: function(wordsMap) { + this._words = wordsMap; + } +}; diff --git a/openecomp-be/tools/swagger-ui/lang/zh-cn.js b/openecomp-be/tools/swagger-ui/lang/zh-cn.js new file mode 100644 index 0000000000..e1fde6e7cc --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lang/zh-cn.js @@ -0,0 +1,73 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +'use strict'; + +/* jshint quotmark: double */ +window.SwaggerTranslator.learn({ + "Warning: Deprecated":"警告:已过时", + "Implementation Notes":"实现备注", + "Response Class":"�?应类", + "Status":"状�?", + "Parameters":"�?�数", + "Parameter":"�?�数", + "Value":"值", + "Description":"�??述", + "Parameter Type":"�?�数类型", + "Data Type":"数�?�类型", + "Response Messages":"�?应消�?�", + "HTTP Status Code":"HTTP状�?�?", + "Reason":"原因", + "Response Model":"�?应模型", + "Request URL":"请求URL", + "Response Body":"�?应体", + "Response Code":"�?应�?", + "Response Headers":"�?应头", + "Hide Response":"�?�?�?应", + "Headers":"头", + "Try it out!":"试一下�?", + "Show/Hide":"显示/�?�?", + "List Operations":"显示�?作", + "Expand Operations":"展开�?作", + "Raw":"原始", + "can't parse JSON. Raw result":"无法解�?JSON. 原始结果", + "Model Schema":"模型架构", + "Model":"模型", + "apply":"应用", + "Username":"用户�??", + "Password":"密�?", + "Terms of service":"�?务�?�款", + "Created by":"创建者", + "See more at":"查看更多:", + "Contact the developer":"�?�系开�?�者", + "api version":"api版本", + "Response Content Type":"�?应Content Type", + "fetching resource":"正在获�?�资�?", + "fetching resource list":"正在获�?�资�?列表", + "Explore":"�?览", + "Show Swagger Petstore Example Apis":"显示 Swagger Petstore 示例 Apis", + "Can't read from server. It may not have the appropriate access-control-origin settings.":"无法从�?务器读�?�。�?�能没有正确设置access-control-origin。", + "Please specify the protocol for":"请指定�??议:", + "Can't read swagger JSON from":"无法读�?�swagger JSON于", + "Finished Loading Resource Information. Rendering Swagger UI":"已加载资�?信�?�。正在渲染Swagger UI", + "Unable to read api":"无法读�?�api", + "from path":"从路径", + "server returned":"�?务器返回" +}); diff --git a/openecomp-be/tools/swagger-ui/lib/backbone-min.js b/openecomp-be/tools/swagger-ui/lib/backbone-min.js new file mode 100644 index 0000000000..f082fcffca --- /dev/null +++ b/openecomp-be/tools/swagger-ui/lib/backbone-min.js @@ -0,0 +1,35 @@ +/*- + * ============LICENSE_START======================================================= + * SDC + * ================================================================================ + * Copyright (C) 2017 AT&T Intellectual Property. All rights reserved. + * ================================================================================ + * 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. + * ============LICENSE_END========================================================= + */ + +// Backbone.js 1.1.2 + +(function(t,e){if(typeof define==="function"&&define.amd){define(["underscore","jquery","exports"],function(i,r,s){t.Backbone=e(t,s,i,r)})}else if(typeof exports!=="undefined"){var i=require("underscore");e(t,exports,i)}else{t.Backbone=e(t,{},t._,t.jQuery||t.Zepto||t.ender||t.$)}})(this,function(t,e,i,r){var s=t.Backbone;var n=[];var a=n.push;var o=n.slice;var h=n.splice;e.VERSION="1.1.2";e.$=r;e.noConflict=function(){t.Backbone=s;return this};e.emulateHTTP=false;e.emulateJSON=false;var u=e.Events={on:function(t,e,i){if(!c(this,"on",t,[e,i])||!e)return this;this._events||(this._events={});var r=this._events[t]||(this._events[t]=[]);r.push({callback:e,context:i,ctx:i||this});return this},once:function(t,e,r){if(!c(this,"once",t,[e,r])||!e)return this;var s=this;var n=i.once(function(){s.off(t,n);e.apply(this,arguments)});n._callback=e;return this.on(t,n,r)},off:function(t,e,r){var s,n,a,o,h,u,l,f;if(!this._events||!c(this,"off",t,[e,r]))return this;if(!t&&!e&&!r){this._events=void 0;return this}o=t?[t]:i.keys(this._events);for(h=0,u=o.length;h").attr(t);this.setElement(r,false)}else{this.setElement(i.result(this,"el"),false)}}});e.sync=function(t,r,s){var n=T[t];i.defaults(s||(s={}),{emulateHTTP:e.emulateHTTP,emulateJSON:e.emulateJSON});var a={type:n,dataType:"json"};if(!s.url){a.url=i.result(r,"url")||M()}if(s.data==null&&r&&(t==="create"||t==="update"||t==="patch")){a.contentType="application/json";a.data=JSON.stringify(s.attrs||r.toJSON(s))}if(s.emulateJSON){a.contentType="application/x-www-form-urlencoded";a.data=a.data?{model:a.data}:{}}if(s.emulateHTTP&&(n==="PUT"||n==="DELETE"||n==="PATCH")){a.type="POST";if(s.emulateJSON)a.data._method=n;var o=s.beforeSend;s.beforeSend=function(t){t.setRequestHeader("X-HTTP-Method-Override",n);if(o)return o.apply(this,arguments)}}if(a.type!=="GET"&&!s.emulateJSON){a.processData=false}if(a.type==="PATCH"&&k){a.xhr=function(){return new ActiveXObject("Microsoft.XMLHTTP")}}var h=s.xhr=e.ajax(i.extend(a,s));r.trigger("request",r,h,s);return h};var k=typeof window!=="undefined"&&!!window.ActiveXObject&&!(window.XMLHttpRequest&&(new XMLHttpRequest).dispatchEvent);var T={create:"POST",update:"PUT",patch:"PATCH","delete":"DELETE",read:"GET"};e.ajax=function(){return e.$.ajax.apply(e.$,arguments)};var $=e.Router=function(t){t||(t={});if(t.routes)this.routes=t.routes;this._bindRoutes();this.initialize.apply(this,arguments)};var S=/\((.*?)\)/g;var H=/(\(\?)?:\w+/g;var A=/\*\w+/g;var I=/[\-{}\[\]+?.,\\\^$|#\s]/g;i.extend($.prototype,u,{initialize:function(){},route:function(t,r,s){if(!i.isRegExp(t))t=this._routeToRegExp(t);if(i.isFunction(r)){s=r;r=""}if(!s)s=this[r];var n=this;e.history.route(t,function(i){var a=n._extractParameters(t,i);n.execute(s,a);n.trigger.apply(n,["route:"+r].concat(a));n.trigger("route",r,a);e.history.trigger("route",n,r,a)});return this},execute:function(t,e){if(t)t.apply(this,e)},navigate:function(t,i){e.history.navigate(t,i);return this},_bindRoutes:function(){if(!this.routes)return;this.routes=i.result(this,"routes");var t,e=i.keys(this.routes);while((t=e.pop())!=null){this.route(t,this.routes[t])}},_routeToRegExp:function(t){t=t.replace(I,"\\$&").replace(S,"(?:$1)?").replace(H,function(t,e){return e?t:"([^/?]+)"}).replace(A,"([^?]*?)");return new RegExp("^"+t+"(?:\\?([\\s\\S]*))?$")},_extractParameters:function(t,e){var r=t.exec(e).slice(1);return i.map(r,function(t,e){if(e===r.length-1)return t||null;return t?decodeURIComponent(t):null})}});var N=e.History=function(){this.handlers=[];i.bindAll(this,"checkUrl");if(typeof window!=="undefined"){this.location=window.location;this.history=window.history}};var R=/^[#\/]|\s+$/g;var O=/^\/+|\/+$/g;var P=/msie [\w.]+/;var C=/\/$/;var j=/#.*$/;N.started=false;i.extend(N.prototype,u,{interval:50,atRoot:function(){return this.location.pathname.replace(/[^\/]$/,"$&/")===this.root},getHash:function(t){var e=(t||this).location.href.match(/#(.*)$/);return e?e[1]:""},getFragment:function(t,e){if(t==null){if(this._hasPushState||!this._wantsHashChange||e){t=decodeURI(this.location.pathname+this.location.search);var i=this.root.replace(C,"");if(!t.indexOf(i))t=t.slice(i.length)}else{t=this.getHash()}}return t.replace(R,"")},start:function(t){if(N.started)throw new Error("Backbone.history has already been started");N.started=true;this.options=i.extend({root:"/"},this.options,t);this.root=this.options.root;this._wantsHashChange=this.options.hashChange!==false;this._wantsPushState=!!this.options.pushState;this._hasPushState=!!(this.options.pushState&&this.history&&this.history.pushState);var r=this.getFragment();var s=document.documentMode;var n=P.exec(navigator.userAgent.toLowerCase())&&(!s||s<=7);this.root=("/"+this.root+"/").replace(O,"/");if(n&&this._wantsHashChange){var a=e.$('