Add documentation
[dcaegen2.git] / docs / sections / apis / cdapbroker.yaml
diff --git a/docs/sections/apis/cdapbroker.yaml b/docs/sections/apis/cdapbroker.yaml
deleted file mode 100644 (file)
index f6325b7..0000000
+++ /dev/null
@@ -1,435 +0,0 @@
-# ================================================================================
-# Copyright (c) 2017-2018 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=========================================================
-#
-# ECOMP is a trademark and service mark of AT&T Intellectual Property.
-# Example YAML to get you started quickly.
-# Be aware that YAML has indentation based scoping.
-# Code completion support is available so start typing for available options.
-swagger: '2.0'
-
-# This is your document metadata
-info:
-  version: "4.0.10"
-  title: CDAP Broker API
-
-paths:
-  /:
-    get:
-      description: shows some information about this service
-      responses:
-        200:
-          description: successful response
-          schema:
-            $ref: '#/definitions/info'
-            
-  /application:
-    get:
-      description: get all applications registered with this broker
-      responses:
-        200:
-          description: successful response
-          schema: 
-            type: array
-            items: 
-              $ref: '#/definitions/appname'
-  
-  /application/delete:
-    post:
-      description: endpoint to delete multiple applications at once. Returns an array of status codes, where statuscode[i] = response returned from DELETE(application/i)
-      parameters:
-        - name: postbody 
-          in: body
-          description: required post body
-          required: true
-          schema:
-            $ref: '#/definitions/multideleteput'
-      responses:
-        200:
-          description: successful response
-          schema: 
-            type: array
-            items: 
-              $ref: '#/definitions/returncode'
-  
-  /application/{appname}:
-    parameters:
-      - name: appname
-        in: path
-        description: Name of the application. 
-        required: true
-        type: string
-        format: text
-          
-    get:
-      description: Returns the representation of the application resource, including the links for healthcheck and metrics.
-      responses:
-        200:
-          description: Successful response
-          schema:
-            $ref: '#/definitions/Application'
-        404:
-          description: no app with name 'appname' registered with this broker.
-            
-    put:
-      description: Register an app for service and configuration discovery. This will light up a metrics and health endpoint for this app. `appname` is assumed to also be the key in  consul.
-      consumes:
-        - application/json 
-      produces:
-        - application/json
-      parameters:
-        - name: putbody 
-          in: body
-          description: required put body
-          required: true
-          schema:
-            $ref: '#/definitions/appput'
-      
-      responses:
-        200:
-          description: Successful response
-          schema:
-            $ref: '#/definitions/Application'
-        400: 
-          description: put was performed but the appname was already registered with the broker, or Invalid PUT body
-        
-  
-    delete:
-      description: Remove an app for service and configuration discovery. This will remove the metrics and health endpoints for this app.
-      responses:
-        200:
-          description: Successful response
-        404:
-          description: no app with name 'appname' registered with this broker. 
-        
-  /application*/{appname}:
-    parameters:
-      - name: appname
-        in: path
-        description: Name of the application. 
-        required: true
-        type: string
-        format: text
-          
-    put:
-      description: (This is a hacky way of supporting "oneOf" because Swagger does not support oneOf https://github.com/OAI/OpenAPI-Specification/issues/333. This is the same endpoint as PUT /application/appname, except the PUT body is different.)
-        
-      
-        Register a hydrator app for service and configuration discovery. This will light up a metrics and health endpoint for this app. `appname` is assumed to also be the key in  consul.
-      consumes:
-        - application/json 
-      produces:
-        - application/json
-      parameters:
-        - name: putbody 
-          in: body
-          description: required put body
-          required: true
-          schema:
-            $ref: '#/definitions/hydratorappput'
-      
-      responses:
-        200:
-          description: Successful response
-          schema:
-            $ref: '#/definitions/Application'
-        400: 
-          description: put was performed but the appname was already registered with the broker, or Invalid PUT body
-        
-  
-  /application/{appname}/metrics:
-    get:
-      # This is array of GET operation parameters:
-      description: Get live (real-time) app specific metrics for the running app appname. Metrics are customized per each app by the component developer
-      parameters:
-        # An example parameter that is in query and is required
-        - name: appname
-          in: path
-          description: Name of the application to get metrics for. 
-          required: true
-          type: string
-          format: test
-          
-      # Expected responses for this operation:
-      responses:
-        200:
-          description: Successful response
-          schema:
-            $ref: '#/definitions/MetricsObject'
-        404:
-          description: no app with name 'appname' registered with this broker. 
-              
-  /application/{appname}/healthcheck:
-    get:
-      # This is array of GET operation parameters:
-      description: Perform a healthcheck on the running app appname. 
-      parameters:
-        # An example parameter that is in query and is required
-        - name: appname
-          in: path
-          description: Name of the application to get the healthcheck for.
-          required: true
-          type: string
-          format: test
-          
-      # Expected responses for this operation:
-      responses:
-        # Response code
-        200:
-          description: Successful response, healthcheck pass
-        404:
-          description: no app with name 'appname' registered with this broker, or the healthcheck has failed (though I would like to disambiguiate from the first case, CDAP returns a 404 for this). 
-  
-  /application/{appname}/reconfigure:
-    parameters:
-      - name: appname
-        in: path
-        description: Name of the application. 
-        required: true
-        type: string
-        format: text
-    put:
-      description: Reconfigures the application. 
-      parameters:
-        - name: putbody 
-          in: body
-          description: required put body
-          required: true
-          schema:
-            $ref: '#/definitions/reconfigput'
-      responses:
-        200:
-          description: Successful response
-        400:
-          description: Bad request. Can happen with 1)  {appname} is not registered with the broker, 2) the required PUT body is wrong, or 3) the smart interface was chosen and none of the config keys match anything in app_config or app_preferences
-          
-definitions:
-  MetricsObject:
-    type: object
-    description: key,value object where the key is 'appmetrics' and the value is an app dependent json and specified by the component developer
-    properties:
-      appmetrics:
-        type: object
-        
-  Application:
-    type: object
-    properties:
-      appname:
-        description: application name
-        type: string
-      healthcheckurl:
-        description: fully qualified url to perform healthcheck
-        type: string
-      metricsurl:
-        description: fully qualified url to get metrics from
-        type: string
-      url:
-        description: fully qualified url of the resource
-        type: string
-      connectionurl:
-        description: input URL that you can POST data into (URL of the CDAP stream)
-        type: string
-      serviceendpoints:
-        description: a list of HTTP services exposed by this CDAP application
-        type: array
-        items:
-          $ref: '#/definitions/service_method'
-         
-  reconfigput:
-    type: object
-    properties:
-      reconfiguration_type:
-        description: the type of reconfiguration
-        type: string
-        enum: ["program-flowlet-app-config", "program-flowlet-app-preferences", "program-flowlet-smart"]
-      config:
-        description: the config JSON
-        type: object
-    required: ["reconfiguration_type", "config"]
-  
-  multideleteput:
-    type: object
-    properties:
-      appnames:
-        type: array
-        items: 
-          $ref: '#/definitions/appname'
-  
-  appname:
-    description: an application name
-    type: string
-  
-  hydratorappput:
-    type: object
-    properties:
-      cdap_application_type:
-        description: denotes whether this is a program-flowlet style application or a hydrator pipeline. For hydrator, this value must be "hydrator-pipeline"
-        type: string
-        enum: ["hydrator-pipeline"]
-      namespace:
-        description: the cdap namespace this is deployed into
-        type: string
-      pipeline_config_json_url:
-        description: the URL of the config.json for this pipeline
-        type: string
-      streamname:
-        description: name of the CDAP stream to ingest data into this app. Should come from the developer and Tosca model.
-        type: string
-      dependencies:
-        description: represents a list of dependencies to be loaded for this pipeline. Not required. 
-        type: array
-        items:
-          $ref: '#/definitions/hydratordep'
-    required: ["cdap_application_type", "namespace", "pipeline_config_json_url", "streamname"]
-        
-  appput:
-    type: object
-    properties:
-      cdap_application_type:
-        description: denotes whether this is a program-flowlet style application or a hydrator pipeline. For program-flowlet style apps, this value must be "program-flowlet"
-        type: string
-        enum: ["program-flowlet"]
-      streamname:
-        description: name of the CDAP stream to ingest data into this app. Should come from the developer and Tosca model.
-        type: string
-      namespace:
-        description: the cdap namespace this is deployed into
-        type: string
-      jar_url:
-        description: the URL that the JAR you're deploying resides
-        type: string
-      artifact_name: 
-        description: the name of the CDAP artifact to be added
-        type: string
-      artifact_ver: 
-        description: the version of the artifact. Must be in X.Y.Z form
-      app_config:
-        description: the application config JSON
-        type: object
-      app_preferences:
-        description: the application preferences JSON
-        type: object
-      programs:
-        type: array
-        items:
-          $ref: '#/definitions/programs'
-      program_preferences:
-        type: array
-        items:
-          $ref: '#/definitions/programpref'
-      services:
-        type: array
-        items: 
-          $ref: '#/definitions/service_endpoint'
-  
-  service_endpoint:
-    description: descirbes a service endpoint, including the service name, the method name, and the method type (GET, PUT, etc, most of the time will be GET)
-    type: object
-    properties:
-      service_name:
-        type: string
-        description: the name of the service
-      service_endpoint:
-        type: string
-        description: the name of the endpoint on the service
-      endpoint_method:
-        type: string
-        description: GET, POST, PUT, etc
-  
-  service_method:
-    description: a URL and HTTP method exposed via a CDAP service
-    type: object
-    properties:
-      url: 
-        type: string
-        description: the fully qualified URL in CDAP for this service 
-      method:
-        type: string
-        description: HTTP method you can perform on the URL, e.g., GET, PUT, etc
-  
-  programs:
-    description: the list of programs in this CDAP app
-    type: object
-    properties:
-      program_type:
-        description: must be one of flows, mapreduce, schedules, spark, workflows, workers, or services
-        type: string
-      program_id: 
-        description: the name of the program
-        type: string
-  
-  returncode:
-    description: an httpreturncode
-    type: integer
-  
-  hydratordep:
-    description: represents a hydrator pipeline dependency. An equivelent to the following CURLs are formed with the below four params shown in CAPS "curl -v -w"\n" -X POST http://cdapurl:11015/v3/namespaces/setelsewhere/artifacts/ARTIFACT_NAME -H "Artifact-Extends:ARTIFACT_EXTENDS_HEADER"  -H “Artifact-Version:ARTIFACT_VERSION_HEADER” --data-binary @(DOWNLOADED FROM ARTIFACT_URL)","curl -v -w"\n" -X PUT http://cdapurl:11015/v3/namespaces/setelsewhere/artifacts/ARTIFACT_NAME/versions/ARTIFACT_VERSION_HEADER/properties -d (DOWNLOADED FROM UI_PROPERTIES_URL)"
-    properties:
-      artifact_extends_header: 
-        description: the value of the header that gets passed in for artifact-extends, e.g., "Artifact-Extends:system:cdap-data-pipeline[4.0.1,5.0.0)"
-        type: string
-      artifact_name: 
-        description: the name of the artifact
-        type: string
-      artifact_version_header :
-        description: the value of the header that gets passed in for artifact-version, e.g., "Artifact-Version:1.0.0-SNAPSHOT"
-        type: string
-      artifact_url:
-        description: the URL of the artifact JAR
-        type: string
-      ui_properties_url:
-        description: the URL of the properties.json if the custom artifact has UI properties. This is optional. 
-        type: string
-    required: ["artifact_extends_header", "artifact_name", "artifact_version_header", "artifact_url"]
-        
-  programpref:
-    description: the list of programs in this CDAP app
-    type: object
-    properties:
-      program_type:
-        description: must be one of flows, mapreduce, schedules, spark, workflows, workers, or services
-        type: string
-      program_id: 
-        description: the name of the program
-        type: string
-      program_pref:
-        description: the preference JSON to set for this program
-        type: object
-  
-  info:
-    description: some broker information
-    type: object
-    properties:
-      managed cdap url: 
-        description: the url of the CDAP cluster API this broker is managing
-        type: string
-      number of applications registered:
-        type: integer
-      uptime (s):
-        type: integer
-      cdap GUI port:
-        type: integer
-        description: The GUI port of the CDAP cluster this broker is managing. Mostly to help users of this API check their application in cdap. Note, will return UNKNOWN_CDAP_VERSION if it cannot be determined. 
-      cdap cluster version: 
-        type: string
-        description: the version of the CDAP cluster this broker is managing. Note, will return UKNOWN_CDAP_VERSION if it cannot be determined. 
-      broker API version:
-        type: string
-        description: the API version of this running broker
-        
-
-  
-