summaryrefslogtreecommitdiffstats
path: root/networking-odl/devstack/odl-releases/lithium-0.3.3-SR3
blob: a1ff407815b856e591936c72743bd366b128ce8b (plain)
1
2
3
4
export ODL_BUNDLEVERSION='0.3.3-Lithium-SR3'

# Java major version required to run OpenDaylight: 7, 8, ...
ODL_REQUIRED_JAVA_VERSION=${ODL_REQUIRED_JAVA_VERSION:-7}
a id='n303' href='#n303'>303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864 865 866 867 868 869 870 871 872 873 874 875 876 877 878 879 880 881 882 883 884 885 886 887 888 889 890 891 892 893 894 895 896 897 898 899 900 901 902 903 904 905 906 907 908 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 924 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 940 941 942 943 944 945 946 947 948 949
#    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.

##########################################################################
# The content of this file reflects TOSCA Simple Profile in YAML version
# 1.0.0. It describes the definition for TOSCA types including Node Type,
# Relationship Type, Capability Type and Interfaces.
##########################################################################
tosca_definitions_version: tosca_simple_yaml_1_0

##########################################################################
# Node Type.
# A Node Type is a reusable entity that defines the type of one or more
# Node Templates.
##########################################################################
node_types:
  tosca.nodes.Root:
    description: >
      The TOSCA root node all other TOSCA base node types derive from.
    attributes:
      tosca_id:
        type: string
      tosca_name:
        type: string
      state:
        type: string
    capabilities:
      feature:
        type: tosca.capabilities.Node
    requirements:
      - dependency:
          capability: tosca.capabilities.Node
          node: tosca.nodes.Root
          relationship: tosca.relationships.DependsOn
          occurrences: [ 0, UNBOUNDED ]
    interfaces:
      Standard:
        type: tosca.interfaces.node.lifecycle.Standard

  tosca.nodes.Compute:
    derived_from: tosca.nodes.Root
    attributes:
      private_address:
        type: string
      public_address:
        type: string
      networks:
        type: map
        entry_schema:
          type: tosca.datatypes.network.NetworkInfo
      ports:
        type: map
        entry_schema:
          type: tosca.datatypes.network.PortInfo
    capabilities:
        host:
           type: tosca.capabilities.Container
        binding:
           type: tosca.capabilities.network.Bindable
        os:
           type: tosca.capabilities.OperatingSystem
        scalable:
           type: tosca.capabilities.Scalable
    requirements:
      - local_storage:
          capability: tosca.capabilities.Attachment
          node: tosca.nodes.BlockStorage
          relationship: tosca.relationships.AttachesTo
          occurrences: [0, UNBOUNDED]

  tosca.nodes.SoftwareComponent:
    derived_from: tosca.nodes.Root
    properties:
      # domain-specific software component version
      component_version:
        type: version
        required: false
        description: >
          Software component version.
      admin_credential:
        type: tosca.datatypes.Credential
        required: false
    requirements:
      - host:
          capability: tosca.capabilities.Container
          node: tosca.nodes.Compute
          relationship: tosca.relationships.HostedOn

  tosca.nodes.DBMS:
    derived_from: tosca.nodes.SoftwareComponent
    properties:
      port:
        required: false
        type: integer
        description: >
          The port the DBMS service will listen to for data and requests.
      root_password:
        required: false
        type: string
        description: >
          The root password for the DBMS service.
    capabilities:
      host:
        type: tosca.capabilities.Container
        valid_source_types: [tosca.nodes.Database]

  tosca.nodes.Database:
    derived_from: tosca.nodes.Root
    properties:
      user:
        required: false
        type: string
        description: >
          User account name for DB administration
      port:
        required: false
        type: integer
        description:  >
          The port the database service will use to listen for incoming data and
          requests.
      name:
        required: false
        type: string
        description: >
          The name of the database.
      password:
        required: false
        type: string
        description: >
          The password for the DB user account
    requirements:
      - host:
          capability: tosca.capabilities.Container
          node: tosca.nodes.DBMS
          relationship: tosca.relationships.HostedOn
    capabilities:
      database_endpoint:
        type: tosca.capabilities.Endpoint.Database

  tosca.nodes.WebServer:
    derived_from: tosca.nodes.SoftwareComponent
    capabilities:
      data_endpoint:
        type: tosca.capabilities.Endpoint
      admin_endpoint:
        type: tosca.capabilities.Endpoint.Admin
      host:
        type: tosca.capabilities.Container
        valid_source_types: [tosca.nodes.WebApplication]

  tosca.nodes.WebApplication:
    derived_from: tosca.nodes.Root
    properties:
      context_root:
        type: string
        required: false
    requirements:
      - host:
          capability: tosca.capabilities.Container
          node: tosca.nodes.WebServer
          relationship: tosca.relationships.HostedOn
    capabilities:
      app_endpoint:
        type: tosca.capabilities.Endpoint

  tosca.nodes.BlockStorage:
    derived_from: tosca.nodes.Root
    properties:
      size:
        type: scalar-unit.size
        constraints:
          - greater_or_equal: 1 MB
      volume_id:
        type: string
        required: false
      snapshot_id:
        type: string
        required: false
    attributes:
      volume_id:
        type: string
    capabilities:
      attachment:
        type: tosca.capabilities.Attachment

  tosca.nodes.network.Network:
    derived_from: tosca.nodes.Root
    description: >
      The TOSCA Network node represents a simple, logical network service.
    properties:
      ip_version:
        type: integer
        required: false
        default: 4
        constraints:
          - valid_values: [ 4, 6 ]
        description: >
          The IP version of the requested network. Valid values are 4 for ipv4
          or 6 for ipv6.
      cidr:
        type: string
        required: false
        description: >
          The cidr block of the requested network.
      start_ip:
        type: string
        required: false
        description: >
           The IP address to be used as the start of a pool of addresses within
           the full IP range derived from the cidr block.
      end_ip:
        type: string
        required: false
        description: >
            The IP address to be used as the end of a pool of addresses within
            the full IP range derived from the cidr block.
      gateway_ip:
        type: string
        required: false
        description: >
           The gateway IP address.
      network_name:
        type: string
        required: false
        description: >
           An identifier that represents an existing Network instance in the
           underlying cloud infrastructure or can be used as the name of the
           newly created network. If network_name is provided and no other
           properties are provided (with exception of network_id), then an
           existing network instance will be used. If network_name is provided
           alongside with more properties then a new network with this name will
           be created.
      network_id:
        type: string
        required: false
        description: >
           An identifier that represents an existing Network instance in the
           underlying cloud infrastructure. This property is mutually exclusive
           with all other properties except network_name. This can be used alone
           or together with network_name to identify an existing network.
      segmentation_id:
        type: string
        required: false
        description: >
           A segmentation identifier in the underlying cloud infrastructure.
           E.g. VLAN ID, GRE tunnel ID, etc..
      network_type:
        type: string
        required: false
        description: >
           It specifies the nature of the physical network in the underlying
           cloud infrastructure. Examples are flat, vlan, gre or vxlan.
           For flat and vlan types, physical_network should be provided too.
      physical_network:
        type: string
        required: false
        description: >
           It identifies the physical network on top of which the network is
           implemented, e.g. physnet1. This property is required if network_type
           is flat or vlan.
      dhcp_enabled:
        type: boolean
        required: false
        default: true
        description: >
          Indicates should DHCP service be enabled on the network or not.
    capabilities:
      link:
        type: tosca.capabilities.network.Linkable

  tosca.nodes.network.Port:
    derived_from: tosca.nodes.Root
    description: >
      The TOSCA Port node represents a logical entity that associates between
      Compute and Network normative types. The Port node type effectively
      represents a single virtual NIC on the Compute node instance.
    properties:
      ip_address:
        type: string
        required: false
        description: >
          Allow the user to set a static IP.
      order:
        type: integer
        required: false
        default: 0
        constraints:
          - greater_or_equal: 0
        description: >
          The order of the NIC on the compute instance (e.g. eth2).
      is_default:
        type: boolean
        required: false
        default: false
        description: >
          If is_default=true this port will be used for the default gateway
          route. Only one port that is associated to single compute node can
          set as is_default=true.
      ip_range_start:
        type: string
        required: false
        description: >
          Defines the starting IP of a range to be allocated for the compute
          instances that are associated with this Port.
      ip_range_end:
        type: string
        required: false
        description: >
          Defines the ending IP of a range to be allocated for the compute
          instances that are associated with this Port.
    attributes:
      ip_address:
        type: string
    requirements:
      - binding:
          description: >
            Binding requirement expresses the relationship between Port and
            Compute nodes. Effectively it indicates that the Port will be
            attached to specific Compute node instance
          capability: tosca.capabilities.network.Bindable
          relationship: tosca.relationships.network.BindsTo
          node: tosca.nodes.Compute
      - link:
          description: >
            Link requirement expresses the relationship between Port and Network
            nodes. It indicates which network this port will connect to.
          capability: tosca.capabilities.network.Linkable
          relationship: tosca.relationships.network.LinksTo
          node: tosca.nodes.network.Network

  tosca.nodes.ObjectStorage:
    derived_from: tosca.nodes.Root
    description: >
      The TOSCA ObjectStorage node represents storage that provides the ability
      to store data as objects (or BLOBs of data) without consideration for the
      underlying filesystem or devices
    properties:
      name:
        type: string
        required: true
        description: >
          The logical name of the object store (or container).
      size:
        type: scalar-unit.size
        required: false
        constraints:
          - greater_or_equal: 0 GB
        description: >
          The requested initial storage size.
      maxsize:
        type: scalar-unit.size
        required: false
        constraints:
          - greater_or_equal: 0 GB
        description: >
          The requested maximum storage size.
    capabilities:
      storage_endpoint:
        type: tosca.capabilities.Endpoint

  tosca.nodes.LoadBalancer:
    derived_from: tosca.nodes.Root
    properties:
      algorithm:
        type: string
        required: false
        status: experimental
    capabilities:
      client:
        type: tosca.capabilities.Endpoint.Public
        occurrences: [0, UNBOUNDED]
        description: the Floating (IP) client’s on the public network can connect to
    requirements:
      - application:
          capability: tosca.capabilities.Endpoint
          relationship: tosca.relationships.RoutesTo
          occurrences: [0, UNBOUNDED]
          description: Connection to one or more load balanced applications

  tosca.nodes.Container.Application:
    derived_from: tosca.nodes.Root
    requirements:
      - host:
          capability: tosca.capabilities.Container
          node: tosca.nodes.Container.Runtime
          relationship: tosca.relationships.HostedOn

  tosca.nodes.Container.Runtime:
    derived_from: tosca.nodes.SoftwareComponent
    capabilities:
      host:
        type: tosca.capabilities.Container
      scalable:
        type: tosca.capabilities.Scalable

  tosca.nodes.Container.Application.Docker:
    derived_from: tosca.nodes.Container.Application
    requirements:
      - host:
          capability: tosca.capabilities.Container.Docker

