{
  "csar_name": "example",
  "node_types": {
    "Apache": {
      "properties_schema": {
        "HTTPPort": {
          "type": "string",
          "default": "8080"
        },
        "UseSSL": {
          "type": "boolean",
          "default": "true"
        },
        "logs": {
          "type": "string",
          "output": "install"
        }
      },
      "operations": {
        "install": [ "apache_install" ],
        "configure": [ "apache_install" ]
      }
    },
    "MySQL": {
      "operations": {
        "install, configure": "mysql_install"
      },
      "deployment_artifact": {
        "type": "WAR",
        "artifact_name": "special-artifact-name",
        "properties": {
          "ServiceEndpoint": "/services/org_opentosca_NodeTypes_UbuntuPort",
          "PortType": "{http://opentosca.org/NodeTypes}org_opentosca_NodeTypes_Ubuntu",
          "InvocationType": "SOAP/HTTP"
        },
        "references": [
          "some-dir/test2.txt"
        ]
      }
    },
    "AnotherNodeType": { "$toscafy.embedFileAsJson": "some-dir/some-node-type.csarspec.json" }
  },
  "artifacts": {
    "apache_install": {
      "type": "WAR",
      "properties": {
        "WSProperties": {
          "ServiceEndpoint": "/services/org_opentosca_NodeTypes_UbuntuPort",
          "PortType": "{http://opentosca.org/NodeTypes}org_opentosca_NodeTypes_Ubuntu",
          "InvocationType": "SOAP/HTTP"
        }
      },
      "references": [
        { "$toscafy.fetchAsFile": "https://gist.githubusercontent.com/jojow/0e5f6cea3d052999b662b60ad37f6d2f/raw/212ddd43f4372b95bb334aa94755412bc93cc117/opal-clus.metadata.json", "filename": "opal-clus.metadata.json" },
        "./some-script.sh",
        "some-dir/sub-dir/test3.txt"
      ]
    },
    "mysql_install": {
      "type": "DockerCompose",
      "properties": {
        "contextFile": "test2.txt",
        "serviceName": "mysql-mgmt-api",
        "containerPort": "3000",
        "endpointPath": "/",
        "endpointKind": "soap"
      },
      "references": [
        "some-dir/test2.txt"
      ]
    }
  },
  "topologies": {
    "ProductionEnv": {
      "nodes": {
        "ApacheHTTPServer": {
          "type": "Apache",
          "properties": {
            "HTTPPort": "8081"
          },
          "deployment_artifacts": [ ]
        },
        "MySQLDBServer": {
          "type": "MySQL"
        }
      },
      "relationships": {
        "ApacheConnectsToMySQL": {
          "type": "connects_to",
          "source": "ApacheHTTPServer",
          "target": "MySQLDBServer"
        }
      }
    }
  },

  "t1": { "$toscafy.fetchAsText": "https://gist.githubusercontent.com/jojow/0e5f6cea3d052999b662b60ad37f6d2f/raw/212ddd43f4372b95bb334aa94755412bc93cc117/opal-clus.metadata.json" },
  "t2": { "$toscafy.fetchAsJson": "https://gist.githubusercontent.com/jojow/0e5f6cea3d052999b662b60ad37f6d2f/raw/212ddd43f4372b95bb334aa94755412bc93cc117/opal-clus.metadata.json" },
  "t2a": { "$toscafy.fetchAsJson": "https://gist.githubusercontent.com/jojow/0e5f6cea3d052999b662b60ad37f6d2f/raw/212ddd43f4372b95bb334aa94755412bc93cc117/opal-clus.metadata.json", "stringify": true },
  "t3": { "$toscafy.fetchAsBase64": "https://gist.githubusercontent.com/jojow/0e5f6cea3d052999b662b60ad37f6d2f/raw/212ddd43f4372b95bb334aa94755412bc93cc117/opal-clus.metadata.json" },

  "t4": { "$toscafy.embedFileAsText": "some-script.sh" },
  "t5": { "$toscafy.embedFileAsJson": "some-data.json", "part": "foo" },
  "t5a": { "$toscafy.embedFileAsJson": "some-data.json", "stringify": true },
  "t6": { "$toscafy.embedFileAsBase64": "some-script.sh" },

  "t7": { "$toscafy.embedDirAsZipBase64": "some-dir" },
  "t8": { "$toscafy.embedDirAsTgzBase64": "some-dir" },

  "t9": { "$toscafy.addDir": "some-dir", "dirname": "another-dir" },
  "t10": { "$toscafy.addFile": "some-script.sh", "filename": "another-script.sh" },

  "t11": { "$toscafy.addDirAsZip": "some-dir", "filename": "some-dir-compressed.zip" },
  "t12": { "$toscafy.addDirAsTgz": "some-dir", "filename": "some-dir-compressed.tgz" }
}
