Commit 4bbcfb6b authored by Miguel Angel Reina Ortega's avatar Miguel Angel Reina Ortega
Browse files

Initial commit

parents
Loading
Loading
Loading
Loading
+111 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>

<!-- ================================================ -->
<!-- This document is part of ETSI TS 119 512 v.1.1.1 -->
<!-- ================================================ -->

<xs:schema xmlns="http://www.w3.org/2001/XMLSchema"
	xmlns:ex="http://uri.etsi.org/19512/exchange/v1.1.1#"
	xmlns:xs="http://www.w3.org/2001/XMLSchema"
	xmlns:ds-rw="http://docs.oasis-open.org/dss-x/ns/xmldsig/rewritten"
	xmlns:pres="http://uri.etsi.org/19512/v1.1.1#"
	targetNamespace="http://uri.etsi.org/19512/exchange/v1.1.1#"
	elementFormDefault="qualified" attributeFormDefault="unqualified"
	version="1.1.1">


	<xs:import namespace="http://docs.oasis-open.org/dss-x/ns/xmldsig/rewritten"
		schemaLocation="http://docs.oasis-open.org/dss-x/dss-core/v2.0/cs02/schema/oasis-dss-rw-xmldsig-core-schema.xsd" />
	<xs:import namespace="http://uri.etsi.org/19512/v1.1.1#"
		schemaLocation="https://forge.etsi.org/rep/esi/x19_512_preservation_protocol/raw/v1.1.1/19512-Preservation-API.xsd" />


	<!-- ======================================= -->
	<!-- Evidence Exchange Format				 -->
	<!-- ======================================= -->
	<!-- Version 1.0 (12.01.2020)                -->
	<!-- ======================================= -->

	<xs:element name="EvidenceExchange" type="ex:EvidenceExchangeType" />

	<xs:complexType name="EvidenceExchangeType">
		<xs:sequence>
			<xs:element ref="ex:EvidenceInfo" minOccurs="0" maxOccurs="unbounded" />
			<xs:element ref="ex:Object" minOccurs="0" maxOccurs="unbounded" />
			<xs:element ref="ex:HashTree" minOccurs="0" maxOccurs="unbounded" />
			<xs:element name="Other" type="pres:POType" minOccurs="0" maxOccurs="unbounded" />
		</xs:sequence>
	</xs:complexType>

	<xs:element name="EvidenceInfo" type="ex:EvidenceInfoType" />

	<xs:complexType name="EvidenceInfoType">
		<xs:sequence>
			<xs:choice>
				<xs:element ref="pres:Evidence" />
				<xs:element name="EvidenceRef" type="xs:IDREF" />
			</xs:choice>
			<xs:element name="HashTreeRef" type="xs:IDREF" maxOccurs="unbounded" minOccurs="0" />
			<xs:element name="ObjectRef" type="xs:IDREF" maxOccurs="unbounded" minOccurs="0" />		
			<xs:element name="RelatedEvidenceRef" type="xs:IDREF" maxOccurs="unbounded" minOccurs="0" />
		</xs:sequence>
		<xs:attribute name="ID" type="xs:ID" use="required" />
	</xs:complexType>

	<element name="Object" type="pres:POType" />

	<xs:element name="HashTree" type="ex:HashTreeType" />
	<xs:complexType name="HashTreeType">
		<xs:sequence>
			<xs:element ref="ex:Node" />
			<xs:element ref="ds-rw:DigestMethod" />
		</xs:sequence>
		<attribute name="ID" type="ID" use="required" />
		<attribute name="RelatedObjects" type="IDREFS" use="optional" />
	</xs:complexType>


	<xs:complexType name="AbstractNodeType" abstract="true">
		<xs:sequence>
			<xs:element ref="ds-rw:DigestValue" />
		</xs:sequence>
	</xs:complexType>

	<xs:element name="Node" type="ex:NodeType" />
	<xs:complexType name="NodeType">
		<xs:complexContent>
			<xs:extension base="ex:AbstractNodeType">
				<xs:choice maxOccurs="unbounded" minOccurs="0">
					<xs:element ref="ex:Node" />
					<xs:element ref="ex:Leaf" />
					<xs:element ref="ex:Group" />
				</xs:choice>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="Leaf" type="ex:LeafType" />
	<xs:complexType name="LeafType">
		<xs:complexContent>
			<xs:extension base="ex:AbstractNodeType">
				<xs:sequence>
					<xs:element ref="ex:Reference" minOccurs="0" maxOccurs="1" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

	<xs:element name="Reference" type="xs:IDREF" />

	<xs:element name="Group" type="ex:GroupType" />
	<xs:complexType name="GroupType">
		<xs:complexContent>
			<xs:extension base="ex:AbstractNodeType">
				<xs:sequence>
					<xs:element ref="ex:Leaf" minOccurs="1" maxOccurs="unbounded" />
				</xs:sequence>
			</xs:extension>
		</xs:complexContent>
	</xs:complexType>