##########################################################################
# Relationship Type.
# A Relationship Type is a reusable entity that defines the type of one
# or more relationships between Node Types or Node Templates.
##########################################################################
relationship_types:
  tosca.relationships.Root:
    description: >
      The TOSCA root Relationship Type all other TOSCA base Relationship Types
      derive from.
    attributes:
      tosca_id:
        type: string
      tosca_name:
        type: string
    interfaces:
      Configure:
        type: tosca.interfaces.relationship.Configure

  tosca.relationships.DependsOn:
    derived_from: tosca.relationships.Root

  tosca.relationships.HostedOn:
    derived_from: tosca.relationships.Root
    valid_target_types: [ tosca.capabilities.Container ]

  tosca.relationships.ConnectsTo:
    derived_from: tosca.relationships.Root
    valid_target_types: [ tosca.capabilities.Endpoint ]
    credential:
      type: tosca.datatypes.Credential
      required: false

  tosca.relationships.AttachesTo:
    derived_from: tosca.relationships.Root
    valid_target_types: [ tosca.capabilities.Attachment ]
    properties:
      location:
        required: true
        type: string
        constraints:
          - min_length: 1
      device:
        required: false
        type: string

  tosca.relationships.RoutesTo:
    derived_from: tosca.relationships.ConnectsTo
    valid_target_types: [ tosca.capabilities.Endpoint ]

  tosca.relationships.network.LinksTo:
    derived_from: tosca.relationships.DependsOn
    valid_target_types: [ tosca.capabilities.network.Linkable ]

  tosca.relationships.network.BindsTo:
    derived_from: tosca.relationships.DependsOn
    valid_target_types: [ tosca.capabilities.network.Bindable ]

