summaryrefslogtreecommitdiffstats
path: root/cdap/cdap_types.yaml
blob: ae0f146a68b2d9c12c93b531400df24d5656d76c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
# ================================================================================
# 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.
tosca_definitions_version: cloudify_dsl_1_3

imports:
    - http://www.getcloudify.org/spec/cloudify/3.4/types.yaml
plugins:
  cdap_deploy:
    executor: central_deployment_agent
    package_name: cdapcloudify
    package_version: 14.3.0

data_types:
    cdap_connections:
        properties:
            services_calls:
                default: []
            streams_publishes:
                default: []
            streams_subscribes:
                default: []

node_types:  
  dcae.nodes.MicroService.cdap:
    derived_from: cloudify.nodes.Root
    properties:
      service_component_type:
        type: string
      #####
      #For the following parameters in this block, see the Broker API
      #####
      jar_url:
        type: string
      artifact_name:
        type: string
      artifact_version:
        type: string    
      connections: 
        type: cdap_connections
      app_config:
        default: {}
      app_preferences:
        default: {}
      program_preferences:
        default: []
      programs:
        default: []
      streamname:
        #currently, we only support CDAP apps written that read from a
        #stream. This is not the only ingest mechanism for CDAP. This may have to change/get
        type: string
      namespace:
        #the namespace to deploy the CDAP app into
        #defaults to the default cdap namespace which is called "default"
        type: string
        default : "default"
      service_endpoints:
        default: []
    
    interfaces:
      cloudify.interfaces.lifecycle:
        create:
          implementation: cdap_deploy.cdapcloudify.cdap_plugin.create
          inputs:
            connected_broker_dns_name: 
              type: string
              description: This is the broker's DNS name. There could be multiple brokers/clusters at a site. Could by populated via an intrinsic_function in a blueprint, or manually via inputs file
              default: "cdap_broker"
        start:
          cdap_deploy.cdapcloudify.cdap_plugin.deploy_and_start_application
        delete:
          cdap_deploy.cdapcloudify.cdap_plugin.stop_and_undeploy_application
      
      dcae.interfaces.policy:
        policy_update:
          implementation:
              cdap_deploy.cdapcloudify.cdap_plugin.policy_update
          inputs:
            updated_policies:
              description: "list of policy objects"
              default: []

      #TODO: These can probably go away after policy_update is implemented
      reconfiguration:
        app_config_reconfigure:
            implementation: cdap_deploy.cdapcloudify.cdap_plugin.app_config_reconfigure
            inputs:
                new_config_template:
                    description: "new unbound config for the CDAP AppConfig as a JSON"
                    default: {}
        app_preferences_reconfigure:
            implementation: cdap_deploy.cdapcloudify.cdap_plugin.app_preferences_reconfigure
            inputs:
                new_config_template:
                    description: "new bound config for the CDAP AppPreferences as a JSON"
                    default: {}
        app_smart_reconfigure:
            implementation: cdap_deploy.cdapcloudify.cdap_plugin.app_smart_reconfigure
            inputs:
                new_config_template:
                    description: "new unbound config for the CDAP AppConfig as a JSON"
                    default: {}

  dcae.nodes.broker_deleter:
    derived_from: cloudify.nodes.Root
    interfaces: 
      cloudify.interfaces.lifecycle:
        delete: #stop better than delete? not sure it matters much. Think all source interfaces are operated on before target on uninstall. 
          implementation: cdap_deploy.cdapcloudify.cdap_plugin.delete_all_registered_apps
          inputs:
            connected_broker_dns_name: 
              type: string
              description: This is the broker's DNS name. There could be multiple brokers/clusters at a site. Could by populated via an intrinsic_function in a blueprint, or manually via inputs file
              default: "cdap_broker"