</xs:schema>
+259 −0
Original line number Diff line number Diff line
{
    "openapi": "3.0.0",
    "info": {
        "title": "ETSI TS 119 512",
        "description": "Protocols for trust service providers providing long-term data preservation services",
        "contact": {
            "name": "ETSI ESI",
            "url": "https://www.etsi.org/committee/esi",
            "email": "esisupport@etsi.org"  
        },
        "license": {
            "name": "BSD-3-Clause",
            "url": "https://forge.etsi.org/legal-matters"
        },
        "version": "1.1.1"
    },
    "servers": [
        {
            "url": "127.0.0.1:{port}/{basePath}",
            "description": "ETSI TS 119 512 instance",
            "variables": {
                "port": {
                    "default": "443"
                },
                "basePath": {
                    "default": "pres"
                }
            }
        }
    ],
    "paths": {
        "/RetrieveInfo": {
            "post": {
                "requestBody": {
                    "description": "The RetrieveInfo request allows to retrieve information about the preservation profiles supported by the preservation service.",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-RetrieveInfoType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Info response object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-RetrieveInfoResponseType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/PreservePO": {
            "post": {
                "requestBody": {
                    "description": "The PreservePO request allows to submit zero or more preservation data objects to the preservation service.",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-PreservePOType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "PreservePOResponse object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-PreservePOResponseType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/RetrievePO": {
            "post": {
                "requestBody": {
                    "description": "The RetrievePO request allows to retrieve stored preservation data objects",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-RetrievePOType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "RetrievePOResponse object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-RetrievePOResponseType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/DeletePO": {
            "post": {
                "requestBody": {
                    "description": "The DeletePO request allows to delete a stored preservation data object",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-DeletePOType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "DeletePOResponse object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-ResponseType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/UpdatePOC": {
            "post": {
                "requestBody": {
                    "description": "The UpdatePOC request allows to provide a new version of a stored preservation data object",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-UpdatePOCType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "UpdatePOCResponse object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-UpdatePOCResponseType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/RetrieveTrace": {
            "post": {
                "requestBody": {
                    "description": "The RetrieveTrace request allows to request an audit trail element, which contains information with respect to relevant events, which happened within a preservation service for a specific (set of) submission data object(s).",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-RetrieveTraceType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Info response object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-RetrieveTraceResponseType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/ValidateEvidence": {
            "post": {
                "requestBody": {
                    "description": "The ValidateEvidence request allows to validate a provided preservation evidence and optionally a set of preservation objects, which are protected by it.",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-ValidateEvidenceType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Evidence validation response object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-ValidateEvidenceResponseType"
                                }
                            }
                        }
                    },
                    "default": {
                        "description": "Evidence validation response object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-ValidateEvidenceResponseType"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/Search": {
            "post": {
                "requestBody": {
                    "description": "The Search request allows to search among the preservation objects, which are accessible by the client.",
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "19512-Preservation-API-schema.json#/definitions/pres-SearchType"
                            }
                        }
                    }
                },
                "responses": {
                    "200": {
                        "description": "Found POIDs response object",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "19512-Preservation-API-schema.json#/definitions/pres-SearchResponseType"
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
+0 −0

File added.

Preview size limit exceeded, changes collapsed.

+257 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="UTF-8"?>

<!-- ================================================ -->
<!-- This document is part of ETSI TS 119 512 v.1.1.1 -->
<!-- ================================================ -->

<wsdl:definitions name="Preservation-API.wsdl"
				  xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/"
				  xmlns:pres="http://uri.etsi.org/19512/v1.1.1#"
				  xmlns:xsd="http://www.w3.org/2001/XMLSchema"
				  xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
				  targetNamespace="http://uri.etsi.org/19512/v1.1.1#">


	<!-- =================== -->
	<!-- Definition of types -->
	<!-- (only include XSDs) -->
	<!-- =================== -->

	<wsdl:types>
		<xsd:schema elementFormDefault="qualified"
					targetNamespace="http://uri.etsi.org/19512/v1.1.1#">
			<xsd:include schemaLocation="https://forge.etsi.org/rep/esi/x19_512_preservation_protocol/raw/v1.1.1/19512-Preservation-API.xsd" />
		</xsd:schema>
		<!-- Additional types for evidence exchange -->
		<xsd:schema elementFormDefault="qualified"
					targetNamespace="http://uri.etsi.org/19512/exchange/v1.1.1#">
			<xsd:include schemaLocation="https://forge.etsi.org/rep/esi/x19_512_preservation_protocol/raw/v1.1.1/19512-EvidenceExchange.xsd" />
		</xsd:schema>

	</wsdl:types>


	<!-- ====================== -->
	<!-- Definition of messages -->
	<!-- ====================== -->

	<wsdl:message name="RetrieveInfoRequest">
		<wsdl:part name="req" element="pres:RetrieveInfo" />
	</wsdl:message>

	<wsdl:message name="RetrieveInfoResponse">
		<wsdl:part name="res" element="pres:RetrieveInfoResponse" />
	</wsdl:message>


	<wsdl:message name="PreservePORequest">
		<wsdl:part name="req" element="pres:PreservePO" />
	</wsdl:message>

	<wsdl:message name="PreservePOResponse">
		<wsdl:part name="res" element="pres:PreservePOResponse" />
	</wsdl:message>


	<wsdl:message name="RetrievePORequest">
		<wsdl:part name="req" element="pres:RetrievePO" />
	</wsdl:message>

	<wsdl:message name="RetrievePOResponse">
		<wsdl:part name="res" element="pres:RetrievePOResponse" />
	</wsdl:message>


	<wsdl:message name="DeletePORequest">
		<wsdl:part name="req" element="pres:DeletePO" />
	</wsdl:message>

	<wsdl:message name="DeletePOResponse">
		<wsdl:part name="res" element="pres:DeletePOResponse" />
	</wsdl:message>


	<wsdl:message name="UpdatePOCRequest">
		<wsdl:part name="req" element="pres:UpdatePOC" />
	</wsdl:message>

	<wsdl:message name="UpdatePOCResponse">
		<wsdl:part name="res" element="pres:UpdatePOCResponse" />
	</wsdl:message>


	<wsdl:message name="RetrieveTraceRequest">
		<wsdl:part name="req" element="pres:RetrieveTrace" />
	</wsdl:message>

	<wsdl:message name="RetrieveTraceResponse">
		<wsdl:part name="res" element="pres:RetrieveTraceResponse" />
	</wsdl:message>


	<wsdl:message name="ValidateEvidenceRequest">
		<wsdl:part name="req" element="pres:ValidateEvidence" />
	</wsdl:message>

	<wsdl:message name="ValidateEvidenceResponse">
		<wsdl:part name="res" element="pres:ValidateEvidenceResponse" />
	</wsdl:message>


	<wsdl:message name="SearchRequest">
		<wsdl:part name="req" element="pres:Search" />
	</wsdl:message>

	<wsdl:message name="SearchResponse">
		<wsdl:part name="res" element="pres:SearchResponse" />
	</wsdl:message>


	<!-- ====================== -->
	<!-- Definition of portType -->
	<!-- ====================== -->

	<wsdl:portType name="Preservation">

		<wsdl:operation name="RetrieveInfo">
			<wsdl:input message="pres:RetrieveInfoRequest" />
			<wsdl:output message="pres:RetrieveInfoResponse" />
		</wsdl:operation>

		<wsdl:operation name="PreservePO">
			<wsdl:input message="pres:PreservePORequest" />
			<wsdl:output message="pres:PreservePOResponse" />
		</wsdl:operation>

		<wsdl:operation name="RetrievePO">
			<wsdl:input message="pres:RetrievePORequest" />
			<wsdl:output message="pres:RetrievePOResponse" />
		</wsdl:operation>

		<wsdl:operation name="DeletePO">
			<wsdl:input message="pres:DeletePORequest" />
			<wsdl:output message="pres:DeletePOResponse" />
		</wsdl:operation>

		<wsdl:operation name="UpdatePOC">
			<wsdl:input message="pres:UpdatePOCRequest" />
			<wsdl:output message="pres:UpdatePOCResponse" />
		</wsdl:operation>

		<wsdl:operation name="RetrieveTrace">
			<wsdl:input message="pres:RetrieveTraceRequest" />
			<wsdl:output message="pres:RetrieveTraceResponse" />
		</wsdl:operation>

		<wsdl:operation name="ValidateEvidence">
			<wsdl:input message="pres:ValidateEvidenceRequest" />
			<wsdl:output message="pres:ValidateEvidenceResponse" />
		</wsdl:operation>

		<wsdl:operation name="Search">
			<wsdl:input message="pres:SearchRequest" />
			<wsdl:output message="pres:SearchResponse" />
		</wsdl:operation>

	</wsdl:portType>


	<!-- ===================== -->
	<!-- Definition of Binding -->
	<!-- ===================== -->

	<wsdl:binding name="Preservation" type="pres:Preservation">
		<soap12:binding style="document" transport="http://schemas.xmlsoap.org/soap/http" />

		<wsdl:operation name="RetrieveInfo">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#RetrieveInfo" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

		<wsdl:operation name="PreservePO">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#PreservePO" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

		<wsdl:operation name="RetrievePO">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#RetrievePO" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

		<wsdl:operation name="DeletePO">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#DeletePO" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

		<wsdl:operation name="UpdatePOC">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#UpdatePOC" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

		<wsdl:operation name="RetrieveTrace">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#RetrieveTrace" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

		<wsdl:operation name="ValidateEvidence">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#ValidateEvidence" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

		<wsdl:operation name="Search">
			<soap12:operation soapAction="http://uri.etsi.org/19512/v1.1.1#Search" />
			<wsdl:input>
				<soap12:body use="literal" />
			</wsdl:input>
			<wsdl:output>
				<soap12:body use="literal" />
			</wsdl:output>
		</wsdl:operation>

	</wsdl:binding>


	<!-- Definition of Publish-Service -->

	<wsdl:service name="Preservation">
		<wsdl:port name="Preservation" binding="pres:Preservation">
			<soap12:address location="http://127.0.0.1:18080" />
		</wsdl:port>
	</wsdl:service>

</wsdl:definitions>
+0 −0

File added.

Preview size limit exceeded, changes collapsed.