##########################################################################
# Capability Type.
# A Capability Type is a reusable entity that describes a kind of
# capability that a Node Type can declare to expose.
##########################################################################
capability_types:
  tosca.capabilities.Root:
    description: >
      The TOSCA root Capability Type all other TOSCA base Capability Types
      derive from.

  tosca.capabilities.Node:
    derived_from: tosca.capabilities.Root

  tosca.capabilities.Container:
    derived_from: tosca.capabilities.Root
    properties:
      num_cpus:
        required: false
        type: integer
        constraints:
          - greater_or_equal: 1
      cpu_frequency:
        required: false
        type: scalar-unit.frequency
        constraints:
          - greater_or_equal: 0.1 GHz
      disk_size:
        required: false
        type: scalar-unit.size
        constraints:
          - greater_or_equal: 0 MB
      mem_size:
        required: false
        type: scalar-unit.size
        constraints:
          - greater_or_equal: 0 MB

  tosca.capabilities.Endpoint:
    derived_from: tosca.capabilities.Root
    properties:
      protocol:
        type: string
        required: true
        default: tcp
      port:
        type: tosca.datatypes.network.PortDef
        required: false
      secure:
        type: boolean
        required: false
        default: false
      url_path:
        type: string
        required: false
      port_name:
        type: string
        required: false
      network_name:
        type: string
        required: false
      initiator:
        type: string
        required: false
        default: source
        constraints:
          - valid_values: [source, target, peer]
      ports:
        type: map
        required: false
        constraints:
          - min_length: 1
        entry_schema:
          type: tosca.datatypes.network.PortSpec
    attributes:
      ip_address:
        type: string

  tosca.capabilities.Endpoint.Admin:
    derived_from: tosca.capabilities.Endpoint
    properties:
      secure:
        type: boolean
        default: true
        constraints:
          - equal: true

  tosca.capabilities.Endpoint.Public:
    derived_from: tosca.capabilities.Endpoint
    properties:
      # Change the default network_name to use the first public network found
      network_name:
        type: string
        default: PUBLIC
        constraints:
          - equal: PUBLIC
      floating:
        description: >
          Indicates that the public address should be allocated from a pool of
          floating IPs that are associated with the network.
        type: boolean
        default: false
        status: experimental
      dns_name:
        description: The optional name to register with DNS
        type: string
        required: false
        status: experimental

  tosca.capabilities.Scalable:
    derived_from: tosca.capabilities.Root
    properties:
      min_instances:
        type: integer
        required: true
        default: 1
        description: >
          This property is used to indicate the minimum number of instances
          that should be created for the associated TOSCA Node Template by
          a TOSCA orchestrator.
      max_instances:
        type: integer
        required: true
        default: 1
        description: >
          This property is used to indicate the maximum number of instances
          that should be created for the associated TOSCA Node Template by
          a TOSCA orchestrator.
      default_instances:
        type: integer
        required: false
        description: >
          An optional property that indicates the requested default number
          of instances that should be the starting number of instances a
          TOSCA orchestrator should attempt to allocate.
          The value for this property MUST be in the range between the values
          set for min_instances and max_instances properties.

  tosca.capabilities.Endpoint.Database:
    derived_from: tosca.capabilities.Endpoint

  tosca.capabilities.Attachment:
    derived_from: tosca.capabilities.Root

  tosca.capabilities.network.Linkable:
    derived_from: tosca.capabilities.Root
    description: >
      A node type that includes the Linkable capability indicates that it can
      be pointed by tosca.relationships.network.LinksTo relationship type, which
      represents an association relationship between Port and Network node types.

  tosca.capabilities.network.Bindable:
    derived_from: tosca.capabilities.Root
    description: >
      A node type that includes the Bindable capability indicates that it can
      be pointed by tosca.relationships.network.BindsTo relationship type, which
      represents a network association relationship between Port and Compute node
      types.

  tosca.capabilities.OperatingSystem:
    derived_from: tosca.capabilities.Root
    properties:
      architecture:
        required: false
        type: string
        description: >
          The host Operating System (OS) architecture.
      type:
        required: false
        type: string
        description: >
          The host Operating System (OS) type.
      distribution:
        required: false
        type: string
        description: >
          The host Operating System (OS) distribution. Examples of valid values
          for an “type” of “Linux” would include:
          debian, fedora, rhel and ubuntu.
      version:
        required: false
        type: version
        description: >
          The host Operating System version.

  tosca.capabilities.Container.Docker:
    derived_from: tosca.capabilities.Container
    properties:
      version:
        type: list
        required: false
        entry_schema:
          type: version
        description: >
          The Docker version capability.
      publish_all:
        type: boolean
        default: false
        required: false
        description: >
          Indicates that all ports (ranges) listed in the dockerfile
          using the EXPOSE keyword be published.
      publish_ports:
        type: list
        entry_schema:
          type: PortSpec
        required: false
        description: >
          List of ports mappings from source (Docker container)
          to target (host) ports to publish.
      expose_ports:
        type: list
        entry_schema:
          type: PortSpec
        required: false
        description: >
          List of ports mappings from source (Docker container) to expose
          to other Docker containers (not accessible outside host).
      volumes:
        type: list
        entry_schema:
          type: string
        required: false
        description: >
          The dockerfile VOLUME command which is used to enable access
          from the Docker container to a directory on the host machine.
      host_id:
        type: string
        required: false
        description: >
            The optional identifier of an existing host resource
            that should be used to run this container on.
      volume_id:
        type: string
        required: false
        description: >
          The optional identifier of an existing storage volume (resource)
          that should be used to create the container's mount point(s) on.

