Documentation
¶
Overview ¶
Package model provides primitives to interact with the openapi HTTP API.
Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.0 DO NOT EDIT.
Index ¶
- Constants
- type AccessId
- type AccessMethod
- type AccessMethodType
- type AccessMethodUpdateBody
- type AccessMethodUpdateRequest
- type AccessURL
- type Authorizations
- type BulkAccessMethodUpdateBody
- type BulkAccessMethodUpdateRequest
- type BulkAccessURL
- type BulkDeleteBody
- type BulkDeleteObjectsJSONRequestBody
- type BulkDeleteRequest
- type BulkObjectAccessId
- type BulkObjectBody
- type BulkObjectIdNoPassport
- type BulkUpdateAccessMethodsJSONRequestBody
- type Checksum
- type ChecksumParam
- type ContentsObject
- type DRSPage
- type DeleteBody
- type DeleteObjectJSONRequestBody
- type DeleteRequest
- type DrsObject
- type DrsObjectCandidate
- type DrsService
- type DrsServiceDrsSupportedUploadMethods
- type DrsServiceTypeArtifact
- type Error
- type Expand
- type GetBulkAccessURLJSONRequestBody
- type GetBulkObjectsJSONBody
- type GetBulkObjectsJSONRequestBody
- type GetBulkObjectsParams
- type GetObjectParams
- type N200AccessMethodUpdate
- type N200BulkAccessMethodUpdate
- type N200OkAccess
- type N200OkAccesses
- type N200OkAuthorizations
- type N200OkBulkAuthorizations
- type N200OkDrsObject
- type N200OkDrsObjects
- type N200ServiceInfo
- type N200ServiceInfoDrsSupportedUploadMethods
- type N200ServiceInfoTypeArtifact
- type N200UploadRequest
- type N201ObjectsCreated
- type N400BadRequest
- type N400BadRequestDelete
- type N401Unauthorized
- type N403Forbidden
- type N403ForbiddenDelete
- type N404NotFoundAccess
- type N404NotFoundDelete
- type N404NotFoundDrsObject
- type N413RequestTooLarge
- type N500InternalServerError
- type ObjectId
- type OptionsBulkObjectJSONRequestBody
- type Passports
- type PostAccessURLJSONBody
- type PostAccessURLJSONRequestBody
- type PostObjectBody
- type PostObjectJSONBody
- type PostObjectJSONRequestBody
- type PostUploadRequestJSONRequestBody
- type RegisterObjectsBody
- type RegisterObjectsJSONBody
- type RegisterObjectsJSONRequestBody
- type Service
- type ServiceType
- type Summary
- type Unresolved
- type UpdateObjectAccessMethodsJSONRequestBody
- type UploadMethod
- type UploadMethodType
- type UploadRequest
- type UploadRequestBody
- type UploadRequestObject
- type UploadResponse
- type UploadResponseObject
Constants ¶
const ( BasicAuthScopes = "BasicAuth.Scopes" BearerAuthScopes = "BearerAuth.Scopes" PassportAuthScopes = "PassportAuth.Scopes" )
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type AccessMethod ¶
type AccessMethod struct {
// AccessId An arbitrary string to be passed to the `/access` method to get an `AccessURL`. This string must be unique within the scope of a single object. Note that at least one of `access_url` and `access_id` must be provided.
AccessId *string `json:"access_id,omitempty"`
AccessUrl *struct {
// Headers An optional list of headers to include in the HTTP request to `url`. These headers can be used to provide auth tokens required to fetch the object bytes.
Headers *[]string `json:"headers,omitempty"`
// Url A fully resolvable URL that can be used to fetch the actual object bytes.
Url string `json:"url"`
} `json:"access_url,omitempty"`
// Authorizations A map of organization to project list. An empty array means org-wide access. A non-empty array grants access scoped to the listed projects.
Authorizations *map[string][]string `json:"authorizations,omitempty"`
// Available Availablity of file in the cloud. This label defines if this file is immediately accessible via DRS. Any delay or requirement of thawing mechanism if the file is in offline/archival storage is classified as false, meaning it is unavailable.
Available *bool `json:"available,omitempty"`
// Cloud Name of the cloud service provider that the object belongs to. If the cloud service is Amazon Web Services, Google Cloud Platform or Azure the values should be `aws`, `gcp`, or `azure` respectively.
Cloud *string `json:"cloud,omitempty"`
// Region Name of the region in the cloud service provider that the object belongs to.
Region *string `json:"region,omitempty"`
// Type Type of the access method.
Type AccessMethodType `json:"type"`
}
AccessMethod defines model for AccessMethod.
type AccessMethodType ¶
type AccessMethodType string
AccessMethodType Type of the access method.
const ( AccessMethodTypeFile AccessMethodType = "file" AccessMethodTypeFtp AccessMethodType = "ftp" AccessMethodTypeGlobus AccessMethodType = "globus" AccessMethodTypeGs AccessMethodType = "gs" AccessMethodTypeGsiftp AccessMethodType = "gsiftp" AccessMethodTypeHtsget AccessMethodType = "htsget" AccessMethodTypeHttps AccessMethodType = "https" AccessMethodTypeS3 AccessMethodType = "s3" )
Defines values for AccessMethodType.
type AccessMethodUpdateBody ¶
type AccessMethodUpdateBody = AccessMethodUpdateRequest
AccessMethodUpdateBody defines model for AccessMethodUpdateBody.
type AccessMethodUpdateRequest ¶
type AccessMethodUpdateRequest struct {
// AccessMethods New access methods for the DRS object
AccessMethods []AccessMethod `json:"access_methods"`
// Passports Optional GA4GH Passport JWTs for authorization
Passports *[]string `json:"passports,omitempty"`
}
AccessMethodUpdateRequest defines model for AccessMethodUpdateRequest.
type AccessURL ¶
type AccessURL struct {
// Headers An optional list of headers to include in the HTTP request to `url`. These headers can be used to provide auth tokens required to fetch the object bytes.
Headers *[]string `json:"headers,omitempty"`
// Url A fully resolvable URL that can be used to fetch the actual object bytes.
Url string `json:"url"`
}
AccessURL defines model for AccessURL.
type Authorizations ¶
Authorizations A map of organization to project list. Each key is an organization name. An empty array value means org-wide access for that organization. A non-empty array grants access scoped to the listed projects only.
type BulkAccessMethodUpdateBody ¶
type BulkAccessMethodUpdateBody = BulkAccessMethodUpdateRequest
BulkAccessMethodUpdateBody defines model for BulkAccessMethodUpdateBody.
type BulkAccessMethodUpdateRequest ¶
type BulkAccessMethodUpdateRequest struct {
// Passports Optional GA4GH Passport JWTs for authorization
Passports *[]string `json:"passports,omitempty"`
// Updates Array of access method updates to perform
Updates []struct {
// AccessMethods New access methods for this object
AccessMethods []AccessMethod `json:"access_methods"`
// ObjectId DRS object ID to update
ObjectId string `json:"object_id"`
} `json:"updates"`
}
BulkAccessMethodUpdateRequest defines model for BulkAccessMethodUpdateRequest.
type BulkAccessURL ¶
type BulkAccessURL struct {
DrsAccessId *string `json:"drs_access_id,omitempty"`
DrsObjectId *string `json:"drs_object_id,omitempty"`
// Headers An optional list of headers to include in the HTTP request to `url`. These headers can be used to provide auth tokens required to fetch the object bytes.
Headers *[]string `json:"headers,omitempty"`
// Url A fully resolvable URL that can be used to fetch the actual object bytes.
Url string `json:"url"`
}
BulkAccessURL defines model for BulkAccessURL.
type BulkDeleteBody ¶
type BulkDeleteBody = BulkDeleteRequest
BulkDeleteBody Request body for bulk delete operations
type BulkDeleteObjectsJSONRequestBody ¶
type BulkDeleteObjectsJSONRequestBody = BulkDeleteRequest
BulkDeleteObjectsJSONRequestBody defines body for BulkDeleteObjects for application/json ContentType.
type BulkDeleteRequest ¶
type BulkDeleteRequest struct {
// BulkObjectIds Array of DRS object IDs to delete
BulkObjectIds []string `json:"bulk_object_ids"`
// DeleteStorageData If true, delete both DRS object metadata and underlying storage data (follows server's deleteStorageDataSupported capability). If false (default), only delete DRS object metadata while preserving underlying storage data. Clients must explicitly set this to true to enable storage data deletion, ensuring intentional choice for this potentially destructive operation.
DeleteStorageData *bool `json:"delete_storage_data,omitempty"`
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
BulkDeleteRequest Request body for bulk delete operations
type BulkObjectAccessId ¶
type BulkObjectAccessId struct {
BulkObjectAccessIds *[]struct {
// BulkAccessIds DRS object access ID
BulkAccessIds *[]string `json:"bulk_access_ids,omitempty"`
// BulkObjectId DRS object ID
BulkObjectId *string `json:"bulk_object_id,omitempty"`
} `json:"bulk_object_access_ids,omitempty"`
Passports *[]string `json:"passports,omitempty"`
}
BulkObjectAccessId The object that contains object_id/access_id tuples
type BulkObjectBody ¶
type BulkObjectBody struct {
// BulkObjectIds An array of ObjectIDs to retrieve metadata for
BulkObjectIds []string `json:"bulk_object_ids"`
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
BulkObjectBody defines model for BulkObjectBody.
type BulkObjectIdNoPassport ¶
type BulkObjectIdNoPassport struct {
// BulkObjectIds An array of ObjectIDs.
BulkObjectIds *[]string `json:"bulk_object_ids,omitempty"`
}
BulkObjectIdNoPassport The object that contains the DRS object IDs array
type BulkUpdateAccessMethodsJSONRequestBody ¶
type BulkUpdateAccessMethodsJSONRequestBody = BulkAccessMethodUpdateRequest
BulkUpdateAccessMethodsJSONRequestBody defines body for BulkUpdateAccessMethods for application/json ContentType.
type Checksum ¶
type Checksum struct {
// Checksum The hex-string encoded checksum for the data
Checksum string `json:"checksum"`
// Type The digest method used to create the checksum.
// The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://www.iana.org/assignments/named-information/named-information.xhtml#hash-alg[IANA Named Information Hash Algorithm Registry]. Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920].
// GA4GH may provide more explicit guidance for use of non-IANA-registered algorithms in the future. Until then, if implementers do choose such an algorithm (e.g. because it's implemented by their storage provider), they SHOULD use an existing standard `type` value such as `md5`, `etag`, `crc32c`, `trunc512`, or `sha1`.
Type string `json:"type"`
}
Checksum defines model for Checksum.
type ContentsObject ¶
type ContentsObject struct {
// Contents If this ContentsObject describes a nested bundle and the caller specified "?expand=true" on the request, then this contents array must be present and describe the objects within the nested bundle.
Contents *[]ContentsObject `json:"contents,omitempty"`
// DrsUri A list of full DRS identifier URI paths that may be used to obtain the object. These URIs may be external to this DRS instance.
DrsUri *[]string `json:"drs_uri,omitempty"`
// Id A DRS identifier of a `DrsObject` (either a single blob or a nested bundle). If this ContentsObject is an object within a nested bundle, then the id is optional. Otherwise, the id is required.
Id *string `json:"id,omitempty"`
// Name A name declared by the bundle author that must be used when materialising this object, overriding any name directly associated with the object itself. The name must be unique within the containing bundle. This string is made up of uppercase and lowercase letters, decimal digits, hyphen, 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"`
}
ContentsObject defines model for ContentsObject.
type DRSPage ¶
type DRSPage struct {
DrsObjects []DrsObject `json:"drs_objects"`
}
DRSPage defines model for DRSPage.
type DeleteBody ¶
type DeleteBody = DeleteRequest
DeleteBody Request body for single object delete operations
type DeleteObjectJSONRequestBody ¶
type DeleteObjectJSONRequestBody = DeleteRequest
DeleteObjectJSONRequestBody defines body for DeleteObject for application/json ContentType.
type DeleteRequest ¶
type DeleteRequest struct {
// DeleteStorageData If true, delete both DRS object metadata and underlying storage data (follows server's deleteStorageDataSupported capability). If false (default), only delete DRS object metadata while preserving underlying storage data. Clients must explicitly set this to true to enable storage data deletion, ensuring intentional choice for this potentially destructive operation.
DeleteStorageData *bool `json:"delete_storage_data,omitempty"`
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
DeleteRequest Request body for single object delete operations
type DrsObject ¶
type DrsObject struct {
// AccessMethods The list of access methods that can be used to fetch the `DrsObject`.
// Required for single blobs; optional for bundles.
AccessMethods *[]AccessMethod `json:"access_methods,omitempty"`
// Aliases 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"`
// Checksums 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 []Checksum `json:"checksums"`
// Contents 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 *[]ContentsObject `json:"contents,omitempty"`
// CreatedTime Timestamp of content creation in RFC3339.
// (This is the creation time of the underlying content, not of the JSON object.)
CreatedTime time.Time `json:"created_time"`
// Description A human readable description of the `DrsObject`.
Description *string `json:"description,omitempty"`
// Id An identifier unique to this `DrsObject`
Id string `json:"id"`
// MimeType A string providing the mime-type of the `DrsObject`.
MimeType *string `json:"mime_type,omitempty"`
// Name A string that can be used to name a `DrsObject`.
// This string is made up of uppercase and lowercase letters, decimal digits, hyphen, 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"`
// SelfUri 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"`
// Size For blobs, the blob size in bytes.
// For bundles, the cumulative size, in bytes, of items in the `contents` field.
Size int64 `json:"size"`
// UpdatedTime 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 *time.Time `json:"updated_time,omitempty"`
// Version A string representing a version.
// (Some systems may use checksum, a RFC3339 timestamp, or an incrementing version number.)
Version *string `json:"version,omitempty"`
}
DrsObject defines model for DrsObject.
type DrsObjectCandidate ¶
type DrsObjectCandidate struct {
// AccessMethods The list of access methods that can be used to fetch the `DrsObject`.
// Required for single blobs; optional for bundles.
AccessMethods *[]AccessMethod `json:"access_methods,omitempty"`
// Aliases 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"`
// Checksums 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 []Checksum `json:"checksums"`
// Contents 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 *[]ContentsObject `json:"contents,omitempty"`
// Description A human readable description of the `DrsObject`.
Description *string `json:"description,omitempty"`
// MimeType A string providing the mime-type of the `DrsObject`.
MimeType *string `json:"mime_type,omitempty"`
// Name A string that can be used to name a `DrsObject`.
// This string is made up of uppercase and lowercase letters, decimal digits, hyphen, 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"`
// Size For blobs, the blob size in bytes.
// For bundles, the cumulative size, in bytes, of items in the `contents` field.
Size int64 `json:"size"`
// Version A string representing a version.
// (Some systems may use checksum, a RFC3339 timestamp, or an incrementing version number.)
Version *string `json:"version,omitempty"`
}
DrsObjectCandidate defines model for DrsObjectCandidate.
type DrsService ¶
type DrsService struct {
Drs *struct {
// AccessMethodUpdateSupported Indicates whether this DRS server supports updating access methods for existing objects. If true, clients can update access methods using `/objects/{object_id}/access-methods` and `/objects/access-methods` endpoints. If false or missing, the server does not support access method updates.
AccessMethodUpdateSupported *bool `json:"accessMethodUpdateSupported,omitempty"`
// DeleteStorageDataSupported Indicates whether this DRS server supports attempting to delete underlying storage data when clients request it. If true, the server will attempt to delete both metadata and storage files when `delete_storage_data: true` is specified in delete requests. If false or missing, the server only supports metadata deletion regardless of client request, preserving underlying storage data. Only present when deleteSupported is true. This is a capability flag indicating what the server can attempt, not a default behavior setting. Note: Storage deletion attempts may fail due to permissions, network issues, or storage service errors.
DeleteStorageDataSupported *bool `json:"deleteStorageDataSupported,omitempty"`
// DeleteSupported Indicates whether this DRS server supports delete operations via the delete endpoints. If true, clients can delete DRS objects using POST requests to `/objects/{object_id}/delete` and `/objects/delete`. If false or missing, the server does not support delete operations and will return 404 for delete endpoint requests. Like upload functionality, delete support is entirely optional and servers remain DRS compliant without it.
DeleteSupported *bool `json:"deleteSupported,omitempty"`
// MaxBulkAccessMethodUpdateLength Maximum number of objects that can be updated in a single bulk access method update request. Only present when accessMethodUpdateSupported is true. If not specified, defaults to maxBulkRequestLength.
MaxBulkAccessMethodUpdateLength *int `json:"maxBulkAccessMethodUpdateLength,omitempty"`
// MaxBulkDeleteLength Maximum number of objects that can be deleted in a single bulk delete request via `/objects/delete`. Only present when deleteSupported is true. If not specified when delete is supported, defaults to the same value as maxBulkRequestLength. Servers may enforce lower limits for delete operations compared to other bulk operations for safety reasons.
MaxBulkDeleteLength *int `json:"maxBulkDeleteLength,omitempty"`
// MaxBulkRequestLength The max length the bulk request endpoints can handle (>= 1) before generating a 413 error e.g. how long can the arrays bulk_object_ids and bulk_object_access_ids be for this server.
MaxBulkRequestLength int `json:"maxBulkRequestLength"`
// MaxRegisterRequestLength Maximum number of candidate objects that can be included in a single registration request. Only present when objectRegistrationSupported is true. If not specified, defaults to the same value as maxBulkRequestLength.
MaxRegisterRequestLength *int `json:"maxRegisterRequestLength,omitempty"`
// MaxUploadRequestLength Maximum number of files that can be included in a single upload request. Only present when uploadRequestSupported is true. If not specified, defaults to the same value as maxBulkRequestLength.
MaxUploadRequestLength *int `json:"maxUploadRequestLength,omitempty"`
// MaxUploadSize Maximum file size in bytes that can be uploaded via the upload endpoints. Only present when uploadRequestSupported is true. If not specified, there is no explicit size limit.
MaxUploadSize *int64 `json:"maxUploadSize,omitempty"`
// ObjectCount The total number of objects in this DRS service.
ObjectCount *int `json:"objectCount,omitempty"`
// ObjectRegistrationSupported Indicates whether this DRS server supports object registration operations via the `/objects/register` endpoint. If true, clients can register uploaded files or existing data as DRS objects. If false or missing, the server does not support object registration.
ObjectRegistrationSupported *bool `json:"objectRegistrationSupported,omitempty"`
// RelatedFileStorageSupported Indicates whether this DRS server supports storing files from the same upload request under a common prefix or folder structure. If true, the server will organize related files together in storage, enabling bioinformatics workflows that expect co-located files (e.g., CRAM + CRAI, VCF + TBI). If false or missing, the server may distribute files across different storage locations or prefixes. Only present when uploadRequestSupported is true. This feature is particularly valuable for genomics tools like samtools that expect index files to be co-located with data files.
RelatedFileStorageSupported *bool `json:"relatedFileStorageSupported,omitempty"`
// SupportedUploadMethods List of upload methods supported by this DRS server. Only present when uploadRequestSupported is true. Clients can use this information to determine which upload methods are available before making upload requests.
// - **s3**: Direct S3 upload with temporary AWS credentials - **gs**: Google Cloud Storage upload with access tokens - **https**: Presigned POST URL for HTTP uploads - **ftp**: File Transfer Protocol uploads - **sftp**: Secure File Transfer Protocol uploads - **gsiftp**: GridFTP secure file transfer - **globus**: Globus transfer service for high-performance data movement
SupportedUploadMethods *[]DrsServiceDrsSupportedUploadMethods `json:"supportedUploadMethods,omitempty"`
// TotalObjectSize The total size of all objects in this DRS service in bytes. As a general best practice, file bytes are counted for each unique file and not cloud mirrors or other redundant copies.
TotalObjectSize *int `json:"totalObjectSize,omitempty"`
// UploadRequestSupported Indicates whether this DRS server supports upload request operations via the `/upload-request` endpoint. If true, clients can request upload methods and credentials for uploading files. If false or missing, the server does not support upload request coordination.
UploadRequestSupported *bool `json:"uploadRequestSupported,omitempty"`
// ValidateAccessMethodUpdates Indicates whether this DRS server validates new access methods by verifying they point to the same data. If true, the server will attempt to verify checksums/content before updating access methods. If false or missing, the server trusts client-provided access methods without validation. Only present when accessMethodUpdateSupported is true.
ValidateAccessMethodUpdates *bool `json:"validateAccessMethodUpdates,omitempty"`
// ValidateUploadChecksums Indicates whether this DRS server validates uploaded file checksums against the provided metadata. If true, the server will verify that uploaded files match their declared checksums and may reject uploads with mismatches. If false or missing, the server does not perform checksum validation and relies on client-provided metadata. Only present when uploadRequestSupported or objectRegistrationSupported is true.
ValidateUploadChecksums *bool `json:"validateUploadChecksums,omitempty"`
// ValidateUploadFileSizes Indicates whether this DRS server validates uploaded file sizes against the provided metadata. If true, the server will verify that uploaded files match their declared sizes and may reject uploads with mismatches. If false or missing, the server does not perform file size validation and relies on client-provided metadata. Only present when uploadRequestSupported or objectRegistrationSupported is true.
ValidateUploadFileSizes *bool `json:"validateUploadFileSizes,omitempty"`
} `json:"drs,omitempty"`
// MaxBulkRequestLength DEPRECATED - In 2.0 this will move to under the drs section of service info and not at the root level. The max length the bulk request endpoints can handle (>= 1) before generating a 413 error e.g. how long can the arrays bulk_object_ids and bulk_object_access_ids be for this server.
MaxBulkRequestLength int `json:"maxBulkRequestLength"`
Type struct {
Artifact DrsServiceTypeArtifact `json:"artifact"`
} `json:"type"`
}
DrsService defines model for DrsService.
type DrsServiceDrsSupportedUploadMethods ¶
type DrsServiceDrsSupportedUploadMethods string
DrsServiceDrsSupportedUploadMethods defines model for DrsService.Drs.SupportedUploadMethods.
const ( DrsServiceDrsSupportedUploadMethodsFtp DrsServiceDrsSupportedUploadMethods = "ftp" DrsServiceDrsSupportedUploadMethodsGs DrsServiceDrsSupportedUploadMethods = "gs" DrsServiceDrsSupportedUploadMethodsHttps DrsServiceDrsSupportedUploadMethods = "https" DrsServiceDrsSupportedUploadMethodsS3 DrsServiceDrsSupportedUploadMethods = "s3" DrsServiceDrsSupportedUploadMethodsSftp DrsServiceDrsSupportedUploadMethods = "sftp" )
Defines values for DrsServiceDrsSupportedUploadMethods.
type DrsServiceTypeArtifact ¶
type DrsServiceTypeArtifact string
DrsServiceTypeArtifact defines model for DrsService.Type.Artifact.
const (
Drs DrsServiceTypeArtifact = "drs"
)
Defines values for DrsServiceTypeArtifact.
type Error ¶
type Error struct {
// Msg A detailed error message.
Msg *string `json:"msg,omitempty"`
// StatusCode The integer representing the HTTP status code (e.g. 200, 404).
StatusCode *int `json:"status_code,omitempty"`
}
Error An object that can optionally include information about the error.
type GetBulkAccessURLJSONRequestBody ¶
type GetBulkAccessURLJSONRequestBody = BulkObjectAccessId
GetBulkAccessURLJSONRequestBody defines body for GetBulkAccessURL for application/json ContentType.
type GetBulkObjectsJSONBody ¶
type GetBulkObjectsJSONBody struct {
// BulkObjectIds An array of ObjectIDs to retrieve metadata for
BulkObjectIds []string `json:"bulk_object_ids"`
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
GetBulkObjectsJSONBody defines parameters for GetBulkObjects.
type GetBulkObjectsJSONRequestBody ¶
type GetBulkObjectsJSONRequestBody GetBulkObjectsJSONBody
GetBulkObjectsJSONRequestBody defines body for GetBulkObjects for application/json ContentType.
type GetBulkObjectsParams ¶
type GetBulkObjectsParams struct {
// Expand If false and the object_id refers to a bundle, then the ContentsObject array contains only those objects directly contained in the bundle. That is, if the bundle contains other bundles, those other bundles are not recursively included in the result.
// If true and the object_id refers to a bundle, then the entire set of objects in the bundle is expanded. That is, if the bundle contains other bundles, then those other bundles are recursively expanded and included in the result. Recursion continues through the entire sub-tree of the bundle.
// If the object_id refers to a blob, then the query parameter is ignored.
Expand *Expand `form:"expand,omitempty" json:"expand,omitempty"`
}
GetBulkObjectsParams defines parameters for GetBulkObjects.
type GetObjectParams ¶
type GetObjectParams struct {
// Expand If false and the object_id refers to a bundle, then the ContentsObject array contains only those objects directly contained in the bundle. That is, if the bundle contains other bundles, those other bundles are not recursively included in the result.
// If true and the object_id refers to a bundle, then the entire set of objects in the bundle is expanded. That is, if the bundle contains other bundles, then those other bundles are recursively expanded and included in the result. Recursion continues through the entire sub-tree of the bundle.
// If the object_id refers to a blob, then the query parameter is ignored.
Expand *Expand `form:"expand,omitempty" json:"expand,omitempty"`
}
GetObjectParams defines parameters for GetObject.
type N200AccessMethodUpdate ¶
type N200AccessMethodUpdate = DrsObject
N200AccessMethodUpdate defines model for 200AccessMethodUpdate.
type N200BulkAccessMethodUpdate ¶
type N200BulkAccessMethodUpdate struct {
// Objects Array of updated DRS objects
Objects []DrsObject `json:"objects"`
}
N200BulkAccessMethodUpdate defines model for 200BulkAccessMethodUpdate.
type N200OkAccesses ¶
type N200OkAccesses struct {
ResolvedDrsObjectAccessUrls *[]BulkAccessURL `json:"resolved_drs_object_access_urls,omitempty"`
// Summary A summary of what was resolved.
Summary *Summary `json:"summary,omitempty"`
// UnresolvedDrsObjects Error codes for each unresolved drs objects.
UnresolvedDrsObjects *Unresolved `json:"unresolved_drs_objects,omitempty"`
}
N200OkAccesses defines model for 200OkAccesses.
type N200OkAuthorizations ¶
type N200OkAuthorizations = Authorizations
N200OkAuthorizations A map of organization to project list. Each key is an organization name. An empty array value means org-wide access for that organization. A non-empty array grants access scoped to the listed projects only.
type N200OkBulkAuthorizations ¶
type N200OkBulkAuthorizations struct {
ResolvedDrsObject *[]Authorizations `json:"resolved_drs_object,omitempty"`
// Summary A summary of what was resolved.
Summary *Summary `json:"summary,omitempty"`
// UnresolvedDrsObjects Error codes for each unresolved drs objects.
UnresolvedDrsObjects *Unresolved `json:"unresolved_drs_objects,omitempty"`
}
N200OkBulkAuthorizations defines model for 200OkBulkAuthorizations.
type N200OkDrsObject ¶
type N200OkDrsObject = DrsObject
N200OkDrsObject defines model for 200OkDrsObject.
type N200OkDrsObjects ¶
type N200OkDrsObjects struct {
ResolvedDrsObject *[]DrsObject `json:"resolved_drs_object,omitempty"`
// Summary A summary of what was resolved.
Summary *Summary `json:"summary,omitempty"`
// UnresolvedDrsObjects Error codes for each unresolved drs objects.
UnresolvedDrsObjects *Unresolved `json:"unresolved_drs_objects,omitempty"`
}
N200OkDrsObjects defines model for 200OkDrsObjects.
type N200ServiceInfo ¶
type N200ServiceInfo struct {
// ContactUrl URL of the contact for the provider of this service, e.g. a link to a contact form (RFC 3986 format), or an email (RFC 2368 format).
ContactUrl *string `json:"contactUrl,omitempty"`
// CreatedAt Timestamp describing when the service was first deployed and available (RFC 3339 format)
CreatedAt *time.Time `json:"createdAt,omitempty"`
// Description Description of the service. Should be human readable and provide information about the service.
Description *string `json:"description,omitempty"`
// DocumentationUrl URL of the documentation of this service (RFC 3986 format). This should help someone learn how to use your service, including any specifics required to access data, e.g. authentication.
DocumentationUrl *string `json:"documentationUrl,omitempty"`
Drs *struct {
// AccessMethodUpdateSupported Indicates whether this DRS server supports updating access methods for existing objects. If true, clients can update access methods using `/objects/{object_id}/access-methods` and `/objects/access-methods` endpoints. If false or missing, the server does not support access method updates.
AccessMethodUpdateSupported *bool `json:"accessMethodUpdateSupported,omitempty"`
// DeleteStorageDataSupported Indicates whether this DRS server supports attempting to delete underlying storage data when clients request it. If true, the server will attempt to delete both metadata and storage files when `delete_storage_data: true` is specified in delete requests. If false or missing, the server only supports metadata deletion regardless of client request, preserving underlying storage data. Only present when deleteSupported is true. This is a capability flag indicating what the server can attempt, not a default behavior setting. Note: Storage deletion attempts may fail due to permissions, network issues, or storage service errors.
DeleteStorageDataSupported *bool `json:"deleteStorageDataSupported,omitempty"`
// DeleteSupported Indicates whether this DRS server supports delete operations via the delete endpoints. If true, clients can delete DRS objects using POST requests to `/objects/{object_id}/delete` and `/objects/delete`. If false or missing, the server does not support delete operations and will return 404 for delete endpoint requests. Like upload functionality, delete support is entirely optional and servers remain DRS compliant without it.
DeleteSupported *bool `json:"deleteSupported,omitempty"`
// MaxBulkAccessMethodUpdateLength Maximum number of objects that can be updated in a single bulk access method update request. Only present when accessMethodUpdateSupported is true. If not specified, defaults to maxBulkRequestLength.
MaxBulkAccessMethodUpdateLength *int `json:"maxBulkAccessMethodUpdateLength,omitempty"`
// MaxBulkDeleteLength Maximum number of objects that can be deleted in a single bulk delete request via `/objects/delete`. Only present when deleteSupported is true. If not specified when delete is supported, defaults to the same value as maxBulkRequestLength. Servers may enforce lower limits for delete operations compared to other bulk operations for safety reasons.
MaxBulkDeleteLength *int `json:"maxBulkDeleteLength,omitempty"`
// MaxBulkRequestLength The max length the bulk request endpoints can handle (>= 1) before generating a 413 error e.g. how long can the arrays bulk_object_ids and bulk_object_access_ids be for this server.
MaxBulkRequestLength int `json:"maxBulkRequestLength"`
// MaxRegisterRequestLength Maximum number of candidate objects that can be included in a single registration request. Only present when objectRegistrationSupported is true. If not specified, defaults to the same value as maxBulkRequestLength.
MaxRegisterRequestLength *int `json:"maxRegisterRequestLength,omitempty"`
// MaxUploadRequestLength Maximum number of files that can be included in a single upload request. Only present when uploadRequestSupported is true. If not specified, defaults to the same value as maxBulkRequestLength.
MaxUploadRequestLength *int `json:"maxUploadRequestLength,omitempty"`
// MaxUploadSize Maximum file size in bytes that can be uploaded via the upload endpoints. Only present when uploadRequestSupported is true. If not specified, there is no explicit size limit.
MaxUploadSize *int64 `json:"maxUploadSize,omitempty"`
// ObjectCount The total number of objects in this DRS service.
ObjectCount *int `json:"objectCount,omitempty"`
// ObjectRegistrationSupported Indicates whether this DRS server supports object registration operations via the `/objects/register` endpoint. If true, clients can register uploaded files or existing data as DRS objects. If false or missing, the server does not support object registration.
ObjectRegistrationSupported *bool `json:"objectRegistrationSupported,omitempty"`
// RelatedFileStorageSupported Indicates whether this DRS server supports storing files from the same upload request under a common prefix or folder structure. If true, the server will organize related files together in storage, enabling bioinformatics workflows that expect co-located files (e.g., CRAM + CRAI, VCF + TBI). If false or missing, the server may distribute files across different storage locations or prefixes. Only present when uploadRequestSupported is true. This feature is particularly valuable for genomics tools like samtools that expect index files to be co-located with data files.
RelatedFileStorageSupported *bool `json:"relatedFileStorageSupported,omitempty"`
// SupportedUploadMethods List of upload methods supported by this DRS server. Only present when uploadRequestSupported is true. Clients can use this information to determine which upload methods are available before making upload requests.
// - **s3**: Direct S3 upload with temporary AWS credentials - **gs**: Google Cloud Storage upload with access tokens - **https**: Presigned POST URL for HTTP uploads - **ftp**: File Transfer Protocol uploads - **sftp**: Secure File Transfer Protocol uploads - **gsiftp**: GridFTP secure file transfer - **globus**: Globus transfer service for high-performance data movement
SupportedUploadMethods *[]N200ServiceInfoDrsSupportedUploadMethods `json:"supportedUploadMethods,omitempty"`
// TotalObjectSize The total size of all objects in this DRS service in bytes. As a general best practice, file bytes are counted for each unique file and not cloud mirrors or other redundant copies.
TotalObjectSize *int `json:"totalObjectSize,omitempty"`
// UploadRequestSupported Indicates whether this DRS server supports upload request operations via the `/upload-request` endpoint. If true, clients can request upload methods and credentials for uploading files. If false or missing, the server does not support upload request coordination.
UploadRequestSupported *bool `json:"uploadRequestSupported,omitempty"`
// ValidateAccessMethodUpdates Indicates whether this DRS server validates new access methods by verifying they point to the same data. If true, the server will attempt to verify checksums/content before updating access methods. If false or missing, the server trusts client-provided access methods without validation. Only present when accessMethodUpdateSupported is true.
ValidateAccessMethodUpdates *bool `json:"validateAccessMethodUpdates,omitempty"`
// ValidateUploadChecksums Indicates whether this DRS server validates uploaded file checksums against the provided metadata. If true, the server will verify that uploaded files match their declared checksums and may reject uploads with mismatches. If false or missing, the server does not perform checksum validation and relies on client-provided metadata. Only present when uploadRequestSupported or objectRegistrationSupported is true.
ValidateUploadChecksums *bool `json:"validateUploadChecksums,omitempty"`
// ValidateUploadFileSizes Indicates whether this DRS server validates uploaded file sizes against the provided metadata. If true, the server will verify that uploaded files match their declared sizes and may reject uploads with mismatches. If false or missing, the server does not perform file size validation and relies on client-provided metadata. Only present when uploadRequestSupported or objectRegistrationSupported is true.
ValidateUploadFileSizes *bool `json:"validateUploadFileSizes,omitempty"`
} `json:"drs,omitempty"`
// Environment Environment the service is running in. Use this to distinguish between production, development and testing/staging deployments. Suggested values are prod, test, dev, staging. However this is advised and not enforced.
Environment *string `json:"environment,omitempty"`
// Id Unique ID of this service. Reverse domain name notation is recommended, though not required. The identifier should attempt to be globally unique so it can be used in downstream aggregator services e.g. Service Registry.
Id string `json:"id"`
// MaxBulkRequestLength DEPRECATED - In 2.0 this will move to under the drs section of service info and not at the root level. The max length the bulk request endpoints can handle (>= 1) before generating a 413 error e.g. how long can the arrays bulk_object_ids and bulk_object_access_ids be for this server.
MaxBulkRequestLength int `json:"maxBulkRequestLength"`
// Name Name of this service. Should be human readable.
Name string `json:"name"`
// Organization Organization providing the service
Organization struct {
// Name Name of the organization responsible for the service
Name string `json:"name"`
// Url URL of the website of the organization (RFC 3986 format)
Url string `json:"url"`
} `json:"organization"`
Type struct {
Artifact N200ServiceInfoTypeArtifact `json:"artifact"`
} `json:"type"`
// UpdatedAt Timestamp describing when the service was last updated (RFC 3339 format)
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
// Version Version of the service being described. Semantic versioning is recommended, but other identifiers, such as dates or commit hashes, are also allowed. The version should be changed whenever the service is updated.
Version string `json:"version"`
}
N200ServiceInfo defines model for 200ServiceInfo.
type N200ServiceInfoDrsSupportedUploadMethods ¶
type N200ServiceInfoDrsSupportedUploadMethods = DrsServiceDrsSupportedUploadMethods
Compatibility aliases for generated service-info field types. The OpenAPI generator emits these field references with the N200 prefix even though the underlying enum types use the DrsService prefix.
type N200ServiceInfoTypeArtifact ¶
type N200ServiceInfoTypeArtifact = DrsServiceTypeArtifact
type N200UploadRequest ¶
type N200UploadRequest = UploadResponse
N200UploadRequest defines model for 200UploadRequest.
type N201ObjectsCreated ¶
type N201ObjectsCreated struct {
// Objects Array of registered DRS objects in the same order as the candidates in the request
Objects []DrsObject `json:"objects"`
}
N201ObjectsCreated defines model for 201ObjectsCreated.
type N400BadRequest ¶
type N400BadRequest = Error
N400BadRequest An object that can optionally include information about the error.
type N400BadRequestDelete ¶
type N400BadRequestDelete = Error
N400BadRequestDelete An object that can optionally include information about the error.
type N401Unauthorized ¶
type N401Unauthorized = Error
N401Unauthorized An object that can optionally include information about the error.
type N403Forbidden ¶
type N403Forbidden = Error
N403Forbidden An object that can optionally include information about the error.
type N403ForbiddenDelete ¶
type N403ForbiddenDelete = Error
N403ForbiddenDelete An object that can optionally include information about the error.
type N404NotFoundAccess ¶
type N404NotFoundAccess = Error
N404NotFoundAccess An object that can optionally include information about the error.
type N404NotFoundDelete ¶
type N404NotFoundDelete = Error
N404NotFoundDelete An object that can optionally include information about the error.
type N404NotFoundDrsObject ¶
type N404NotFoundDrsObject = Error
N404NotFoundDrsObject An object that can optionally include information about the error.
type N413RequestTooLarge ¶
type N413RequestTooLarge = Error
N413RequestTooLarge An object that can optionally include information about the error.
type N500InternalServerError ¶
type N500InternalServerError = Error
N500InternalServerError An object that can optionally include information about the error.
type OptionsBulkObjectJSONRequestBody ¶
type OptionsBulkObjectJSONRequestBody = BulkObjectIdNoPassport
OptionsBulkObjectJSONRequestBody defines body for OptionsBulkObject for application/json ContentType.
type Passports ¶
type Passports struct {
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
Passports defines model for Passports.
type PostAccessURLJSONBody ¶
type PostAccessURLJSONBody struct {
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
PostAccessURLJSONBody defines parameters for PostAccessURL.
type PostAccessURLJSONRequestBody ¶
type PostAccessURLJSONRequestBody PostAccessURLJSONBody
PostAccessURLJSONRequestBody defines body for PostAccessURL for application/json ContentType.
type PostObjectBody ¶
type PostObjectBody struct {
// Expand If false and the object_id refers to a bundle, then the ContentsObject array contains only those objects directly contained in the bundle. That is, if the bundle contains other bundles, those other bundles are not recursively included in the result.
// If true and the object_id refers to a bundle, then the entire set of objects in the bundle is expanded. That is, if the bundle contains other bundles, then those other bundles are recursively expanded and included in the result. Recursion continues through the entire sub-tree of the bundle.
// If the object_id refers to a blob, then the query parameter is ignored.
Expand *bool `json:"expand,omitempty"`
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
PostObjectBody defines model for PostObjectBody.
type PostObjectJSONBody ¶
type PostObjectJSONBody struct {
// Expand If false and the object_id refers to a bundle, then the ContentsObject array contains only those objects directly contained in the bundle. That is, if the bundle contains other bundles, those other bundles are not recursively included in the result.
// If true and the object_id refers to a bundle, then the entire set of objects in the bundle is expanded. That is, if the bundle contains other bundles, then those other bundles are recursively expanded and included in the result. Recursion continues through the entire sub-tree of the bundle.
// If the object_id refers to a blob, then the query parameter is ignored.
Expand *bool `json:"expand,omitempty"`
// Passports the encoded JWT GA4GH Passport that contains embedded Visas. The overall JWT is signed as are the individual Passport Visas.
Passports *[]string `json:"passports,omitempty"`
}
PostObjectJSONBody defines parameters for PostObject.
type PostObjectJSONRequestBody ¶
type PostObjectJSONRequestBody PostObjectJSONBody
PostObjectJSONRequestBody defines body for PostObject for application/json ContentType.
type PostUploadRequestJSONRequestBody ¶
type PostUploadRequestJSONRequestBody = UploadRequest
PostUploadRequestJSONRequestBody defines body for PostUploadRequest for application/json ContentType.
type RegisterObjectsBody ¶
type RegisterObjectsBody struct {
// Candidates Array of DRS object candidates to register (server will mint IDs and timestamps)
Candidates []DrsObjectCandidate `json:"candidates"`
// Passports Optional array of GA4GH Passport JWTs for authorization
Passports *[]string `json:"passports,omitempty"`
}
RegisterObjectsBody defines model for RegisterObjectsBody.
type RegisterObjectsJSONBody ¶
type RegisterObjectsJSONBody struct {
// Candidates Array of DRS object candidates to register (server will mint IDs and timestamps)
Candidates []DrsObjectCandidate `json:"candidates"`
// Passports Optional array of GA4GH Passport JWTs for authorization
Passports *[]string `json:"passports,omitempty"`
}
RegisterObjectsJSONBody defines parameters for RegisterObjects.
type RegisterObjectsJSONRequestBody ¶
type RegisterObjectsJSONRequestBody RegisterObjectsJSONBody
RegisterObjectsJSONRequestBody defines body for RegisterObjects for application/json ContentType.
type Service ¶
type Service struct {
// ContactUrl URL of the contact for the provider of this service, e.g. a link to a contact form (RFC 3986 format), or an email (RFC 2368 format).
ContactUrl *string `json:"contactUrl,omitempty"`
// CreatedAt Timestamp describing when the service was first deployed and available (RFC 3339 format)
CreatedAt *time.Time `json:"createdAt,omitempty"`
// Description Description of the service. Should be human readable and provide information about the service.
Description *string `json:"description,omitempty"`
// DocumentationUrl URL of the documentation of this service (RFC 3986 format). This should help someone learn how to use your service, including any specifics required to access data, e.g. authentication.
DocumentationUrl *string `json:"documentationUrl,omitempty"`
// Environment Environment the service is running in. Use this to distinguish between production, development and testing/staging deployments. Suggested values are prod, test, dev, staging. However this is advised and not enforced.
Environment *string `json:"environment,omitempty"`
// Id Unique ID of this service. Reverse domain name notation is recommended, though not required. The identifier should attempt to be globally unique so it can be used in downstream aggregator services e.g. Service Registry.
Id string `json:"id"`
// Name Name of this service. Should be human readable.
Name string `json:"name"`
// Organization Organization providing the service
Organization struct {
// Name Name of the organization responsible for the service
Name string `json:"name"`
// Url URL of the website of the organization (RFC 3986 format)
Url string `json:"url"`
} `json:"organization"`
// Type Type of a GA4GH service
Type ServiceType `json:"type"`
// UpdatedAt Timestamp describing when the service was last updated (RFC 3339 format)
UpdatedAt *time.Time `json:"updatedAt,omitempty"`
// Version Version of the service being described. Semantic versioning is recommended, but other identifiers, such as dates or commit hashes, are also allowed. The version should be changed whenever the service is updated.
Version string `json:"version"`
}
Service GA4GH service
type ServiceType ¶
type ServiceType struct {
// Artifact Name of the API or GA4GH specification implemented. Official GA4GH types should be assigned as part of standards approval process. Custom artifacts are supported.
Artifact string `json:"artifact"`
// Group Namespace in reverse domain name format. Use `org.ga4gh` for implementations compliant with official GA4GH specifications. For services with custom APIs not standardized by GA4GH, or implementations diverging from official GA4GH specifications, use a different namespace (e.g. your organization's reverse domain name).
Group string `json:"group"`
// Version Version of the API or specification. GA4GH specifications use semantic versioning.
Version string `json:"version"`
}
ServiceType Type of a GA4GH service
type Summary ¶
type Summary struct {
// Requested Number of items requested.
Requested *int `json:"requested,omitempty"`
// Resolved Number of objects resolved.
Resolved *int `json:"resolved,omitempty"`
// Unresolved Number of objects not resolved.
Unresolved *int `json:"unresolved,omitempty"`
}
Summary A summary of what was resolved.
type Unresolved ¶
type Unresolved = []struct {
ErrorCode *int `json:"error_code,omitempty"`
ObjectIds *[]string `json:"object_ids,omitempty"`
}
Unresolved Error codes for each unresolved drs objects.
type UpdateObjectAccessMethodsJSONRequestBody ¶
type UpdateObjectAccessMethodsJSONRequestBody = AccessMethodUpdateRequest
UpdateObjectAccessMethodsJSONRequestBody defines body for UpdateObjectAccessMethods for application/json ContentType.
type UploadMethod ¶
type UploadMethod struct {
AccessUrl struct {
// Headers An optional list of headers to include in the HTTP request to `url`. These headers can be used to provide auth tokens required to fetch the object bytes.
Headers *[]string `json:"headers,omitempty"`
// Url A fully resolvable URL that can be used to fetch the actual object bytes.
Url string `json:"url"`
} `json:"access_url"`
// Region Cloud region for the upload location. Optional for non-cloud storage types.
Region *string `json:"region,omitempty"`
// Type Type of upload method. Implementations MAY support any subset of these types.
// The 'https' type can be used to return a presigned POST URL and is expected to be the most common implementation for typical file uploads. This method provides a simple HTTP POST interface that works with standard web clients.
// The 's3' type is primarily intended to support uploads of large files that want to take advantage of multipart uploads and automatic retries implemented in AWS libraries. This method provides direct access to S3-specific upload capabilities.
// Other common implementations include 'gs' for Google Cloud Storage and 'sftp' for secure FTP uploads.
Type UploadMethodType `json:"type"`
// UploadDetails A dictionary of upload-specific configuration details that vary by upload method type. The contents and structure depend on the specific upload method being used.
UploadDetails *map[string]interface{} `json:"upload_details,omitempty"`
}
UploadMethod defines model for UploadMethod.
type UploadMethodType ¶
type UploadMethodType string
UploadMethodType Type of upload method. Implementations MAY support any subset of these types. The 'https' type can be used to return a presigned POST URL and is expected to be the most common implementation for typical file uploads. This method provides a simple HTTP POST interface that works with standard web clients. The 's3' type is primarily intended to support uploads of large files that want to take advantage of multipart uploads and automatic retries implemented in AWS libraries. This method provides direct access to S3-specific upload capabilities. Other common implementations include 'gs' for Google Cloud Storage and 'sftp' for secure FTP uploads.
const ( Ftp UploadMethodType = "ftp" Globus UploadMethodType = "globus" Gs UploadMethodType = "gs" Gsiftp UploadMethodType = "gsiftp" Https UploadMethodType = "https" S3 UploadMethodType = "s3" Sftp UploadMethodType = "sftp" )
Defines values for UploadMethodType.
type UploadRequest ¶
type UploadRequest struct {
// Passports Optional array of GA4GH Passport JWTs for authorization
Passports *[]string `json:"passports,omitempty"`
// Requests Array of upload requests for files
Requests []UploadRequestObject `json:"requests"`
}
UploadRequest defines model for UploadRequest.
type UploadRequestBody ¶
type UploadRequestBody = UploadRequest
UploadRequestBody defines model for UploadRequestBody.
type UploadRequestObject ¶
type UploadRequestObject struct {
// Aliases Optional array of alternative names for the file
Aliases *[]string `json:"aliases,omitempty"`
// Checksums Array of checksums for file integrity verification
Checksums []Checksum `json:"checksums"`
// Description Optional description of the file
Description *string `json:"description,omitempty"`
// MimeType MIME type of the file
MimeType string `json:"mime_type"`
// Name The name of the file to upload
Name string `json:"name"`
// Size Size of the file in bytes
Size int64 `json:"size"`
}
UploadRequestObject defines model for UploadRequestObject.
type UploadResponse ¶
type UploadResponse struct {
// Responses List of upload responses for the requested files
Responses []UploadResponseObject `json:"responses"`
}
UploadResponse defines model for UploadResponse.
type UploadResponseObject ¶
type UploadResponseObject struct {
// Aliases Optional array of alternative names
Aliases *[]string `json:"aliases,omitempty"`
// Checksums Array of checksums for file integrity verification
Checksums []Checksum `json:"checksums"`
// Description Optional description of the file
Description *string `json:"description,omitempty"`
// MimeType MIME type of the file
MimeType string `json:"mime_type"`
// Name The name of the file
Name string `json:"name"`
// Size Size of the file in bytes
Size int64 `json:"size"`
// UploadMethods Available methods for uploading this file
UploadMethods *[]UploadMethod `json:"upload_methods,omitempty"`
}
UploadResponseObject defines model for UploadResponseObject.