diff --git a/api-ref/source/v1/classifiers.inc b/api-ref/source/v1/classifiers.inc index e69de29bb..bb4b3dc3d 100644 --- a/api-ref/source/v1/classifiers.inc +++ b/api-ref/source/v1/classifiers.inc @@ -0,0 +1,96 @@ +.. -*- rst -*- + +=========== +Classifiers +=========== + +Lists classifiers and shows information of a given classifier. + +The classifier is a component of a NFP and defines policies to +distinguish which traffic should enter the related SFC. + +List classifiers +================ + +.. rest_method:: GET /v1.0/classifiers + +Lists classifiers. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - classifiers: classifiers + - status: classifier_status + - nfp_id: classifier_nfp_id + - tenant_id: tenant_id + - chain_id: classifier_chain_id + - instance_id: classifier_instance_id + - id: classifier_id + - match: classifier_match + +Response Example +---------------- + +.. literalinclude:: samples/classifiers/classifiers-list-response.json + :language: javascript + +Show classifier +=============== + +.. rest_method:: GET /v1.0/classifiers/{sfc_id} + +Shows information of a given classifier. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - classifier_id: classifier_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - classifiers: classifiers + - status: classifier_status + - nfp_id: classifier_nfp_id + - tenant_id: tenant_id + - chain_id: classifier_chain_id + - instance_id: classifier_instance_id + - id: classifier_id + - match: classifier_match + +Response Example +---------------- + +.. literalinclude:: samples/classifiers/classifiers-show-response.json + :language: javascript diff --git a/api-ref/source/v1/events.inc b/api-ref/source/v1/events.inc index e69de29bb..3250c7352 100644 --- a/api-ref/source/v1/events.inc +++ b/api-ref/source/v1/events.inc @@ -0,0 +1,98 @@ +.. -*- rst -*- + +========== +Events +========== + +Lists and shows captured events. + +Tacker currently supports events for following resource types: + +- VNFD +- VNF +- VIM + +List events +=========== + +.. rest_method:: GET /v1.0/events + +Lists events of resources. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - events: events + - resource_id: event_resource_id + - timestamp: event_timestamp + - event_details: event_details + - resource_state: event_resource_state + - id: event_id + - resource_type: event_resource_type + +Response Example +---------------- + +.. literalinclude:: samples/events/events-list-response.json + :language: javascript + + +Show event +========== + +.. rest_method:: GET /v1.0/events/{event_id} + +Shows information of a given event. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - event_id: event_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - event: event + - resource_id: event_resource_id + - timestamp: event_timestamp + - event_details: event_details + - resource_state: event_resource_state + - id: event_id + - resource_type: event_resource_type + +Response Example +---------------- + +.. literalinclude:: samples/events/events-show-response.json + :language: javascript diff --git a/api-ref/source/v1/extensions.inc b/api-ref/source/v1/extensions.inc index e69de29bb..7f5d3457b 100644 --- a/api-ref/source/v1/extensions.inc +++ b/api-ref/source/v1/extensions.inc @@ -0,0 +1,91 @@ +.. -*- rst -*- + +========== +Extensions +========== + +Lists extensions and shows information of a given extension. + +Extensions introduce features to the API. + +List extensions +=============== + +.. rest_method:: GET /v1.0/extensions + +Lists available extensions. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - extensions: extensions + - updated: extension_updated_at + - name: name + - links: links + - alias: alias + - description: description + +Response Example +---------------- + +.. literalinclude:: samples/extensions/extensions-list-response.json + :language: javascript + +Show extension +============== + +.. rest_method:: GET /v1.0/extensions/{alias} + +Shows information of a given extension. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - alias: alias_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - extension: extensions + - updated: extension_updated_at + - name: name + - links: links + - alias: alias + - description: description + +Response Example +---------------- + +.. literalinclude:: samples/extensions/extensions-show-response.json + :language: javascript diff --git a/api-ref/source/v1/nfps.inc b/api-ref/source/v1/nfps.inc index e69de29bb..e74b90b0e 100644 --- a/api-ref/source/v1/nfps.inc +++ b/api-ref/source/v1/nfps.inc @@ -0,0 +1,98 @@ +.. -*- rst -*- + +=============================== +Network Forwarding Paths (NFPs) +=============================== + +Lists Network Forwarding Paths (NFPs) and shows information of a given NFP. + +The NFP is a component of VNFFG and contains a Service Function Chain (SFC) +and a classifier. + +List NFPs +========= + +.. rest_method:: GET /v1.0/nfps + +Lists NFPs. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - nfps: nfps + - status: nfp_status + - name: name + - tenant_id: tenant_id + - chain_id: sfc_id + - path_id: sfc_path_id + - symmetrical: symmetrical + - classifier_id: classifier_id + - id: nfp_id + +Response Example +---------------- + +.. literalinclude:: samples/nfps/nfps-list-response.json + :language: javascript + +Show NFP +======== + +.. rest_method:: GET /v1.0/nfps/{nfp_id} + +Shows information of a given NFP. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - nfp_id: nfp_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - nfp: nfp + - status: nfp_status + - name: name + - tenant_id: tenant_id + - chain_id: sfc_id + - path_id: sfc_path_id + - symmetrical: symmetrical + - classifier_id: classifier_id + - id: nfp_id + +Response Example +---------------- + +.. literalinclude:: samples/nfps/nfps-show-response.json + :language: javascript diff --git a/api-ref/source/v1/parameters.yaml b/api-ref/source/v1/parameters.yaml index e69de29bb..556b9c3ca 100644 --- a/api-ref/source/v1/parameters.yaml +++ b/api-ref/source/v1/parameters.yaml @@ -0,0 +1,807 @@ +# variables in header + +# variables in path +alias_path: + description: | + The alias of the extension. + in: path + required: true + type: string +classifier_id_path: + description: | + The UUID of the classifier. + in: path + required: true + type: string +event_id_path: + description: | + The ID of the event. + in: path + required: true + type: string +nfp_id_path: + description: | + The UUID of the NFP. + in: path + required: true + type: string +sfc_id_path: + description: | + The UUID of the SFC. + in: path + required: true + type: string +vim_id_path: + description: | + The UUID of the VIM. + in: path + required: true + type: string +vnf_id_path: + description: | + The UUID of the VNF. + in: path + required: true + type: string +vnfd_id_path: + description: | + The UUID of the VNFD. + in: path + required: true + type: string +vnffg_id_path: + description: | + The UUID of the VNFFG. + in: path + required: true + type: string +vnffgd_id_path: + description: | + The UUID of the VNFFGD. + in: path + required: true + type: string + +# variables in query + +# variables in body +alias: + description: | + The alias for the extension. For example, + "Commonservices", "NFVO" or "VNFM". + in: body + required: true + type: string +classifier: + description: | + A ``classifier`` object. + in: body + required: true + type: object +classifier_chain_id: + description: | + The UUID of the SFC which the classifier is related to. + in: body + required: true + type: string +classifier_id: + description: | + The UUID of the Classifier. + in: body + required: true + type: string +classifier_instance_id: + description: | + The UUID information to uniquely identify the classifier instance. + A classifier is instantiated as a Neutron Flow Classifier when + using OpenStack VIM Driver. + in: body + required: true + type: string +classifier_match: + description: | + A match policy object that will be used to distinguish which + traffic should enter the related SFC. + in: body + required: true + type: object +classifier_nfp_id: + description: | + The UUID of the NFP which the classifier belongs to. + in: body + required: true + type: string +classifier_status: + description: | + Status of the classifier. + in: body + required: true + type: string +classifiers: + description: | + A list of ``classifier`` objects. + in: body + required: true + type: array +created_at: + description: | + The date and time when the resource was created. The format is + ``YYYY-MM-DD hh:mm:ss``. For example, ``2016-09-23 09:57:35``. + in: body + required: true + type: string +description: + description: | + Human-readable description for the resource. + in: body + required: true + type: string +description_opt: + description: | + Human-readable description for the resource. + in: body + required: false + type: string +event: + description: | + An ``event`` object. + in: body + required: true + type: object +event_details: + description: | + The detailed information for the event, if any. + in: body + required: true + type: string +event_id: + description: | + The ID of the event. + in: body + required: true + type: integer +event_resource_id: + description: | + The UUID of the resource that is related to the event. + in: body + required: true + type: string +event_resource_state: + description: | + The state of the resource that is related to the event. + in: body + required: true + type: string +event_resource_type: + description: | + The type of the resource that is related to the event. + in: body + required: true + type: string +event_timestamp: + description: | + The date and time when the event was created. The format is + ``YYYY-MM-DD hh:mm:ss``. For example, ``2016-09-23 09:57:35``. + in: body + required: true + type: string +events: + description: | + A list of ``event`` objects. + in: body + required: true + type: array +extension: + description: | + An ``extension`` object. + in: body + required: true + type: object +extension_updated_at: + description: | + The date and time when the resource was updated. The format is + `ISO 8601 `_: + ``YYYY-MM-DDThh:mm:ss±hh:mm``. For example, ``2016-09-23 09:59:27-05:00``. + The ``±hh:mm`` value, if included, is the time zone as an offset from UTC. + in: body + required: true + type: string +extensions: + description: | + A list of ``extension`` objects. + in: body + required: true + type: array +infra_driver: + description: | + Driver used for communication with VIMs. + in: body + required: true + type: string +infra_driver_opt: + description: | + Driver used for communication with VIMs. + in: body + required: false + type: string +links: + description: | + A list of links related to the extension. + in: body + required: true + type: array +mgmt_driver: + description: | + Driver used for communication with VNF instances for management purpose. + in: body + required: true + type: string +mgmt_driver_opt: + description: | + Driver used for communication with VNF instances for management purpose. + in: body + required: false + type: string +name: + description: | + Human-readable name for the resource. + in: body + required: true + type: string +name_opt: + description: | + Human-readable name for the resource. + in: body + required: false + type: string +nfp: + description: | + A ``nfp`` object. + in: body + required: true + type: object +nfp_id: + description: | + The UUID of the Network Forwarding Path (NFP). + in: body + required: true + type: string +nfp_status: + description: | + Status of the NFP. + in: body + required: true + type: string +nfps: + description: | + A list of ``nfp`` objects. + in: body + required: true + type: array +service_types: + description: | + A list of service type. + in: body + required: true + type: array +sfc: + description: | + A ``sfc`` object. + in: body + required: true + type: object +sfc_chain: + description: | + A ordered list of node objects to traverse. Each node includes + a list of CPs and correspondent VNF name. Up to 2 CPs may be + listed per node. If 2 CPs are listed, the first will be + considered the ingress port for traffic and the second will be + the egress. If there's only one CP, then it will be considered + both the ingress and egress port for traffic. + in: body + required: true + type: array +sfc_id: + description: | + The UUID of the Service Function Chain (SFC). + in: body + required: true + type: string +sfc_instance_id: + description: | + The UUID information to uniquely identify the SFC instance. + A SFC is instantiated as a Neutron Port Chain when using + OpenStack VIM Driver. + in: body + required: true + type: string +sfc_nfp_id: + description: | + The UUID of the NFP which the SFC belongs to. + in: body + required: true + type: string +sfc_path_id: + description: | + The ID of the path. It will be used in future implementations of + Network Service Header (NSH) to identify paths via the Service + Path Identifier (SPI) attribute. + in: body + required: true + type: string +sfc_status: + description: | + Status of the SFC. + in: body + required: true + type: string +sfcs: + description: | + A list of ``sfc`` objects. + in: body + required: true + type: array +symmetrical: + description: | + Indicate whether reverse traffic should also flow through the path. + Enabling ``symmetrical`` is not currently supported by the OpenStack + VIM driver. + in: body + required: true + type: boolean +symmetrical_opt: + description: | + Indicate whether reverse traffic should also flow through the path. + Enabling ``symmetrical`` is not currently supported by the OpenStack + VIM driver. + in: body + required: false + type: boolean +tenant_id: + description: | + The UUID of the tenant. A tenant is also known as a project. + in: body + required: true + type: string +tenant_id_opt: + description: | + The UUID of the tenant. A tenant is also known as a project. + in: body + required: false + type: string +updated_at: + description: | + The date and time when the resource was updated. + The format is ``YYYY-MM-DD hh:mm:ss.ssssss``. + For example, ``2016-09-23 09:59:27.392759``. + in: body + required: true + type: string +version_href: + description: | + Link to the API. + in: body + required: true + type: string +version_id: + description: | + Version of the API. + in: body + required: true + type: string +version_links: + description: | + List of version links. Each link contains ``href`` and ``rel``. + in: body + required: true + type: array +version_rel: + description: | + Relationship of link with the version. + in: body + required: true + type: string +version_status: + description: | + Status of the API, which can be ``CURRENT``, ``STABLE`` or ``DEPRECATED``. + in: body + required: true + type: string +versions: + description: | + A list of ``version`` objects. + in: body + required: true + type: array +vim: + description: | + A ``vim`` object. + in: body + required: true + type: object +vim_auth_cred: + description: | + An authentication credential object for the remote OpenStack site. + Credential can contain ``user_id`` (and/or ``username``) and ``password``. + It also contains ``user_domain_name`` when using identity v3. + in: body + required: true + type: object +vim_auth_cred_output: + description: | + An authentication credential object for the remote OpenStack site. + Credential contains ``user_id`` (and/or ``username``), ``password``, + ``project_id``, ``project_name``, and ``auth_url``. + It also contains ``user_domain_name`` and ``project_domain_name`` + when using identity v3. + in: body + required: true + type: object +vim_auth_url: + description: | + The authentication URL for the Keystone service of the remote OpenStack site. + in: body + required: true + type: string +vim_created_at: + description: | + The date and time when the VIM was registered. + The format is ``YYYY-MM-DD hh:mm:ss.ssssss``. + For example, ``2016-09-23 09:59:27.392759``. + in: body + required: true + type: string +vim_id: + description: | + The UUID of the VIM. + in: body + required: true + type: string +vim_id_opt: + description: | + The UUID of the VIM. + in: body + required: false + type: string +vim_is_default: + description: | + Indicate whether the VIM is used as default. + in: body + required: true + type: boolean +vim_is_default_opt: + description: | + Indicate whether the VIM is used as default. + in: body + required: false + type: boolean +vim_placement_attr: + description: | + VIM placement information object that includes ``regions``, which is + a list of Region IDs. ``regions`` are automatically derived from VIM. + in: body + required: true + type: object +vim_project: + description: | + A VIM's project information object for the remote OpenStack site. + Project information can contain ``id`` or ``name``. + It also contains ``project_domain_name`` when using identity v3. + in: body + required: true + type: object +vim_project_opt: + description: | + A VIM's project information object for the remote OpenStack site. + Project information can contain ``id`` or ``name``. + It also contains ``project_domain_name`` when using identity v3. + in: body + required: false + type: object +vim_status: + description: | + Status of the VIM. + in: body + required: true + type: string +vim_type: + description: | + The type of VIM. Currently there is only one built-in VIM driver, + which is for "openstack" type. + in: body + required: true + type: string +vim_updated_at: + description: | + The date and time when the VIM was updated. + The format is ``YYYY-MM-DD hh:mm:ss.ssssss``. + For example, ``2016-09-23 09:59:27.392759``. + in: body + required: true + type: string +vims: + description: | + A list of ``vim`` objects. + in: body + required: true + type: array +vnf: + description: | + A ``vnf`` object. + in: body + required: true + type: object +vnf_attributes: + description: | + VNF attributes object. This object can contain ``config``, + ``param_values``, ``monitoring_policy``, and ``heat_template``. + in: body + required: true + type: object +vnf_attributes_opt: + description: | + VNF attributes object. This object can contain ``config`` and + ``param_values``. + in: body + required: false + type: object +vnf_attributes_put: + description: | + VNF attributes object. This object can contain ``config`` object. + in: body + required: false + type: object +vnf_config: + description: | + VNF configuration object. + in: body + required: true + type: string +vnf_config_opt: + description: | + VNF configuration object. + in: body + required: false + type: object +vnf_created_at: + description: | + The date and time when the VNF was created. + The format is ``YYYY-MM-DD hh:mm:ss.ssssss``. + For example, ``2016-09-23 09:59:27.392759``. + in: body + required: true + type: string +vnf_error_reason: + description: | + Reason for VNF error, if any. + in: body + required: true + type: string +vnf_heat_template: + description: | + Heat template which is translated from the VNFD template. + in: body + required: true + type: string +vnf_id: + description: | + The UUID of the VNF. + in: body + required: true + type: string +vnf_instance_id: + description: | + A UUID information to uniquely identify the instance of VNF. + This instance is equivalent to a Heat stack when using + "openstack" type VIM. + in: body + required: true + type: string +vnf_mapping: + description: | + A ``vnf_mapping`` object which contains mappings from VNFD name + to VNF instance ID. + in: body + required: true + type: object +vnf_mapping_opt: + description: | + A ``vnf_mapping`` object which contains mappings from VNFD name + to VNF instance ID. This is used to declare which exact VNF + instance to be used for each VNFD in the Forwarding Path definition. + If no vnf mappings are provided, then Tacker attempts to search + for VNF instance derived from each VNFDs. + in: body + required: false + type: object +vnf_mgmt_url: + description: | + Management URL information for the VNF. + in: body + required: true + type: string +vnf_monitoring_policy: + description: | + Monitoring policy which is derived from the VNFD template. + in: body + required: true + type: string +vnf_param_values: + description: | + VNF parameter object. These parameters will be substituted for VNF + if the VNFD template is appropriately parameterized. + See `VNFD Template Parameterization + `_ + for more information. + in: body + required: true + type: string +vnf_param_values_opt: + description: | + VNF parameter object. These parameters will be substituted for VNF + if the VNFD template is appropriately parameterized. + See `VNFD Template Parameterization + `_ + for more information. + in: body + required: false + type: object +vnf_placement_attr: + description: | + VNF placement information object. This object includes ``region_name`` + and ``vim_name``. + in: body + required: true + type: object +vnf_placement_attr_opt: + description: | + VNF placement information object. This object includes ``region_name``. + in: body + required: false + type: object +vnf_resource_id: + description: | + The UUID of the VNF resource. This is equivalent to Heat stack resource ID. + in: body + required: true + type: string +vnf_resource_name: + description: | + The name of the VNF resource. This is equivalent to Heat stack resource name. + in: body + required: true + type: string +vnf_resource_type: + description: | + The type of the VNF resource. This is equivalent to Heat stack resource type. + in: body + required: true + type: string +vnf_resources: + description: | + A list of VNF ``resource`` objects. + in: body + required: true + type: array +vnf_scale: + description: | + A VNF ``scale`` object, which contains ``policy`` and ``type``. + in: body + required: true + type: object +vnf_scale_policy: + description: | + Scaling policy defined in VNFD template. For more information, see + `VNFD scaling + `_. + in: body + required: true + type: string +vnf_scale_type: + description: | + Scaling type, which is either ``in`` or ``out``. + in: body + required: true + type: string +vnf_status: + description: | + Status of the VNF. + in: body + required: true + type: string +vnf_updated_at: + description: | + The date and time when the VNF was updated. + The format is ``YYYY-MM-DD hh:mm:ss.ssssss``. + For example, ``2016-09-23 09:59:27.392759``. + in: body + required: true + type: string +vnfd: + description: | + A ``vnfd`` object. + in: body + required: true + type: object +vnfd_attributes: + description: | + Attributes necessary for spinning up VNF. + in: body + required: true + type: object +vnfd_id: + description: | + The UUID of the VNFD. + in: body + required: true + type: string +vnfds: + description: | + A list of ``vnfd`` objects. + in: body + required: true + type: array +vnffg: + description: | + A ``vnffg`` object. + in: body + required: true + type: object +vnffg_forwarding_paths: + description: | + The UUID of the Network Forwarding Path (NFP) on which + the VNFFG relies. + in: body + required: true + type: string +vnffg_id: + description: | + The UUID of the VNFFG. + in: body + required: true + type: string +vnffg_status: + description: | + Status of the VNFFG. + in: body + required: true + type: string +vnffgd: + description: | + A ``vnffgd`` object. + in: body + required: true + type: object +vnffgd_id: + description: | + The UUID of the VNFFGD. + in: body + required: true + type: string +vnffgd_template: + description: | + A template object which includes behavioral and deployment + information of VNFFGs. For more information, see + `VNFFG Descriptor Template Guide + `_. + in: body + required: true + type: object +vnffgds: + description: | + A list of ``vnffgd`` objects. + in: body + required: true + type: array +vnffgs: + description: | + A list of ``vnffg`` objects. + in: body + required: true + type: array +vnfs: + description: | + A list of ``vnf`` objects. + in: body + required: true + type: array diff --git a/api-ref/source/v1/samples/classifiers/classifiers-list-response.json b/api-ref/source/v1/samples/classifiers/classifiers-list-response.json new file mode 100644 index 000000000..723595e18 --- /dev/null +++ b/api-ref/source/v1/samples/classifiers/classifiers-list-response.json @@ -0,0 +1,19 @@ +{ + "classifiers": [ + { + "status": "ACTIVE", + "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015", + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2", + "instance_id": "5a5e2cd6-c0d9-4768-8361-99ac9e2c8fae", + "id": "b742746d-b09e-4da7-8535-9fc066a71cf1", + "match": { + "ip_proto": 6, + "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958", + "ip_dst_prefix": "10.10.0.10/24", + "destination_port_min": 80, + "destination_port_max": 1024 + } + } + ] +} diff --git a/api-ref/source/v1/samples/classifiers/classifiers-show-response.json b/api-ref/source/v1/samples/classifiers/classifiers-show-response.json new file mode 100644 index 000000000..22511dd12 --- /dev/null +++ b/api-ref/source/v1/samples/classifiers/classifiers-show-response.json @@ -0,0 +1,17 @@ +{ + "classifier": { + "status": "ACTIVE", + "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015", + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2", + "instance_id": "5a5e2cd6-c0d9-4768-8361-99ac9e2c8fae", + "id": "b742746d-b09e-4da7-8535-9fc066a71cf1", + "match": { + "ip_proto": 6, + "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958", + "ip_dst_prefix": "10.10.0.10/24", + "destination_port_min": 80, + "destination_port_max": 1024 + } + } +} diff --git a/api-ref/source/v1/samples/events/events-list-response.json b/api-ref/source/v1/samples/events/events-list-response.json new file mode 100644 index 000000000..f396d6816 --- /dev/null +++ b/api-ref/source/v1/samples/events/events-list-response.json @@ -0,0 +1,31 @@ +{ + "events": [ + { + "event_type": "CREATE", + "resource_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "timestamp": "2016-09-23 09:57:35", + "event_details": "", + "resource_state": "PENDING", + "id": 1, + "resource_type": "vim" + }, + { + "event_type": "MONITOR", + "resource_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "timestamp": "2016-09-23 09:57:35", + "event_details": "", + "resource_state": "REACHABLE", + "id": 2, + "resource_type": "vim" + }, + { + "event_type": "CREATE", + "resource_id": "31ea84d0-ce43-44d9-9e16-fc38e9636892", + "timestamp": "2016-09-28 05:41:12", + "event_details": "", + "resource_state": "Not Applicable", + "id": 3, + "resource_type": "vnfd" + } + ] +} diff --git a/api-ref/source/v1/samples/events/events-show-response.json b/api-ref/source/v1/samples/events/events-show-response.json new file mode 100644 index 000000000..31b2b7822 --- /dev/null +++ b/api-ref/source/v1/samples/events/events-show-response.json @@ -0,0 +1,11 @@ +{ + "event": { + "event_type": "MONITOR", + "resource_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "timestamp": "2016-09-23 09:57:35", + "event_details": "", + "resource_state": "REACHABLE", + "id": 2, + "resource_type": "vim" + } +} diff --git a/api-ref/source/v1/samples/extensions/extensions-list-response.json b/api-ref/source/v1/samples/extensions/extensions-list-response.json new file mode 100644 index 000000000..df24fa40a --- /dev/null +++ b/api-ref/source/v1/samples/extensions/extensions-list-response.json @@ -0,0 +1,28 @@ +{ + "extensions": [ + { + "updated": "2013-11-19T10:00:00-00:00", + "name": "VNF Manager", + "links": [], + "namespace": "http://wiki.openstack.org/Tacker", + "alias": "VNFM", + "description": "Extension for VNF Manager" + }, + { + "updated": "2016-06-06T13:00:00-00:00", + "name": "COMMONSERVICES", + "links": [], + "namespace": "http://wiki.openstack.org/Tacker", + "alias": "Commonservices", + "description": "Extension for CommonServices" + }, + { + "updated": "2015-12-21T10:00:00-00:00", + "name": "NFV Orchestrator", + "links": [], + "namespace": "http://wiki.openstack.org/Tacker", + "alias": "NFVO", + "description": "Extension for NFV Orchestrator" + } + ] +} diff --git a/api-ref/source/v1/samples/extensions/extensions-show-response.json b/api-ref/source/v1/samples/extensions/extensions-show-response.json new file mode 100644 index 000000000..cd14a0580 --- /dev/null +++ b/api-ref/source/v1/samples/extensions/extensions-show-response.json @@ -0,0 +1,10 @@ +{ + "extension": { + "updated": "2013-11-19T10:00:00-00:00", + "name": "VNF Manager", + "links": [], + "namespace": "http://wiki.openstack.org/Tacker", + "alias": "VNFM", + "description": "Extension for VNF Manager" + } +} diff --git a/api-ref/source/v1/samples/nfps/nfps-list-response.json b/api-ref/source/v1/samples/nfps/nfps-list-response.json new file mode 100644 index 000000000..55a4c8666 --- /dev/null +++ b/api-ref/source/v1/samples/nfps/nfps-list-response.json @@ -0,0 +1,14 @@ +{ + "nfps": [ + { + "status": "ACTIVE", + "name": "Forwarding_path1", + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2", + "path_id": "51", + "symmetrical": false, + "classifier_id": "b742746d-b09e-4da7-8535-9fc066a71cf1", + "id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015" + } + ] +} diff --git a/api-ref/source/v1/samples/nfps/nfps-show-response.json b/api-ref/source/v1/samples/nfps/nfps-show-response.json new file mode 100644 index 000000000..3b98e494c --- /dev/null +++ b/api-ref/source/v1/samples/nfps/nfps-show-response.json @@ -0,0 +1,12 @@ +{ + "nfp": { + "status": "ACTIVE", + "name": "Forwarding_path1", + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "chain_id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2", + "path_id": "51", + "symmetrical": false, + "classifier_id": "b742746d-b09e-4da7-8535-9fc066a71cf1", + "id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015" + } +} diff --git a/api-ref/source/v1/samples/sfcs/sfcs-list-response.json b/api-ref/source/v1/samples/sfcs/sfcs-list-response.json new file mode 100644 index 000000000..3550885d3 --- /dev/null +++ b/api-ref/source/v1/samples/sfcs/sfcs-list-response.json @@ -0,0 +1,27 @@ +{ + "sfcs": [ + { + "status": "ACTIVE", + "path_id": "51", + "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015", + "chain": [ + { + "connection_points": [ + "e48cd49d-3bf7-4c8d-b6a7-3e2846b01c7c" + ], + "name": "my-vnf1" + }, + { + "connection_points": [ + "4b0b3a8f-07ca-46c3-b8fa-90caeaada031" + ], + "name": "my-vnf2" + } + ], + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "instance_id": "2645eea6-3744-40f6-aacc-09a784db5d89", + "symmetrical": false, + "id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2" + } + ] +} diff --git a/api-ref/source/v1/samples/sfcs/sfcs-show-response.json b/api-ref/source/v1/samples/sfcs/sfcs-show-response.json new file mode 100644 index 000000000..ec3ada349 --- /dev/null +++ b/api-ref/source/v1/samples/sfcs/sfcs-show-response.json @@ -0,0 +1,25 @@ +{ + "sfc": { + "status": "ACTIVE", + "path_id": "51", + "nfp_id": "ac4a4a7e-ccb5-4014-8125-966ba42cc015", + "chain": [ + { + "connection_points": [ + "e48cd49d-3bf7-4c8d-b6a7-3e2846b01c7c" + ], + "name": "my-vnf1" + }, + { + "connection_points": [ + "4b0b3a8f-07ca-46c3-b8fa-90caeaada031" + ], + "name": "my-vnf2" + } + ], + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "instance_id": "2645eea6-3744-40f6-aacc-09a784db5d89", + "symmetrical": false, + "id": "b9370af2-0e5f-49b1-a980-0f9a08f216b2" + } +} diff --git a/api-ref/source/v1/samples/versions/versions-list-response.json b/api-ref/source/v1/samples/versions/versions-list-response.json new file mode 100644 index 000000000..aa7ee5a5b --- /dev/null +++ b/api-ref/source/v1/samples/versions/versions-list-response.json @@ -0,0 +1,14 @@ +{ + "versions": [ + { + "status": "CURRENT", + "id": "v1.0", + "links": [ + { + "href": "http://192.168.1.1:9890/v1.0", + "rel": "self" + } + ] + } + ] +} diff --git a/api-ref/source/v1/samples/vims/vims-create-request.json b/api-ref/source/v1/samples/vims/vims-create-request.json new file mode 100644 index 000000000..67d994777 --- /dev/null +++ b/api-ref/source/v1/samples/vims/vims-create-request.json @@ -0,0 +1,19 @@ +{ + "vim": { + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "type": "openstack", + "auth_url": "http://192.168.1.2:5000/v3", + "auth_cred": { + "username": "nfv_user", + "user_domain_name": "Default", + "password": "password" + }, + "vim_project": { + "name": "nfv", + "project_domain_name": "Default" + }, + "name": "VIM1", + "description": "Additional site", + "is_default": false + } +} diff --git a/api-ref/source/v1/samples/vims/vims-create-response.json b/api-ref/source/v1/samples/vims/vims-create-response.json new file mode 100644 index 000000000..90996c227 --- /dev/null +++ b/api-ref/source/v1/samples/vims/vims-create-response.json @@ -0,0 +1,32 @@ +{ + "vim": { + "status": "REACHABLE", + "description": "Additional site", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-10-21 09:27:38.628545", + "vim_project": { + "name": "nfv", + "project_domain_name": "Default" + }, + "updated_at": null, + "is_default": false, + "auth_url": "http://192.168.1.2:5000/v3", + "placement_attr": { + "regions": [ + "RegionOne" + ] + }, + "auth_cred": { + "username": "nfv_user", + "password": "***", + "project_name": "nfv", + "user_domain_name": "Default", + "auth_url": "http://192.168.1.2:5000/v3", + "project_id": null, + "project_domain_name": "Default" + }, + "type": "openstack", + "id": "a35b19c5-b1b3-4172-9c2a-aa80a6470bd7", + "name": "VIM1" + } +} diff --git a/api-ref/source/v1/samples/vims/vims-list-response.json b/api-ref/source/v1/samples/vims/vims-list-response.json new file mode 100644 index 000000000..64078db7d --- /dev/null +++ b/api-ref/source/v1/samples/vims/vims-list-response.json @@ -0,0 +1,36 @@ +{ + "vims": [ + { + "status": "REACHABLE", + "description": "", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-09-23 09:57:35", + "vim_project": { + "id": "", + "name": "nfv", + "project_domain_name": "Default" + }, + "updated_at": "2016-09-23 09:57:35", + "is_default": true, + "auth_url": "http://localhost:5000/v3", + "placement_attr": { + "regions": [ + "RegionOne" + ] + }, + "auth_cred": { + "username": "nfv_user", + "password": "***", + "project_name": "nfv", + "user_id": "", + "user_domain_name": "Default", + "auth_url": "http://localhost:5000/v3", + "project_id": "", + "project_domain_name": "Default" + }, + "type": "openstack", + "id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "name": "VIM0" + } + ] +} diff --git a/api-ref/source/v1/samples/vims/vims-show-response.json b/api-ref/source/v1/samples/vims/vims-show-response.json new file mode 100644 index 000000000..0754ebefc --- /dev/null +++ b/api-ref/source/v1/samples/vims/vims-show-response.json @@ -0,0 +1,34 @@ +{ + "vim": { + "status": "REACHABLE", + "description": "", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-09-23 09:57:35", + "vim_project": { + "id": "", + "name": "nfv", + "project_domain_name": "Default" + }, + "updated_at": "2016-09-23 09:57:35", + "is_default": true, + "auth_url": "http://localhost:5000/v3", + "placement_attr": { + "regions": [ + "RegionOne" + ] + }, + "auth_cred": { + "username": "nfv_user", + "password": "***", + "project_name": "nfv", + "user_id": "", + "user_domain_name": "Default", + "auth_url": "http://localhost:5000/v3", + "project_id": "", + "project_domain_name": "Default" + }, + "type": "openstack", + "id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "name": "VIM0" + } +} diff --git a/api-ref/source/v1/samples/vims/vims-update-request.json b/api-ref/source/v1/samples/vims/vims-update-request.json new file mode 100644 index 000000000..95577172d --- /dev/null +++ b/api-ref/source/v1/samples/vims/vims-update-request.json @@ -0,0 +1,18 @@ +{ + "vim": { + "auth_cred": { + "username": "new_nfv_user", + "user_domain_name": "NewDomain", + "password": "newpassword", + "user_id": "11d7655309d849208ea1f39d44507e2e" + }, + "vim_project": { + "id": "4391756708414b1380235cd047f0ee55", + "name": "new_nfv", + "project_domain_name": "NewDomain" + }, + "name": "new_VIM1", + "description": "New Description", + "is_default": false + } +} diff --git a/api-ref/source/v1/samples/vims/vims-update-response.json b/api-ref/source/v1/samples/vims/vims-update-response.json new file mode 100644 index 000000000..49c38bd3a --- /dev/null +++ b/api-ref/source/v1/samples/vims/vims-update-response.json @@ -0,0 +1,34 @@ +{ + "vim": { + "status": "REACHABLE", + "description": "New Description", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-10-21 10:35:12", + "vim_project": { + "project_domain_name": "NewDomain", + "id": "4391756708414b1380235cd047f0ee55", + "name": "new_nfv" + }, + "updated_at": "2016-10-21 10:35:40.043226", + "is_default": false, + "auth_url": "http://192.168.1.2:5000/v3", + "placement_attr": { + "regions": [ + "RegionOne" + ] + }, + "auth_cred": { + "username": "new_nfv_user", + "password": "***", + "project_name": "new_nfv", + "user_id": "11d7655309d849208ea1f39d44507e2e", + "user_domain_name": "NewDomain", + "auth_url": "http://192.168.1.2:5000/v3", + "project_id": "4391756708414b1380235cd047f0ee55", + "project_domain_name": "NewDomain" + }, + "type": "openstack", + "id": "ce4df54a-5734-493f-ab27-ce02fbfe2463", + "name": "new_VIM1" + } +} diff --git a/api-ref/source/v1/samples/vnfds/vnfds-create-request.json b/api-ref/source/v1/samples/vnfds/vnfds-create-request.json new file mode 100644 index 000000000..abce0d6d4 --- /dev/null +++ b/api-ref/source/v1/samples/vnfds/vnfds-create-request.json @@ -0,0 +1,69 @@ +{ + "vnfd": { + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "name": "vnfd-sample", + "description": "Sample", + "service_types": [ + { + "service_type": "vnfd" + } + ], + "infra_driver": "heat", + "mgmt_driver": "noop", + "attributes": { + "vnfd": { + "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", + "description": "Demo example", + "metadata": { + "template_name": "sample-tosca-vnfd" + }, + "topology_template": { + "node_templates": { + "VDU1": { + "type": "tosca.nodes.nfv.VDU.Tacker", + "capabilities": { + "nfv_compute": { + "properties": { + "num_cpus": 1, + "mem_size": "512 MB", + "disk_size": "1 GB" + } + } + }, + "properties": { + "image": "cirros-0.3.4-x86_64-uec" + } + }, + "CP1": { + "type": "tosca.nodes.nfv.CP.Tacker", + "properties": { + "order": 0, + "management": true, + "anti_spoofing_protection": false + }, + "requirements": [ + { + "virtualLink": { + "node": "VL1" + } + }, + { + "virtualBinding": { + "node": "VDU1" + } + } + ] + }, + "VL1": { + "type": "tosca.nodes.nfv.VL", + "properties": { + "vendor": "Tacker", + "network_name": "net_mgmt" + } + } + } + } + } + } + } +} diff --git a/api-ref/source/v1/samples/vnfds/vnfds-create-response.json b/api-ref/source/v1/samples/vnfds/vnfds-create-response.json new file mode 100644 index 000000000..f188e25b9 --- /dev/null +++ b/api-ref/source/v1/samples/vnfds/vnfds-create-response.json @@ -0,0 +1,21 @@ +{ + "vnfd": { + "service_types": [ + { + "service_type": "vnfd", + "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d" + } + ], + "description": "Sample", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-10-20 07:38:54.600003", + "updated_at": null, + "mgmt_driver": "noop", + "infra_driver": "heat", + "attributes": { + "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n node_templates:\n CP1:\n properties: {anti_spoofing_protection: false, management: true, order: 0}\n requirements:\n - virtualLink: {node: VL1}\n - virtualBinding: {node: VDU1}\n type: tosca.nodes.nfv.CP.Tacker\n VDU1:\n capabilities:\n nfv_compute:\n properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n properties: {image: cirros-0.3.4-x86_64-uec}\n type: tosca.nodes.nfv.VDU.Tacker\n VL1:\n properties: {network_name: net_mgmt, vendor: Tacker}\n type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n" + }, + "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831", + "name": "vnfd-sample" + } +} diff --git a/api-ref/source/v1/samples/vnfds/vnfds-list-response.json b/api-ref/source/v1/samples/vnfds/vnfds-list-response.json new file mode 100644 index 000000000..7b2df2f57 --- /dev/null +++ b/api-ref/source/v1/samples/vnfds/vnfds-list-response.json @@ -0,0 +1,23 @@ +{ + "vnfds": [ + { + "service_types": [ + { + "service_type": "vnfd", + "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d" + } + ], + "description": "Sample", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-10-20 07:38:54", + "updated_at": null, + "mgmt_driver": "noop", + "infra_driver": "heat", + "attributes": { + "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n node_templates:\n CP1:\n properties: {anti_spoofing_protection: false, management: true, order: 0}\n requirements:\n - virtualLink: {node: VL1}\n - virtualBinding: {node: VDU1}\n type: tosca.nodes.nfv.CP.Tacker\n VDU1:\n capabilities:\n nfv_compute:\n properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n properties: {image: cirros-0.3.4-x86_64-uec}\n type: tosca.nodes.nfv.VDU.Tacker\n VL1:\n properties: {network_name: net_mgmt, vendor: Tacker}\n type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n" + }, + "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831", + "name": "vnfd-sample" + } + ] +} diff --git a/api-ref/source/v1/samples/vnfds/vnfds-show-response.json b/api-ref/source/v1/samples/vnfds/vnfds-show-response.json new file mode 100644 index 000000000..74d417f27 --- /dev/null +++ b/api-ref/source/v1/samples/vnfds/vnfds-show-response.json @@ -0,0 +1,21 @@ +{ + "vnfd": { + "service_types": [ + { + "service_type": "vnfd", + "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d" + } + ], + "description": "Sample", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-10-20 07:38:54", + "updated_at": null, + "mgmt_driver": "noop", + "infra_driver": "heat", + "attributes": { + "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n node_templates:\n CP1:\n properties: {anti_spoofing_protection: false, management: true, order: 0}\n requirements:\n - virtualLink: {node: VL1}\n - virtualBinding: {node: VDU1}\n type: tosca.nodes.nfv.CP.Tacker\n VDU1:\n capabilities:\n nfv_compute:\n properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n properties: {image: cirros-0.3.4-x86_64-uec}\n type: tosca.nodes.nfv.VDU.Tacker\n VL1:\n properties: {network_name: net_mgmt, vendor: Tacker}\n type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n" + }, + "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831", + "name": "vnfd-sample" + } +} diff --git a/api-ref/source/v1/samples/vnfds/vnfds-update-request.json b/api-ref/source/v1/samples/vnfds/vnfds-update-request.json new file mode 100644 index 000000000..d765d16e5 --- /dev/null +++ b/api-ref/source/v1/samples/vnfds/vnfds-update-request.json @@ -0,0 +1,6 @@ +{ + "vnfd": { + "name": "vnfd-sample-updated", + "description": "Updated sample" + } +} diff --git a/api-ref/source/v1/samples/vnfds/vnfds-update-response.json b/api-ref/source/v1/samples/vnfds/vnfds-update-response.json new file mode 100644 index 000000000..21d3ccc53 --- /dev/null +++ b/api-ref/source/v1/samples/vnfds/vnfds-update-response.json @@ -0,0 +1,21 @@ +{ + "vnfd": { + "service_types": [ + { + "service_type": "vnfd", + "id": "ca0d8667-ce35-4f7a-9744-ac4bc7d5579d" + } + ], + "description": "Updated sample", + "tenant_id": "689708956a2d4ae0a27120d3aca6a560", + "created_at": "2016-10-20 07:38:54", + "updated_at": "2016-10-20 07:41:27.392759", + "mgmt_driver": "noop", + "infra_driver": "heat", + "attributes": { + "vnfd": "description: Demo example\nmetadata: {template_name: sample-tosca-vnfd}\ntopology_template:\n node_templates:\n CP1:\n properties: {anti_spoofing_protection: false, management: true, order: 0}\n requirements:\n - virtualLink: {node: VL1}\n - virtualBinding: {node: VDU1}\n type: tosca.nodes.nfv.CP.Tacker\n VDU1:\n capabilities:\n nfv_compute:\n properties: {disk_size: 1 GB, mem_size: 512 MB, num_cpus: 1}\n properties: {image: cirros-0.3.4-x86_64-uec}\n type: tosca.nodes.nfv.VDU.Tacker\n VL1:\n properties: {network_name: net_mgmt, vendor: Tacker}\n type: tosca.nodes.nfv.VL\ntosca_definitions_version: tosca_simple_profile_for_nfv_1_0_0\n" + }, + "id": "0fb827e7-32b0-4e5b-b300-e1b1dce8a831", + "name": "vnfd-sample-updated" + } +} diff --git a/api-ref/source/v1/samples/vnffgds/vnffgds-create-request.json b/api-ref/source/v1/samples/vnffgds/vnffgds-create-request.json new file mode 100644 index 000000000..f11bb47e9 --- /dev/null +++ b/api-ref/source/v1/samples/vnffgds/vnffgds-create-request.json @@ -0,0 +1,78 @@ +{ + "vnffgd": { + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "name": "vnffgd1", + "template": { + "vnffgd": { + "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", + "description": "Sample VNFFG template", + "topology_template": { + "node_templates": { + "Forwarding_path1": { + "type": "tosca.nodes.nfv.FP.Tacker", + "description": "creates path (CP12->CP22)", + "properties": { + "policy": { + "type": "ACL", + "criteria": [ + { + "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958" + }, + { + "destination_port_range": "80-1024" + }, + { + "ip_proto": 6 + }, + { + "ip_dst_prefix": "10.10.0.10/24" + } + ] + }, + "path": [ + { + "capability": "CP12", + "forwarder": "VNFD1" + }, + { + "capability": "CP22", + "forwarder": "VNFD2" + } + ], + "id": 51 + } + } + }, + "description": "Sample VNFFG template", + "groups": { + "VNFFG1": { + "type": "tosca.groups.nfv.VNFFG", + "description": "HTTP to Corporate Net", + "members": [ + "Forwarding_path1" + ], + "properties": { + "vendor": "tacker", + "connection_point": [ + "CP12", + "CP22" + ], + "version": 1.0, + "constituent_vnfs": [ + "VNFD1", + "VNFD2" + ], + "number_of_endpoints": 2, + "dependent_virtual_link": [ + "VL12", + "VL22" + ] + } + } + } + } + } + }, + "description": "sample vnffgd" + } +} diff --git a/api-ref/source/v1/samples/vnffgds/vnffgds-create-response.json b/api-ref/source/v1/samples/vnffgds/vnffgds-create-response.json new file mode 100644 index 000000000..7fefb0678 --- /dev/null +++ b/api-ref/source/v1/samples/vnffgds/vnffgds-create-response.json @@ -0,0 +1,83 @@ +{ + "vnffgd": { + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "name": "vnffgd1", + "description": "sample vnffgd", + "template": { + "vnffgd": { + "imports": [ + "/opt/stack/tacker/tacker/vnfm/tosca/lib/tacker_defs.yaml", + "/opt/stack/tacker/tacker/vnfm/tosca/lib/tacker_nfv_defs.yaml" + ], + "description": "Sample VNFFG template", + "topology_template": { + "node_templates": { + "Forwarding_path1": { + "type": "tosca.nodes.nfv.FP.Tacker", + "description": "creates path (CP12->CP22)", + "properties": { + "policy": { + "type": "ACL", + "criteria": [ + { + "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958" + }, + { + "destination_port_range": "80-1024" + }, + { + "ip_proto": 6 + }, + { + "ip_dst_prefix": "10.10.0.10/24" + } + ] + }, + "path": [ + { + "capability": "CP12", + "forwarder": "VNFD1" + }, + { + "capability": "CP22", + "forwarder": "VNFD2" + } + ], + "id": 51 + } + } + }, + "description": "Sample VNFFG template", + "groups": { + "VNFFG1": { + "type": "tosca.groups.nfv.VNFFG", + "description": "HTTP to Corporate Net", + "members": [ + "Forwarding_path1" + ], + "properties": { + "vendor": "tacker", + "connection_point": [ + "CP12", + "CP22" + ], + "version": 1.0, + "constituent_vnfs": [ + "VNFD1", + "VNFD2" + ], + "number_of_endpoints": 2, + "dependent_virtual_link": [ + "VL12", + "VL22" + ] + } + } + } + }, + "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0" + } + }, + "id": "60b8e717-11a7-4395-8438-a21d2eeeb855" + } +} diff --git a/api-ref/source/v1/samples/vnffgds/vnffgds-list-response.json b/api-ref/source/v1/samples/vnffgds/vnffgds-list-response.json new file mode 100644 index 000000000..a61abca94 --- /dev/null +++ b/api-ref/source/v1/samples/vnffgds/vnffgds-list-response.json @@ -0,0 +1,85 @@ +{ + "vnffgds": [ + { + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "name": "vnffgd1", + "description": "sample vnffgd", + "template": { + "vnffgd": { + "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", + "imports": [ + "/opt/stack/tacker/tacker/vnfm/tosca/lib/tacker_defs.yaml", + "/opt/stack/tacker/tacker/vnfm/tosca/lib/tacker_nfv_defs.yaml" + ], + "description": "Sample VNFFG template", + "topology_template": { + "node_templates": { + "Forwarding_path1": { + "type": "tosca.nodes.nfv.FP.Tacker", + "description": "creates path (CP12->CP22)", + "properties": { + "policy": { + "type": "ACL", + "criteria": [ + { + "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958" + }, + { + "destination_port_range": "80-1024" + }, + { + "ip_proto": 6 + }, + { + "ip_dst_prefix": "10.10.0.10/24" + } + ] + }, + "path": [ + { + "capability": "CP12", + "forwarder": "VNFD1" + }, + { + "capability": "CP22", + "forwarder": "VNFD2" + } + ], + "id": 51 + } + } + }, + "description": "Sample VNFFG template", + "groups": { + "VNFFG1": { + "type": "tosca.groups.nfv.VNFFG", + "description": "HTTP to Corporate Net", + "members": [ + "Forwarding_path1" + ], + "properties": { + "vendor": "tacker", + "connection_point": [ + "CP12", + "CP22" + ], + "version": 1.0, + "constituent_vnfs": [ + "VNFD1", + "VNFD2" + ], + "number_of_endpoints": 2, + "dependent_virtual_link": [ + "VL12", + "VL22" + ] + } + } + } + } + } + }, + "id": "60b8e717-11a7-4395-8438-a21d2eeeb855" + } + ] +} diff --git a/api-ref/source/v1/samples/vnffgds/vnffgds-show-response.json b/api-ref/source/v1/samples/vnffgds/vnffgds-show-response.json new file mode 100644 index 000000000..ef7aa5eca --- /dev/null +++ b/api-ref/source/v1/samples/vnffgds/vnffgds-show-response.json @@ -0,0 +1,83 @@ +{ + "vnffgd": { + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "name": "vnffgd1", + "description": "sample vnffgd", + "template": { + "vnffgd": { + "tosca_definitions_version": "tosca_simple_profile_for_nfv_1_0_0", + "imports": [ + "/opt/stack/tacker/tacker/vnfm/tosca/lib/tacker_defs.yaml", + "/opt/stack/tacker/tacker/vnfm/tosca/lib/tacker_nfv_defs.yaml" + ], + "description": "Sample VNFFG template", + "topology_template": { + "node_templates": { + "Forwarding_path1": { + "type": "tosca.nodes.nfv.FP.Tacker", + "description": "creates path (CP12->CP22)", + "properties": { + "policy": { + "type": "ACL", + "criteria": [ + { + "network_src_port_id": "5fad003e-95c0-46b3-a137-4d423b6ab958" + }, + { + "destination_port_range": "80-1024" + }, + { + "ip_proto": 6 + }, + { + "ip_dst_prefix": "10.10.0.10/24" + } + ] + }, + "path": [ + { + "capability": "CP12", + "forwarder": "VNFD1" + }, + { + "capability": "CP22", + "forwarder": "VNFD2" + } + ], + "id": 51 + } + } + }, + "description": "Sample VNFFG template", + "groups": { + "VNFFG1": { + "type": "tosca.groups.nfv.VNFFG", + "description": "HTTP to Corporate Net", + "members": [ + "Forwarding_path1" + ], + "properties": { + "vendor": "tacker", + "connection_point": [ + "CP12", + "CP22" + ], + "version": 1.0, + "constituent_vnfs": [ + "VNFD1", + "VNFD2" + ], + "number_of_endpoints": 2, + "dependent_virtual_link": [ + "VL12", + "VL22" + ] + } + } + } + } + } + }, + "id": "60b8e717-11a7-4395-8438-a21d2eeeb855" + } +} diff --git a/api-ref/source/v1/samples/vnffgs/vnffgs-create-request.json b/api-ref/source/v1/samples/vnffgs/vnffgs-create-request.json new file mode 100644 index 000000000..1ca999672 --- /dev/null +++ b/api-ref/source/v1/samples/vnffgs/vnffgs-create-request.json @@ -0,0 +1,12 @@ +{ + "vnffg": { + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926", + "name": "vnffg1", + "vnf_mapping": { + "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443", + "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac" + }, + "symmetrical": false + } +} diff --git a/api-ref/source/v1/samples/vnffgs/vnffgs-create-response.json b/api-ref/source/v1/samples/vnffgs/vnffgs-create-response.json new file mode 100644 index 000000000..fb5eb2c06 --- /dev/null +++ b/api-ref/source/v1/samples/vnffgs/vnffgs-create-response.json @@ -0,0 +1,15 @@ +{ + "vnffg": { + "forwarding_paths": "476e2882-45d1-45cb-9856-45cf603f7d9a", + "status": "PENDING_CREATE", + "description": "sample vnffgd", + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926", + "vnf_mapping": { + "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443", + "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac" + }, + "id": "8cc66ad5-8513-4afe-a2f2-1e13543348fe", + "name": "vnffg1" + } +} diff --git a/api-ref/source/v1/samples/vnffgs/vnffgs-list-response.json b/api-ref/source/v1/samples/vnffgs/vnffgs-list-response.json new file mode 100644 index 000000000..2bed1f904 --- /dev/null +++ b/api-ref/source/v1/samples/vnffgs/vnffgs-list-response.json @@ -0,0 +1,17 @@ +{ + "vnffgs": [ + { + "forwarding_paths": "476e2882-45d1-45cb-9856-45cf603f7d9a", + "status": "ACTIVE", + "description": "sample vnffgd", + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926", + "vnf_mapping": { + "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443", + "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac" + }, + "id": "8cc66ad5-8513-4afe-a2f2-1e13543348fe", + "name": "vnffg1" + } + ] +} diff --git a/api-ref/source/v1/samples/vnffgs/vnffgs-show-response.json b/api-ref/source/v1/samples/vnffgs/vnffgs-show-response.json new file mode 100644 index 000000000..7de108143 --- /dev/null +++ b/api-ref/source/v1/samples/vnffgs/vnffgs-show-response.json @@ -0,0 +1,15 @@ +{ + "vnffg": { + "forwarding_paths": "476e2882-45d1-45cb-9856-45cf603f7d9a", + "status": "ACTIVE", + "description": "sample vnffgd", + "tenant_id": "e8935dc5484345a1aff7a1043e88c8b1", + "vnffgd_id": "ec81d6b9-da96-4eed-80f8-0dadcebda926", + "vnf_mapping": { + "VNFD2": "0918d77d-f353-4e52-be42-9e078ca8c443", + "VNFD1": "86f3f4c5-ffb9-43a0-b5b8-7767f75100ac" + }, + "id": "8cc66ad5-8513-4afe-a2f2-1e13543348fe", + "name": "vnffg1" + } +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-actions-create-request.json b/api-ref/source/v1/samples/vnfs/vnfs-actions-create-request.json new file mode 100644 index 000000000..983dfd1fb --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-actions-create-request.json @@ -0,0 +1,6 @@ +{ + "scale": { + "policy": "SP1", + "type": "out" + } +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-actions-create-response.json b/api-ref/source/v1/samples/vnfs/vnfs-actions-create-response.json new file mode 100644 index 000000000..983dfd1fb --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-actions-create-response.json @@ -0,0 +1,6 @@ +{ + "scale": { + "policy": "SP1", + "type": "out" + } +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-create-request.json b/api-ref/source/v1/samples/vnfs/vnfs-create-request.json new file mode 100644 index 000000000..0636e7f33 --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-create-request.json @@ -0,0 +1,32 @@ +{ + "vnf": { + "tenant_id": "6673e4d4e13340acb0b847f9ecde613b", + "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02", + "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "name": "OpenWRT", + "description": "OpenWRT VNF", + "attributes": { + "config": { + "vdus": { + "vdu1": { + "config": { + "firewall": "package firewall\n" + } + } + } + }, + "param_values": { + "vdus": { + "vdu1": { + "param": { + "vdu-name": "openwrt_vdu1" + } + } + } + } + }, + "placement_attr": { + "region_name": "RegionOne" + } + } +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-create-response.json b/api-ref/source/v1/samples/vnfs/vnfs-create-response.json new file mode 100644 index 000000000..da4996145 --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-create-response.json @@ -0,0 +1,27 @@ +{ + "vnf": { + "status": "PENDING_CREATE", + "description": "OpenWRT VNFD with parameterized VDU name", + "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02", + "tenant_id": "6673e4d4e13340acb0b847f9ecde613b", + "created_at": "2016-10-25 10:15:06.959431", + "updated_at": null, + "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e", + "mgmt_url": null, + "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "placement_attr": { + "region_name": "RegionOne", + "vim_name": "VIM0" + }, + "error_reason": null, + "attributes": { + "config": "vdus:\n vdu1:\n config: {firewall: 'package firewall\n\n '}\n", + "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n '\nparameters:\n vdu-name:\n type: string\n description: Vdu name\n default: test-vdu\nresources:\n CP1:\n type: OS::Neutron::Port\n properties:\n network: net_mgmt\n port_security_enabled: false\n CP2:\n type: OS::Neutron::Port\n properties:\n network: net0\n port_security_enabled: false\n CP3:\n type: OS::Neutron::Port\n properties:\n network: net1\n port_security_enabled: false\n VDU1:\n type: OS::Nova::Server\n properties:\n config_drive: false\n flavor: {get_resource: VDU1_flavor}\n image: OpenWRT\n name:\n get_param: vdu-name\n networks:\n - port:\n get_resource: CP1\n - port:\n get_resource: CP2\n - port:\n get_resource: CP3\n user_data_format: SOFTWARE_CONFIG\n VDU1_flavor:\n properties: {disk: 1, ram: 512, vcpus: 1}\n type: OS::Nova::Flavor\noutputs:\n mgmt_ip-VDU1:\n value:\n get_attr: [CP1, fixed_ips, 0, ip_address]\n", + "param_values": "vdus:\n vdu1:\n param: {vdu-name: openwrt_vdu1}\n", + "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}" + }, + "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef", + "name": "OpenWRT" + } +} + diff --git a/api-ref/source/v1/samples/vnfs/vnfs-list-response.json b/api-ref/source/v1/samples/vnfs/vnfs-list-response.json new file mode 100644 index 000000000..640784821 --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-list-response.json @@ -0,0 +1,28 @@ +{ + "vnfs": [ + { + "status": "ACTIVE", + "description": "OpenWRT VNFD with parameterized VDU name", + "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02", + "tenant_id": "6673e4d4e13340acb0b847f9ecde613b", + "created_at": "2016-10-25 10:15:06", + "updated_at": null, + "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e", + "mgmt_url": "{\"VDU1\": \"192.168.120.3\"}", + "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "placement_attr": { + "region_name": "RegionOne", + "vim_name": "VIM0" + }, + "error_reason": null, + "attributes": { + "config": "vdus:\n vdu1:\n config: {firewall: 'package firewall\n\n '}\n", + "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}", + "param_values": "vdus:\n vdu1:\n param: {vdu-name: openwrt_vdu1}\n", + "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n '\nparameters:\n vdu-name:\n type: string\n description: Vdu name\n default: test-vdu\nresources:\n CP1:\n type: OS::Neutron::Port\n properties:\n network: net_mgmt\n port_security_enabled: false\n CP2:\n type: OS::Neutron::Port\n properties:\n network: net0\n port_security_enabled: false\n CP3:\n type: OS::Neutron::Port\n properties:\n network: net1\n port_security_enabled: false\n VDU1:\n type: OS::Nova::Server\n properties:\n config_drive: false\n flavor: {get_resource: VDU1_flavor}\n image: OpenWRT\n name:\n get_param: vdu-name\n networks:\n - port:\n get_resource: CP1\n - port:\n get_resource: CP2\n - port:\n get_resource: CP3\n user_data_format: SOFTWARE_CONFIG\n VDU1_flavor:\n properties: {disk: 1, ram: 512, vcpus: 1}\n type: OS::Nova::Flavor\noutputs:\n mgmt_ip-VDU1:\n value:\n get_attr: [CP1, fixed_ips, 0, ip_address]\n" + }, + "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef", + "name": "OpenWRT" + } + ] +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-resources-list-response.json b/api-ref/source/v1/samples/vnfs/vnfs-resources-list-response.json new file mode 100644 index 000000000..5d3092da7 --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-resources-list-response.json @@ -0,0 +1,29 @@ +{ + "resources": [ + { + "type": "OS::Nova::Server", + "name": "VDU1", + "id": "94c19bcf-6c89-4129-98fe-759e37e2f8c7" + }, + { + "type": "OS::Neutron::Port", + "name": "CP1", + "id": "20602131-03f9-4cb2-b9fe-24bf56f1bb4f" + }, + { + "type": "OS::Neutron::Port", + "name": "CP2", + "id": "ff641e7d-35f9-4095-a1f7-c3f6fb2fa294" + }, + { + "type": "OS::Neutron::Port", + "name": "CP3", + "id": "ebe816df-3bc0-48a8-9278-140809d1d953" + }, + { + "type": "OS::Nova::Flavor", + "name": "VDU1_flavor", + "id": "0f5e0bf2-f1a9-4474-aff9-cfffad22c5f8" + } + ] +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-show-response.json b/api-ref/source/v1/samples/vnfs/vnfs-show-response.json new file mode 100644 index 000000000..9e27a017a --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-show-response.json @@ -0,0 +1,26 @@ +{ + "vnf": { + "status": "ACTIVE", + "description": "OpenWRT VNFD with parameterized VDU name", + "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02", + "tenant_id": "6673e4d4e13340acb0b847f9ecde613b", + "created_at": "2016-10-25 10:15:06", + "updated_at": "2016-10-25 10:16:43", + "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e", + "mgmt_url": "{\"VDU1\": \"192.168.120.3\"}", + "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "placement_attr": { + "region_name": "RegionOne", + "vim_name": "VIM0" + }, + "error_reason": null, + "attributes": { + "config": "vdus:\n vdu1:\n config: {firewall: 'package firewall\n\n '}\n", + "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}", + "param_values": "vdus:\n vdu1:\n param: {vdu-name: openwrt_vdu1}\n", + "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n '\nparameters:\n vdu-name:\n type: string\n description: Vdu name\n default: test-vdu\nresources:\n CP1:\n type: OS::Neutron::Port\n properties:\n network: net_mgmt\n port_security_enabled: false\n CP2:\n type: OS::Neutron::Port\n properties:\n network: net0\n port_security_enabled: false\n CP3:\n type: OS::Neutron::Port\n properties:\n network: net1\n port_security_enabled: false\n VDU1:\n type: OS::Nova::Server\n properties:\n config_drive: false\n flavor: {get_resource: VDU1_flavor}\n image: OpenWRT\n name:\n get_param: vdu-name\n networks:\n - port:\n get_resource: CP1\n - port:\n get_resource: CP2\n - port:\n get_resource: CP3\n user_data_format: SOFTWARE_CONFIG\n VDU1_flavor:\n properties: {disk: 1, ram: 512, vcpus: 1}\n type: OS::Nova::Flavor\noutputs:\n mgmt_ip-VDU1:\n value:\n get_attr: [CP1, fixed_ips, 0, ip_address]\n" + }, + "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef", + "name": "OpenWRT" + } +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-update-request.json b/api-ref/source/v1/samples/vnfs/vnfs-update-request.json new file mode 100644 index 000000000..eb86bebb6 --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-update-request.json @@ -0,0 +1,15 @@ +{ + "vnf": { + "attributes": { + "config": { + "vdus": { + "VDU1": { + "config": { + "firewall": "package firewall\n\nconfig defaults\n option syn_flood 1\n option input ACCEPT\n option output ACCEPT\n option forward REJECT\n" + } + } + } + } + } + } +} diff --git a/api-ref/source/v1/samples/vnfs/vnfs-update-response.json b/api-ref/source/v1/samples/vnfs/vnfs-update-response.json new file mode 100644 index 000000000..2d27f1898 --- /dev/null +++ b/api-ref/source/v1/samples/vnfs/vnfs-update-response.json @@ -0,0 +1,26 @@ +{ + "vnf": { + "status": "PENDING_UPDATE", + "description": "OpenWRT VNFD with parameterized VDU name", + "vnfd_id": "a04b47d1-e8ad-4ef9-8341-eafec398ce02", + "tenant_id": "6673e4d4e13340acb0b847f9ecde613b", + "created_at": "2016-10-25 10:15:06", + "updated_at": "2016-10-25 10:16:43", + "instance_id": "178d3186-5b5f-483c-b2f5-75b484ec793e", + "mgmt_url": "{\"VDU1\": \"192.168.120.3\"}", + "vim_id": "f6bd6f24-7a0e-4111-8994-e108c5ee2ff2", + "placement_attr": { + "region_name": "RegionOne", + "vim_name": "VIM0" + }, + "error_reason": null, + "attributes": { + "config": "vdus:\n VDU1:\n config: {firewall: \"package firewall\\n\\nconfig defaults\\n option syn_flood\\\n \\ 1\\n option input ACCEPT\\n option output ACCEPT\\n option forward\\\n \\ REJECT\\n\"}\n vdu1:\n config: {firewall: 'package firewall\n\n '}\n", + "monitoring_policy": "{\"vdus\": {\"VDU1\": {\"ping\": {\"actions\": {\"failure\": \"respawn\"}, \"name\": \"ping\", \"parameters\": {\"count\": 3, \"interval\": 10}, \"monitoring_params\": {\"count\": 3, \"interval\": 10}}}}}", + "param_values": "vdus:\n vdu1:\n param: {vdu-name: openwrt_vdu1}\n", + "heat_template": "heat_template_version: 2013-05-23\ndescription: 'OpenWRT with services\n\n '\nparameters:\n vdu-name:\n type: string\n description: Vdu name\n default: test-vdu\nresources:\n CP1:\n type: OS::Neutron::Port\n properties:\n network: net_mgmt\n port_security_enabled: false\n CP2:\n type: OS::Neutron::Port\n properties:\n network: net0\n port_security_enabled: false\n CP3:\n type: OS::Neutron::Port\n properties:\n network: net1\n port_security_enabled: false\n VDU1:\n type: OS::Nova::Server\n properties:\n config_drive: false\n flavor: {get_resource: VDU1_flavor}\n image: OpenWRT\n name:\n get_param: vdu-name\n networks:\n - port:\n get_resource: CP1\n - port:\n get_resource: CP2\n - port:\n get_resource: CP3\n user_data_format: SOFTWARE_CONFIG\n VDU1_flavor:\n properties: {disk: 1, ram: 512, vcpus: 1}\n type: OS::Nova::Flavor\noutputs:\n mgmt_ip-VDU1:\n value:\n get_attr: [CP1, fixed_ips, 0, ip_address]\n" + }, + "id": "2b85ac49-e59e-4f22-89b8-42c3e27115ef", + "name": "OpenWRT" + } +} diff --git a/api-ref/source/v1/sfcs.inc b/api-ref/source/v1/sfcs.inc index e69de29bb..65c2af0ee 100644 --- a/api-ref/source/v1/sfcs.inc +++ b/api-ref/source/v1/sfcs.inc @@ -0,0 +1,97 @@ +.. -*- rst -*- + +============================== +Service Function Chains (SFCs) +============================== + +Lists Service Function Chains (SFCs) and shows information of a given SFC. + +The SFC is a component of a NFP and forms a path which traffics flow through. + +List SFCs +========= + +.. rest_method:: GET /v1.0/sfcs + +Lists SFCs. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - sfcs: sfcs + - status: sfc_status + - path_id: sfc_path_id + - nfp_id: sfc_nfp_id + - chain: sfc_chain + - tenant_id: tenant_id + - instance_id: sfc_instance_id + - symmetrical: symmetrical + - id: sfc_id + +Response Example +---------------- + +.. literalinclude:: samples/sfcs/sfcs-list-response.json + :language: javascript + +Show SFC +======== + +.. rest_method:: GET /v1.0/sfcs/{sfc_id} + +Shows information of a given SFC. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - sfc_id: sfc_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - sfc: sfc + - status: sfc_status + - path_id: sfc_path_id + - nfp_id: sfc_nfp_id + - chain: sfc_chain + - tenant_id: tenant_id + - instance_id: sfc_instance_id + - symmetrical: symmetrical + - id: sfc_id + +Response Example +---------------- + +.. literalinclude:: samples/sfcs/sfcs-show-response.json + :language: javascript diff --git a/api-ref/source/v1/status.yaml b/api-ref/source/v1/status.yaml index e69de29bb..250ac7342 100644 --- a/api-ref/source/v1/status.yaml +++ b/api-ref/source/v1/status.yaml @@ -0,0 +1,62 @@ +################# +# Success Codes # +################# +200: + default: | + Request was successful. +201: + default: | + Resource was created and is ready to use. +202: + default: | + Request was accepted for processing, but the processing has not been + completed. A 'location' header is included in the response which contains + a link to check the progress of the request. +204: + default: | + The server has fulfilled the request by deleting the resource. +300: + default: | + There are multiple choices for resources. The request has to be more + specific to successfully retrieve one of these resources. +302: + default: | + The response is about a redirection hint. The header of the response + usually contains a 'location' value where requesters can check to track + the real location of the resource. + +################# +# Error Codes # +################# + +400: + default: | + Some content in the request was invalid. + resource_signal: | + The target resource doesn't support receiving a signal. +401: + default: | + User must authenticate before making a request. +403: + default: | + Policy does not allow current user to do this operation. +404: + default: | + The requested resource could not be found. +405: + default: | + Method is not valid for this endpoint. +409: + default: | + This operation conflicted with another operation on this resource. + duplcate_zone: | + There is already a zone with this name. +500: + default: | + Something went wrong inside the service. This should not happen usually. + If it does happen, it means the server has experienced some serious + problems. +503: + default: | + Service is not available. This is mostly caused by service configuration + errors which prevents the service from successful start up. diff --git a/api-ref/source/v1/versions.inc b/api-ref/source/v1/versions.inc index e69de29bb..dab2d1e9c 100644 --- a/api-ref/source/v1/versions.inc +++ b/api-ref/source/v1/versions.inc @@ -0,0 +1,44 @@ +.. -*- rst -*- + +============ +API versions +============ + +Lists information of NFV Orchestration API versions. + +List versions +============= + +.. rest_method:: GET / + +Lists NFV Orchestration API versions. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - versions: versions + - status: version_status + - id: version_id + - links: version_links + - href: version_href + - rel: version_rel + +Response Example +---------------- + +.. literalinclude:: samples/versions/versions-list-response.json + :language: javascript diff --git a/api-ref/source/v1/vims.inc b/api-ref/source/v1/vims.inc index e69de29bb..160f93c62 100644 --- a/api-ref/source/v1/vims.inc +++ b/api-ref/source/v1/vims.inc @@ -0,0 +1,274 @@ +.. -*- rst -*- + +========================================== +Virtualized Infrastructure Managers (VIMs) +========================================== + +Manages Virtualized Infrastructure Managers (VIMs). + +The VIM is responsible for controlling and managing Network Function +Virtualization Infrastructure (NFVI) which provides VNFs with the +resources they need. + +Register VIM +============ + +.. rest_method:: POST /v1.0/vims + +Registers a VIM. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 201 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vim: vim + - tenant_id: tenant_id_opt + - type: vim_type + - auth_url: vim_auth_url + - auth_cred: vim_auth_cred + - vim_project: vim_project + - name: name + - description: description_opt + - is_default: vim_is_default_opt + +Request Example +--------------- + +.. literalinclude:: samples/vims/vims-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vim: vim + - status: vim_status + - description: description + - tenant_id: tenant_id + - created_at: vim_created_at + - vim_project: vim_project + - updated_at: vim_updated_at + - is_default: vim_is_default + - auth_url: vim_auth_url + - placement_attr: vim_placement_attr + - auth_cred: vim_auth_cred_output + - type: vim_type + - id: vim_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vims/vims-create-response.json + :language: javascript + +List VIMs +========= + +.. rest_method:: GET /v1.0/vims + +Lists VIMs. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vims: vims + - status: vim_status + - description: description + - tenant_id: tenant_id + - created_at: vim_created_at + - vim_project: vim_project + - updated_at: vim_updated_at + - is_default: vim_is_default + - auth_url: vim_auth_url + - placement_attr: vim_placement_attr + - auth_cred: vim_auth_cred_output + - type: vim_type + - id: vim_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vims/vims-list-response.json + :language: javascript + +Show VIM +======== + +.. rest_method:: GET /v1.0/vims/{vim_id} + +Shows information of a given VIM. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vim_id: vim_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vim: vim + - status: vim_status + - description: description + - tenant_id: tenant_id + - created_at: vim_created_at + - vim_project: vim_project + - updated_at: vim_updated_at + - is_default: vim_is_default + - auth_url: vim_auth_url + - placement_attr: vim_placement_attr + - auth_cred: vim_auth_cred_output + - type: vim_type + - id: vim_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vims/vims-show-response.json + :language: javascript + +Update VIM +========== + +.. rest_method:: PUT /v1.0/vims/{vim_id} + +Updates a given VIM. +Only a VIM without any associated VNFs can be updated. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vim_id: vim_id_path + - vim: vim + - auth_cred: vim_auth_cred + - vim_project: vim_project_opt + - name: name_opt + - description: description_opt + - is_default: vim_is_default_opt + +Request Example +--------------- + +.. literalinclude:: samples/vims/vims-update-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vim: vim + - status: vim_status + - description: description + - tenant_id: tenant_id + - created_at: vim_created_at + - vim_project: vim_project + - updated_at: vim_updated_at + - is_default: vim_is_default + - auth_url: vim_auth_url + - placement_attr: vim_placement_attr + - auth_cred: vim_auth_cred_output + - type: vim_type + - id: vim_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vims/vims-update-response.json + :language: javascript + +Delete VIM +========== + +.. rest_method:: DELETE /v1.0/vims/{vim_id} + +Deletes a given VIM. +Only a VIM without any associated VNFs can be deleted. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 204 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vim_id: vim_id_path diff --git a/api-ref/source/v1/vnfds.inc b/api-ref/source/v1/vnfds.inc index e69de29bb..04d160763 100644 --- a/api-ref/source/v1/vnfds.inc +++ b/api-ref/source/v1/vnfds.inc @@ -0,0 +1,256 @@ +.. -*- rst -*- + +================================================ +Virtualized Network Function Descriptors (VNFDs) +================================================ + +Manages Virtualized Network Function Descriptors (VNFDs). + +The VNFD is a template which describes information about deployment +and behavior of Virtualized Network Functions (VNFs). For more information, see +`VNF Descriptor Template Guide +`_. + +Create VNFD +=========== + +.. rest_method:: POST /v1.0/vnfds + +Creates a VNFD. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 201 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id_opt + - name: name + - description: description_opt + - service_types: service_types + - infra_driver: infra_driver_opt + - mgmt_driver: mgmt_driver_opt + - attributes: vnfd_attributes + +Request Example +--------------- + +.. literalinclude:: samples/vnfds/vnfds-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnfd: vnfd + - service_types: service_types + - description: description + - tenant_id: tenant_id + - created_at: created_at + - updated_at: updated_at + - mgmt_driver: mgmt_driver + - infra_driver: infra_driver + - attributes: vnfd_attributes + - id: vnfd_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnfds/vnfds-create-response.json + :language: javascript + +List VNFDs +========== + +.. rest_method:: GET /v1.0/vnfds + +Lists VNFDs. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnfds: vnfds + - service_types: service_types + - description: description + - tenant_id: tenant_id + - created_at: created_at + - updated_at: updated_at + - mgmt_driver: mgmt_driver + - infra_driver: infra_driver + - attributes: vnfd_attributes + - id: vnfd_id + - name: name + + +Response Example +---------------- + +.. literalinclude:: samples/vnfds/vnfds-list-response.json + :language: javascript + +Show VNFD +========= + +.. rest_method:: GET /v1.0/vnfds/{vnfd_id} + +Shows information of a given VNFD. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnfd_id: vnfd_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnfd: vnfd + - service_types: service_types + - description: description + - tenant_id: tenant_id + - created_at: created_at + - updated_at: updated_at + - mgmt_driver: mgmt_driver + - infra_driver: infra_driver + - attributes: vnfd_attributes + - id: vnfd_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnfds/vnfds-show-response.json + :language: javascript + +Update VNFD +=========== + +.. rest_method:: PUT /v1.0/vnfds/{vnfd_id} + +Updates a given VNFD. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnfd_id: vnfd_id_path + - name: name_opt + - description: description_opt + +Request Example +--------------- + +.. literalinclude:: samples/vnfds/vnfds-update-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnfd: vnfd + - service_types: service_types + - description: description + - tenant_id: tenant_id + - created_at: created_at + - updated_at: updated_at + - mgmt_driver: mgmt_driver + - infra_driver: infra_driver + - attributes: vnfd_attributes + - id: vnfd_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnfds/vnfds-update-response.json + :language: javascript + +Delete VNFD +=========== + +.. rest_method:: DELETE /v1.0/vnfds/{vnfd_id} + +Deletes a given VNFD. +Only a VNFD without any associated VNFs can be deleted. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 204 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnfd_id: vnfd_id_path diff --git a/api-ref/source/v1/vnffgds.inc b/api-ref/source/v1/vnffgds.inc index e69de29bb..fe824e37b 100644 --- a/api-ref/source/v1/vnffgds.inc +++ b/api-ref/source/v1/vnffgds.inc @@ -0,0 +1,176 @@ +.. -*- rst -*- + +========================================== +VNF Forwarding Graph Descriptors (VNFFGDs) +========================================== + +Manages VNF Forwarding Graph Descriptors (VNFFGDs). + +The VNFFGD is a template which describes information about deployment and +behavior of VNF Forwarding Graphs (VNFFGs). For more information, see +`VNFFG Descriptor Template Guide +`_. + + +Create VNFFGD +============= + +.. rest_method:: POST /v1.0/vnffgds + +Creates a VNFFGD. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 201 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id_opt + - name: name + - template: vnffgd_template + - description: description_opt + +Request Example +--------------- + +.. literalinclude:: samples/vnffgds/vnffgds-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnffgd: vnffgd + - tenant_id: tenant_id + - name: name + - template: vnffgd_template + - description: description + +Response Example +---------------- + +.. literalinclude:: samples/vnffgds/vnffgds-create-response.json + :language: javascript + +List VNFFGDs +============ + +.. rest_method:: GET /v1.0/vnffgds + +Lists VNFFGDs. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnffgds: vnffgds + - description: description + - tenant_id: tenant_id + - id: vnffgd_id + - name: name + + +Response Example +---------------- + +.. literalinclude:: samples/vnffgds/vnffgds-list-response.json + :language: javascript + +Show VNFFGD +=========== + +.. rest_method:: GET /v1.0/vnffgds/{vnffgd_id} + +Shows information of a given VNFFGD. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnffgd_id: vnffgd_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnffgd: vnffgd + - description: description + - tenant_id: tenant_id + - id: vnffgd_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnffgds/vnffgds-show-response.json + :language: javascript + +Delete VNFFGD +============= + +.. rest_method:: DELETE /v1.0/vnffgds/{vnffgd_id} + +Deletes a given VNFFGD. +Only a VNFFGD without any associated VNFFGs can be deleted. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 204 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnffgd_id: vnffgd_id_path diff --git a/api-ref/source/v1/vnffgs.inc b/api-ref/source/v1/vnffgs.inc index e69de29bb..ebf9f06a4 100644 --- a/api-ref/source/v1/vnffgs.inc +++ b/api-ref/source/v1/vnffgs.inc @@ -0,0 +1,187 @@ +.. -*- rst -*- + +============================== +VNF Forwarding Graphs (VNFFGs) +============================== + +Manages VNF Forwarding Graphs (VNFFGs). + +The VNFFG feature is used to orchestrate and manage traffic through VNFs. +For more information about VNFFG, see +`VNF Forwarding Graph +`_. + +Create VNFFG +============ + +.. rest_method:: POST /v1.0/vnffgs + +Creates a VNFFG. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 201 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - tenant_id: tenant_id_opt + - vnffgd_id: vnffgd_id + - name: name + - vnf_mapping: vnf_mapping_opt + - symmetrical: symmetrical_opt + +Request Example +--------------- + +.. literalinclude:: samples/vnffgs/vnffgs-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnffg: vnffg + - forwarding_paths: vnffg_forwarding_paths + - status: vnffg_status + - description: description + - tenant_id: tenant_id + - vnffgd_id: vnffgd_id + - vnf_mapping: vnf_mapping + - id: vnffg_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnffgs/vnffgs-create-response.json + :language: javascript + +List VNFFGs +=========== + +.. rest_method:: GET /v1.0/vnffgs + +Lists VNFFGs. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnffgs: vnffgs + - forwarding_paths: vnffg_forwarding_paths + - status: vnffg_status + - description: description + - tenant_id: tenant_id + - vnffgd_id: vnffgd_id + - vnf_mapping: vnf_mapping + - id: vnffg_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnffgs/vnffgs-list-response.json + :language: javascript + +Show VNFFG +========== + +.. rest_method:: GET /v1.0/vnffgs/{vnffg_id} + +Shows information of a given VNFFG. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnffg_id: vnffg_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnffg: vnffg + - forwarding_paths: vnffg_forwarding_paths + - status: vnffg_status + - description: description + - tenant_id: tenant_id + - vnffgd_id: vnffgd_id + - vnf_mapping: vnf_mapping + - id: vnffg_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnffgs/vnffgs-show-response.json + :language: javascript + +Delete VNFFG +============ + +.. rest_method:: DELETE /v1.0/vnffgs/{vnffg_id} + +Deletes a given VNFFG. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 204 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnffg_id: vnffg_id_path diff --git a/api-ref/source/v1/vnfs.inc b/api-ref/source/v1/vnfs.inc index e69de29bb..0ba487fe1 100644 --- a/api-ref/source/v1/vnfs.inc +++ b/api-ref/source/v1/vnfs.inc @@ -0,0 +1,382 @@ +.. -*- rst -*- + +==================================== +Virtualized Network Functions (VNFs) +==================================== + +Manages Virtualized Network Functions (VNFs) and their resources. + +The VNF takes on the responsibility for handling specific network functions. + +Create VNF +========== + +.. rest_method:: POST /v1.0/vnfs + +Creates a VNF. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 201 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnf: vnf + - tenant_id: tenant_id_opt + - vnfd_id: vnfd_id + - vim_id: vim_id_opt + - name: name + - description: description_opt + - attributes: vnf_attributes_opt + - config: vnf_config_opt + - param_values: vnf_param_values_opt + - placement_attr: vnf_placement_attr_opt + +Request Example +--------------- + +.. literalinclude:: samples/vnfs/vnfs-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnf: vnf + - status: vnf_status + - description: description + - vnfd_id: vnfd_id + - tenant_id: tenant_id + - created_at: vnf_created_at + - updated_at: vnf_updated_at + - instance_id: vnf_instance_id + - mgmt_url: vnf_mgmt_url + - vim_id: vim_id + - placement_attr: vnf_placement_attr + - error_reason: vnf_error_reason + - attributes: vnf_attributes + - config: vnf_config + - param_values: vnf_param_values + - monitoring_policy: vnf_monitoring_policy + - heat_template: vnf_heat_template + - id: vnf_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnfs/vnfs-create-response.json + :language: javascript + +List VNFs +========= + +.. rest_method:: GET /v1.0/vnfs + +Lists VNFs. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 500 + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnfs: vnfs + - status: vnf_status + - description: description + - vnfd_id: vnfd_id + - tenant_id: tenant_id + - created_at: vnf_created_at + - updated_at: vnf_updated_at + - instance_id: vnf_instance_id + - mgmt_url: vnf_mgmt_url + - vim_id: vim_id + - placement_attr: vnf_placement_attr + - error_reason: vnf_error_reason + - attributes: vnf_attributes + - config: vnf_config + - param_values: vnf_param_values + - monitoring_policy: vnf_monitoring_policy + - heat_template: vnf_heat_template + - id: vnf_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnfs/vnfs-list-response.json + :language: javascript + +Show VNF +======== + +.. rest_method:: GET /v1.0/vnfs/{vnf_id} + +Shows information of a given VNF. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnf_id: vnf_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnf: vnf + - status: vnf_status + - description: description + - vnfd_id: vnfd_id + - tenant_id: tenant_id + - created_at: vnf_created_at + - updated_at: vnf_updated_at + - instance_id: vnf_instance_id + - mgmt_url: vnf_mgmt_url + - vim_id: vim_id + - placement_attr: vnf_placement_attr + - error_reason: vnf_error_reason + - attributes: vnf_attributes + - config: vnf_config + - param_values: vnf_param_values + - monitoring_policy: vnf_monitoring_policy + - heat_template: vnf_heat_template + - id: vnf_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnfs/vnfs-show-response.json + :language: javascript + +Update VNF +=========== + +.. rest_method:: PUT /v1.0/vnfs/{vnf_id} + +Updates a given VNF. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnf: vnf + - attributes: vnf_attributes_put + - config: vnf_config_opt + +Request Example +--------------- + +.. literalinclude:: samples/vnfs/vnfs-update-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - vnf: vnf + - status: vnf_status + - description: description + - vnfd_id: vnfd_id + - tenant_id: tenant_id + - created_at: vnf_created_at + - updated_at: vnf_updated_at + - instance_id: vnf_instance_id + - mgmt_url: vnf_mgmt_url + - vim_id: vim_id + - placement_attr: vnf_placement_attr + - error_reason: vnf_error_reason + - attributes: vnf_attributes + - config: vnf_config + - param_values: vnf_param_values + - monitoring_policy: vnf_monitoring_policy + - heat_template: vnf_heat_template + - id: vnf_id + - name: name + +Response Example +---------------- + +.. literalinclude:: samples/vnfs/vnfs-update-response.json + :language: javascript + +Delete VNF +========== + +.. rest_method:: DELETE /v1.0/vnfs/{vnf_id} + +Deletes a given VNF. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 204 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 409 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnf_id: vnf_id_path + +List VNF resources +================== + +.. rest_method:: GET /v1.0/vnfs/{vnf_id}/resources + +Lists resources, such as VDU/CP, of a given VNF. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 200 + +.. rest_status_code:: error status.yaml + + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnf_id: vnf_id_path + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - resources: vnf_resources + - type: vnf_resource_type + - name: vnf_resource_name + - id: vnf_resource_id + +Response Example +---------------- + +.. literalinclude:: samples/vnfs/vnfs-resources-list-response.json + :language: javascript + +Trigger VNF scaling +=================== + +.. rest_method:: POST /v1.0/vnfs/{vnf_id}/actions + +Triggers VNF scaling action. + +Response Codes +-------------- + +.. rest_status_code:: success status.yaml + + - 201 + +.. rest_status_code:: error status.yaml + + - 400 + - 401 + - 404 + - 500 + +Request Parameters +------------------ + +.. rest_parameters:: parameters.yaml + + - vnf_id: vnf_id_path + - scale: vnf_scale + - policy: vnf_scale_policy + - type: vnf_scale_type + +Request Example +--------------- + +.. literalinclude:: samples/vnfs/vnfs-actions-create-request.json + :language: javascript + +Response Parameters +------------------- + +.. rest_parameters:: parameters.yaml + + - scale: vnf_scale + - policy: vnf_scale_policy + - type: vnf_scale_type + +Response Example +---------------- + +.. literalinclude:: samples/vnfs/vnfs-actions-create-response.json + :language: javascript