##########################################################################
 # Interfaces Type.
 # The Interfaces element describes a list of one or more interface
 # definitions for a modelable entity (e.g., a Node or Relationship Type)
 # as defined within the TOSCA Simple Profile specification.
##########################################################################
interface_types:
  tosca.interfaces.node.lifecycle.Standard:
    create:
      description: Standard lifecycle create operation.
    configure:
      description: Standard lifecycle configure operation.
    start:
      description: Standard lifecycle start operation.
    stop:
      description: Standard lifecycle stop operation.
    delete:
      description: Standard lifecycle delete operation.

  tosca.interfaces.relationship.Configure:
    pre_configure_source:
      description: Operation to pre-configure the source endpoint.
    pre_configure_target:
      description: Operation to pre-configure the target endpoint.
    post_configure_source:
      description: Operation to post-configure the source endpoint.
    post_configure_target:
      description: Operation to post-configure the target endpoint.
    add_target:
      description: Operation to add a target node.
    remove_target:
      description: Operation to remove a target node.
    add_source: >
      description: Operation to notify the target node of a source node which
      is now available via a relationship.
      description:
    target_changed: >
      description: Operation to notify source some property or attribute of the
      target changed

##########################################################################
 # Data Type.
 # A Datatype is a complex data type declaration which contains other
 # complex or simple data types.
