model

package
v0.2.5 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 27, 2026 License: MIT Imports: 1 Imported by: 0

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

View Source
const (
	BasicAuthScopes    = "BasicAuth.Scopes"
	BearerAuthScopes   = "BearerAuth.Scopes"
	PassportAuthScopes = "PassportAuth.Scopes"
)

Variables

This section is empty.

Functions

This section is empty.

Types

type AccessId

type AccessId = string

AccessId defines model for AccessId.

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

type Authorizations map[string][]string

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 ChecksumParam

type ChecksumParam = string

ChecksumParam 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 Expand

type Expand = bool

Expand defines model for Expand.

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 N200OkAccess

type N200OkAccess = AccessURL

N200OkAccess defines model for 200OkAccess.

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 ObjectId

type ObjectId = string

ObjectId defines model for ObjectId.

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.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL