diff --git a/docs/index.rst b/docs/index.rst new file mode 100644 index 0000000..57e05a3 --- /dev/null +++ b/docs/index.rst @@ -0,0 +1,4 @@ +.. toctree:: + + intro.rst + is-model.rst diff --git a/docs/intro.rst b/docs/intro.rst new file mode 100644 index 0000000..e69de29 diff --git a/docs/is-model.rst b/docs/is-model.rst new file mode 100644 index 0000000..37a4e46 --- /dev/null +++ b/docs/is-model.rst @@ -0,0 +1,342 @@ + +Property +======== + +This is the base type for any Property + + +.. table:: **Property** + + +------------------------------------------------------+------+------------+-------------+ + | Name | Type | Attributes | Description | + +======================================================+======+============+=============+ + | This type does not define any additional attributes. | + +------------------------------------------------------+------+------------+-------------+ + + +The **Property** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +Header +------ + +This type provides metadata per every IdentifiableElement + + +.. table:: **Header** ``extends`` **Property** + + +----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ + | Name | Type | Attributes | Description | + +================+========+====================================================================================================================================================+=========================================================================================================================================+ + | createdBy | String | ``Mandatory:true`` ``ReadOnly:true`` ``NotNull:true`` | The user that created the Entity or the Relation. It is initialized at Creation Time. | + +----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ + | creationTime | Date | ``Mandatory:true`` ``ReadOnly:true`` ``NotNull:true`` | Creation time. It is represented in the format yyyy-MM-dd HH:mm:ss.SSS Z. | + +----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ + | lastUpdateBy | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | The user that made the last update to the Entity or the Relation. At Creation Time, it assumes the same value of createdBy. | + +----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ + | lastUpdateTime | Date | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | Last Update time. At creation time it assumes the same value of creationTime. It is represented in the format yyyy-MM-dd HH:mm:ss.SSS Z | + +----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ + | uuid | String | ``Mandatory:true`` ``ReadOnly:true`` ``NotNull:true`` ``Regex:^([a-fA-F0-9]{8}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{4}-[a-fA-F0-9]{12}){1}$`` | This UUID is be used to identify the Entity or the Relation univocally. | + +----------------+--------+----------------------------------------------------------------------------------------------------------------------------------------------------+-----------------------------------------------------------------------------------------------------------------------------------------+ + + +The **Header** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +Encrypted +--------- + +This type is used to properly manage encrypted values across contexts. + + +.. table:: **Encrypted** ``extends`` **Property** + + +-------+--------+--------------------------------------------------------+----------------------------------------+ + | Name | Type | Attributes | Description | + +=======+========+========================================================+========================================+ + | value | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | The value to store encrypted in the IS | + +-------+--------+--------------------------------------------------------+----------------------------------------+ + + +The **Encrypted** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +PropagationConstraint +--------------------- + +This type provides propagation constraint for Relation + + +.. table:: **PropagationConstraint** ``extends`` **Property** + + +--------+--------+-----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Name | Type | Attributes | Description | + +========+========+=====================================================================================================+========================================================================================================================================================================================================================================================================================+ + | add | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` ``Regex:^(propagate|unpropagate)$`` | It indicates the behaviour to implement for the target Entity when an 'add' action is performed on the source Resource. Add action is the operation of adding an instance to a context. | + +--------+--------+-----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | remove | String | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` ``Regex:^(cascadeWhenOrphan|cascade|keep)$`` | It indicates the behaviour to implement for the target Entity when a 'remove' action is performed on the source Resource. Remove actions are: (i) the operation of removing an instance from a context; (ii) the operation of deleting an instance (it has an impact on all contexts). | + +--------+--------+-----------------------------------------------------------------------------------------------------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +The **PropagationConstraint** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +Entity +====== + +This is the base type for any Entity + + +.. table:: **Entity** + + +------------+----------+--------------------------------------------------------+--------------------------------------------------------------------------------------------+ + | Properties | + +============+==========+========================================================+============================================================================================+ + | **Name** | **Type** | **Attributes** | **Description** | + +------------+----------+--------------------------------------------------------+--------------------------------------------------------------------------------------------+ + | header | Header | ``Mandatory:true`` ``ReadOnly:false`` ``NotNull:true`` | Metadata associated with the instance that is automatically created/updated by the system. | + +------------+----------+--------------------------------------------------------+--------------------------------------------------------------------------------------------+ + + +The **Entity** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +Resource +-------- + +This is the base type for any Resource + + +.. table:: **Resource** ``extends`` **Entity** + + +-------------------------------------------------------+----------+--------------+--------+-------------+ + | Source | Relation | Multiplicity | Target | Description | + +=======================================================+==========+==============+========+=============+ + | **Facets** | + +-------------------------------------------------------+----------+--------------+--------+-------------+ + | No specific facets usage defined for this type. | + +-------------------------------------------------------+----------+--------------+--------+-------------+ + | **Resource Relations** | + +-------------------------------------------------------+----------+--------------+--------+-------------+ + | No specific Resource relations defined for this type. | + +-------------------------------------------------------+----------+--------------+--------+-------------+ + + +The **Resource** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +Facet +----- + +This is the base type for any Facet + + +.. table:: **Facet** ``extends`` **Entity** + + +------------------------------------------------------+----------------+------------------+-----------------+----------------------------------------------------------------------------------------------+ + | Properties | + +======================================================+================+==================+=================+==============================================================================================+ + | **Name** | **Type** | **Attributes** | **Description** | + +------------------------------------------------------+----------------+------------------+-----------------+----------------------------------------------------------------------------------------------+ + | This type does not define any additional attributes. | + +------------------------------------------------------+----------------+------------------+-----------------+----------------------------------------------------------------------------------------------+ + | **Known Usage** | + +------------------------------------------------------+----------------+------------------+-----------------+----------------------------------------------------------------------------------------------+ + | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | + +------------------------------------------------------+----------------+------------------+-----------------+----------------------------------------------------------------------------------------------+ + | GCubeResource | IsIdentifiedBy | 1..1 | Facet | Any Resource has at least one Facet which in some way allow to identify the Resource per se. | + +------------------------------------------------------+----------------+------------------+-----------------+----------------------------------------------------------------------------------------------+ + + +The **Facet** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +Relation +======== + +This is the base type for any Relation + + +.. table:: **Relation** + + +-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ + | **Definition** | + +=======================+=======================+==========================================================+=================+========================================+ + | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | + +-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ + | Resource | Relation | 0..n | Entity | This is the base type for any Relation | + +-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ + | **Properties** | + +-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ + | **Name** | **Type** | **Attributes** | **Description** | + +-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ + | propagationConstraint | PropagationConstraint | ``Mandatory:false`` ``ReadOnly:false`` ``NotNull:false`` | | + +-----------------------+-----------------------+----------------------------------------------------------+-----------------+----------------------------------------+ + + +The **Relation** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +ConsistsOf +---------- + +This is the base type for any ConsistsOf relation + + +.. table:: **ConsistsOf** ``extends`` **Relation** + + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | **Definition** | + +======================================================+==============+==================+==========================+=====================================================================================================================================================================================+ + | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Resource | ConsistsOf | 0..n | Facet | This is the base type for any ConsistsOf relation | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | **Properties** | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | **Name** | **Type** | **Attributes** | **Description** | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | This type does not define any additional attributes. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | **Known Usage** | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Actor | ConsistsOf | 0..n | ContactReferenceFacet | | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | ConcreteDataset | ConsistsOf | 1..n | AccessPointFacet | The access point to use for having access to the concrete dataset. The embargoState can be modeled through the access policy defined in the consistsOf relation. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Dataset | ConsistsOf | 0..n | AccessPointFacet | The access point to use for having access to the dataset. The embargoState can be modeled through the access policy defined in the consistsOf relation. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Dataset | ConsistsOf | 0..n | DescriptiveMetadataFacet | Any descriptive information associated with the dataset, e.g. for discovery purposes. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Dataset | ConsistsOf | 0..n | EventFacet | Any 'event' characterising the lifecycle of the dataset, e.g. collection date, last collection date. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Dataset | ConsistsOf | 0..n | LicenseFacet | The licence governing dataset exploitation. The duration of license (if any) is captured by the expiry date defined in the consistsOf relation. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Dataset | ConsistsOf | 0..n | ProvenanceFacet | Any provenance record associated with the dataset. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Dataset | ConsistsOf | 0..n | SubjectFacet | Any subject/tag associated with the dataset for descriptive and discovery purposes. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | EService | ConsistsOf | 1..n | AccessPointFacet | Identify the endpoints of the EService. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | EService | ConsistsOf | 1..n | EventFacet | Events characterising the current status and lifecycle of the service, e.g. ActivationTime, DeploymentTime. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | EService | ConsistsOf | 0..n | LicenseFacet | The specific terms of use governing the exploitation of the EService. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | EService | ConsistsOf | 0..n | SoftwareFacet | Software available in the EService environment that characterizes the specific EService instance. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | EService | ConsistsOf | 1..1 | StateFacet | The current status of the EService, e.g. STARTED, ready, down, failed. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | HostingNode | ConsistsOf | 1..n | CPUFacet | The CPU equipping the Hosting Node. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | HostingNode | ConsistsOf | 1..n | EventFacet | Every event characterizing the life cycle of the Hosting Node, e.g. the activation time. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | HostingNode | ConsistsOf | 0..n | SimplePropertyFacet | Any pair property worth associating with the Hosting Node, e.g. Environment Variables | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | HostingNode | ConsistsOf | 0..n | SoftwareFacet | Any Software characterising the Hosting Node. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | HostingNode | ConsistsOf | 1..1 | StateFacet | The current state of the Hosting Node, e.g. started, ready, certified, down, failed. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Schema | ConsistsOf | 0..n | DescriptiveMetadataFacet | | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Schema | ConsistsOf | 0..n | SubjectFacet | | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Service | ConsistsOf | 0..n | CapabilityFacet | Any facility supported/offered by the Service. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Service | ConsistsOf | 0..n | DescriptiveMetadataFacet | Any descriptive information associated with the service, e.g. for discovery purposes. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Service | ConsistsOf | 0..n | SubjectFacet | Any subject/tag associated with the service for descriptive, cataloguing and discovery purposes. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Site | ConsistsOf | 1..n | LocationFacet | | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Site | ConsistsOf | 1..n | NetworkingFacet | | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Software | ConsistsOf | 0..n | CapabilityFacet | | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | Software | ConsistsOf | 1..n | SoftwareFacet | Apart the one connected by the IsIdentifiedBy relation (gCube coordinates) the others identify the software in other way e.g. (Maven coordinates). | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | VirtualMachine | ConsistsOf | 1..n | CPUFacet | The CPU equipping the Virtual Machine. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | VirtualMachine | ConsistsOf | 1..n | EventFacet | Every event characterizing the life cycle of the Virtual Machine, e.g. the activation time. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | VirtualMachine | ConsistsOf | 0..n | SoftwareFacet | Any Software characterising the Virtual Machine. Useful to report the hosted software that are not registered in the Resource Registry as Software Resource, e.g. Operating System | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + | VirtualMachine | ConsistsOf | 1..1 | StateFacet | The current state of the Virtual Machine, e.g. started, ready, down, unreachable. | + +------------------------------------------------------+--------------+------------------+--------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ + + +The **ConsistsOf** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. + + +IsRelatedTo +----------- + +This is the base type for any IsRelatedTo relation + + +.. table:: **IsRelatedTo** ``extends`` **Relation** + + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | **Definition** | + +======================================================+==============+==================+=================+====================================================+ + | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | Resource | IsRelatedTo | 0..n | Resource | This is the base type for any IsRelatedTo relation | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | **Properties** | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | **Name** | **Type** | **Attributes** | **Description** | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | This type does not define any additional attributes. | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | **Known Usage** | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | **Source** | **Relation** | **Multiplicity** | **Target** | **Description** | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + | No specific known usage for this type. | + +------------------------------------------------------+--------------+------------------+-----------------+----------------------------------------------------+ + + +The **IsRelatedTo** current version is 1.0.0. + +Changelog: + +* **1.0.0**: First Version. +