##########################################################################
data_types:
  tosca.datatypes.Root:
    description: >
      The TOSCA root Data Type all other TOSCA base Data Types derive from

  tosca.datatypes.network.NetworkInfo:
    derived_from: tosca.datatypes.Root
    properties:
      network_name:
        type: string
      network_id:
        type: string
      addresses:
        type: list
        entry_schema:
          type: string

  tosca.datatypes.network.PortInfo:
    derived_from: tosca.datatypes.Root
    properties:
      port_name:
        type: string
      port_id:
        type: string
      network_id:
        type: string
      mac_address:
        type: string
      addresses:
        type: list
        entry_schema:
          type: string

  tosca.datatypes.network.PortDef:
    derived_from: tosca.datatypes.Root
    type: integer
    constraints:
      - in_range: [ 1, 65535 ]

  tosca.datatypes.network.PortSpec:
    derived_from: tosca.datatypes.Root
    properties:
      protocol:
        type: string
        required: true
        default: tcp
        constraints:
          - valid_values: [ udp, tcp, igmp ]
      target:
        type: PortDef
        required: false
      target_range:
        type: range
        required: false
        constraints:
          - in_range: [ 1, 65535 ]
      source:
        type: PortDef
        required: false
      source_range:
        type: range
        required: false
        constraints:
          - in_range: [ 1, 65535 ]

  tosca.datatypes.Credential:
    derived_from: tosca.datatypes.Root
    properties:
      protocol:
        type: string
        required: false
      token_type:
        type: string
        default: password
        required: true
      token:
        type: string
        required: true
      keys:
        type: map
        entry_schema:
          type: string
        required: false
      user:
        type: string
        required: false

