-
Notifications
You must be signed in to change notification settings - Fork 0
/
model_drs_object.go
39 lines (38 loc) · 4.08 KB
/
model_drs_object.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*
* Data Repository Service
*
* GET request: - Fetch a DrsObject from the database by sending a unique ID through the request - Fetch an access url to the data which the object refers to - Fetch DrsObjects by doing a search on the aliases POST request: - Create a non-existing DrsObject in the database by giving an identifier DELETE request: - Delete a DrsObject from the database by unique identifier PUT request: - Update an existing DrsObject by unique identifier and the changes in the body
*
* API version: 1.2.0
* Contact: [email protected]
* Generated by: Swagger Codegen (https://github.com/swagger-api/swagger-codegen.git)
*/
package drs_api
type DrsObject struct {
// An identifier unique to this ```DrsObject```
Id string `json:"id"`
// A string that can be used to name a ```DrsObject```. This string is made up of uppercase and lowercase letters, decimal digits, hypen, period, and underscore [A-Za-z0-9.-_]. See http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_282[portable filenames].
Name string `json:"name,omitempty"`
// A drs:// hostname-based URI, as defined in the DRS documentation, that tells clients how to access this object. The intent of this field is to make DRS objects self-contained, and therefore easier for clients to store and pass around. For example, if you arrive at this DRS JSON by resolving a compact identifier-based DRS URI, the ```self_uri``` presents you with a hostname and properly encoded DRS ID for use in subsequent ```access``` endpoint calls.
SelfUri string `json:"self_uri"`
// For blobs, the blob size in bytes. For bundles, the cumulative size, in bytes, of items in the contents field.
Size int32 `json:"size"`
// Timestamp of content creation in RFC3339. (This is the creation time of the underlying content, not of the JSON object.)
CreatedTime string `json:"created_time"`
// Timestamp of content update in RFC3339, identical to ```created_time``` in systems that do not support updates. (This is the update time of the underlying content, not of the JSON object.)
UpdatedTime string `json:"updated_time,omitempty"`
// A string representing a version. (Some systems may use checksum, a RFC3339 timestamp, or an incrementing version number.)
Version string `json:"version,omitempty"`
// A string providing the mime-type of the ```DrsObject```.
MimeType string `json:"mime_type,omitempty"`
// The checksum of the ```DrsObject```. At least one checksum must be provided. For blobs, the checksum is computed over the bytes in the blob. For bundles, the checksum is computed over a sorted concatenation of the checksums of its top-level contained objects (not recursive, names not included). The list of checksums is sorted alphabetically (hex-code) before concatenation and a further checksum is performed on the concatenated checksum value. For example, if a bundle contains blobs with the following checksums: md5(blob1) = 72794b6d md5(blob2) = 5e089d29 Then the checksum of the bundle is: md5( concat( sort( md5(blob1), md5(blob2) ) ) ) = md5( concat( sort( 72794b6d, 5e089d29 ) ) ) = md5( concat( 5e089d29, 72794b6d ) ) = md5( 5e089d2972794b6d ) = f7a29a04
Checksums *AllOfDrsObjectChecksums `json:"checksums"`
// The list of access methods that can be used to fetch the ```DrsObject```. Required for single blobs; optional for bundles.
AccessMethods *AllOfDrsObjectAccessMethods `json:"access_methods,omitempty"`
// If not set, this ```DrsObject``` is a single blob. If set, this ```DrsObject``` is a bundle containing the listed ```ContentsObject``` s (some of which may be further nested).
Contents *AllOfDrsObjectContents `json:"contents,omitempty"`
// A human readable description of the ```DrsObject```.
Description string `json:"description,omitempty"`
// A list of strings that can be used to find other metadata about this ```DrsObject``` from external metadata sources. These aliases can be used to represent secondary accession numbers or external GUIDs.
Aliases []string `json:"aliases,omitempty"`
}