##########################################################################
 # Artifact Type.
 # An Artifact Type is a reusable entity that defines the type of one or more
 # files which Node Types or Node Templates can have dependent relationships
 # and used during operations such as during installation or deployment.
##########################################################################
artifact_types:
  tosca.artifacts.Root:
    description: >
      The TOSCA Artifact Type all other TOSCA Artifact Types derive from
    properties:
      version: version

  tosca.artifacts.File:
    derived_from: tosca.artifacts.Root

  tosca.artifacts.Deployment:
    derived_from: tosca.artifacts.Root
    description: TOSCA base type for deployment artifacts

  tosca.artifacts.Deployment.Image:
    derived_from: tosca.artifacts.Deployment

  tosca.artifacts.Deployment.Image.VM:
    derived_from: tosca.artifacts.Deployment.Image

  tosca.artifacts.Implementation:
    derived_from: tosca.artifacts.Root
    description: TOSCA base type for implementation artifacts

  tosca.artifacts.Implementation.Bash:
    derived_from: tosca.artifacts.Implementation
    description: Script artifact for the Unix Bash shell
    mime_type: application/x-sh
    file_ext: [ sh ]

  tosca.artifacts.Implementation.Python:
    derived_from: tosca.artifacts.Implementation
    description: Artifact for the interpreted Python language
    mime_type: application/x-python
    file_ext: [ py ]

  tosca.artifacts.Deployment.Image.Container.Docker:
    derived_from: tosca.artifacts.Deployment.Image
    description: Docker container image

  tosca.artifacts.Deployment.Image.VM.ISO:
    derived_from: tosca.artifacts.Deployment.Image
    description: Virtual Machine (VM) image in ISO disk format
    mime_type: application/octet-stream
    file_ext: [ iso ]

  tosca.artifacts.Deployment.Image.VM.QCOW2:
    derived_from: tosca.artifacts.Deployment.Image
    description: Virtual Machine (VM) image in QCOW v2 standard disk format
    mime_type: application/octet-stream
    file_ext: [ qcow2 ]

##########################################################################
 # Policy Type.
 # TOSCA Policy Types represent logical grouping of TOSCA nodes that have
 # an implied relationship and need to be orchestrated or managed together
 # to achieve some result.
##########################################################################
policy_types:
  tosca.policies.Root:
    description: The TOSCA Policy Type all other TOSCA Policy Types derive from.

  tosca.policies.Placement:
    derived_from: tosca.policies.Root
    description: The TOSCA Policy Type definition that is used to govern
      placement of TOSCA nodes or groups of nodes.

  tosca.policies.Placement.Colocate:
    derived_from: tosca.policies.Placement
    description: The TOSCA Policy Type definition that is used to govern
      colocate placement of TOSCA nodes or groups of nodes.

  tosca.policies.Placement.Antilocate:
    derived_from: tosca.policies.Placement
    description: The TOSCA Policy Type definition that is used to govern
      anti-locate placement of TOSCA nodes or groups of nodes.

  tosca.policies.Scaling:
    derived_from: tosca.policies.Root
    description: The TOSCA Policy Type definition that is used to govern
      scaling of TOSCA nodes or groups of nodes.

  tosca.policies.Update:
    derived_from: tosca.policies.Root
    description: The TOSCA Policy Type definition that is used to govern
      update of TOSCA nodes or groups of nodes.

  tosca.policies.Performance:
    derived_from: tosca.policies.Root
    description: The TOSCA Policy Type definition that is used to declare
      performance requirements for TOSCA nodes or groups of nodes.

##########################################################################
 # Group Type.
 # Group Type represents logical grouping of TOSCA nodes that have an
 # implied membership relationship and may need to be orchestrated or
 # managed together to achieve some result.
##########################################################################
group_types:
  tosca.groups.Root:
    description: The TOSCA Group Type all other TOSCA Group Types derive from
    interfaces:
      Standard:
        type: tosca.interfaces.node.lifecycle.Standard