drs

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: 7 Imported by: 0

Documentation

Overview

Package drs 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

func RegisterHandlers

func RegisterHandlers(router fiber.Router, si ServerInterface)

RegisterHandlers creates http.Handler with routing matching OpenAPI spec.

func RegisterHandlersWithOptions

func RegisterHandlersWithOptions(router fiber.Router, si ServerInterface, options FiberServerOptions)

RegisterHandlersWithOptions creates http.Handler with additional options

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 AuthorizationsNotSupportedResponse

type AuthorizationsNotSupportedResponse struct {
}

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 BulkDeleteObjects204Response

type BulkDeleteObjects204Response = N204DeleteSuccessResponse

func (BulkDeleteObjects204Response) VisitBulkDeleteObjectsResponse

func (response BulkDeleteObjects204Response) VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error

type BulkDeleteObjects400JSONResponse

type BulkDeleteObjects400JSONResponse struct {
	N400BadRequestDeleteJSONResponse
}

func (BulkDeleteObjects400JSONResponse) VisitBulkDeleteObjectsResponse

func (response BulkDeleteObjects400JSONResponse) VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error

type BulkDeleteObjects401JSONResponse

type BulkDeleteObjects401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (BulkDeleteObjects401JSONResponse) VisitBulkDeleteObjectsResponse

func (response BulkDeleteObjects401JSONResponse) VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error

type BulkDeleteObjects403JSONResponse

type BulkDeleteObjects403JSONResponse struct {
	N403ForbiddenDeleteJSONResponse
}

func (BulkDeleteObjects403JSONResponse) VisitBulkDeleteObjectsResponse

func (response BulkDeleteObjects403JSONResponse) VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error

type BulkDeleteObjects404JSONResponse

type BulkDeleteObjects404JSONResponse struct{ N404NotFoundDeleteJSONResponse }

func (BulkDeleteObjects404JSONResponse) VisitBulkDeleteObjectsResponse

func (response BulkDeleteObjects404JSONResponse) VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error

type BulkDeleteObjects413JSONResponse

type BulkDeleteObjects413JSONResponse struct {
	N413RequestTooLargeJSONResponse
}

func (BulkDeleteObjects413JSONResponse) VisitBulkDeleteObjectsResponse

func (response BulkDeleteObjects413JSONResponse) VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error

type BulkDeleteObjects500JSONResponse

type BulkDeleteObjects500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (BulkDeleteObjects500JSONResponse) VisitBulkDeleteObjectsResponse

func (response BulkDeleteObjects500JSONResponse) VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error

type BulkDeleteObjectsJSONRequestBody

type BulkDeleteObjectsJSONRequestBody = BulkDeleteRequest

BulkDeleteObjectsJSONRequestBody defines body for BulkDeleteObjects for application/json ContentType.

type BulkDeleteObjectsRequestObject

type BulkDeleteObjectsRequestObject struct {
	Body *BulkDeleteObjectsJSONRequestBody
}

type BulkDeleteObjectsResponseObject

type BulkDeleteObjectsResponseObject interface {
	VisitBulkDeleteObjectsResponse(ctx fiber.Ctx) error
}

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 BulkUpdateAccessMethods200JSONResponse

type BulkUpdateAccessMethods200JSONResponse struct {
	N200BulkAccessMethodUpdateJSONResponse
}

func (BulkUpdateAccessMethods200JSONResponse) VisitBulkUpdateAccessMethodsResponse

func (response BulkUpdateAccessMethods200JSONResponse) VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error

type BulkUpdateAccessMethods400JSONResponse

type BulkUpdateAccessMethods400JSONResponse struct{ N400BadRequestJSONResponse }

func (BulkUpdateAccessMethods400JSONResponse) VisitBulkUpdateAccessMethodsResponse

func (response BulkUpdateAccessMethods400JSONResponse) VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error

type BulkUpdateAccessMethods401JSONResponse

type BulkUpdateAccessMethods401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (BulkUpdateAccessMethods401JSONResponse) VisitBulkUpdateAccessMethodsResponse

func (response BulkUpdateAccessMethods401JSONResponse) VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error

type BulkUpdateAccessMethods403JSONResponse

type BulkUpdateAccessMethods403JSONResponse struct{ N403ForbiddenJSONResponse }

func (BulkUpdateAccessMethods403JSONResponse) VisitBulkUpdateAccessMethodsResponse

func (response BulkUpdateAccessMethods403JSONResponse) VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error

type BulkUpdateAccessMethods404JSONResponse

type BulkUpdateAccessMethods404JSONResponse struct {
	N404NotFoundDrsObjectJSONResponse
}

func (BulkUpdateAccessMethods404JSONResponse) VisitBulkUpdateAccessMethodsResponse

func (response BulkUpdateAccessMethods404JSONResponse) VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error

type BulkUpdateAccessMethods413JSONResponse

type BulkUpdateAccessMethods413JSONResponse struct {
	N413RequestTooLargeJSONResponse
}

func (BulkUpdateAccessMethods413JSONResponse) VisitBulkUpdateAccessMethodsResponse

func (response BulkUpdateAccessMethods413JSONResponse) VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error

type BulkUpdateAccessMethods500JSONResponse

type BulkUpdateAccessMethods500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (BulkUpdateAccessMethods500JSONResponse) VisitBulkUpdateAccessMethodsResponse

func (response BulkUpdateAccessMethods500JSONResponse) VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error

type BulkUpdateAccessMethodsJSONRequestBody

type BulkUpdateAccessMethodsJSONRequestBody = BulkAccessMethodUpdateRequest

BulkUpdateAccessMethodsJSONRequestBody defines body for BulkUpdateAccessMethods for application/json ContentType.

type BulkUpdateAccessMethodsRequestObject

type BulkUpdateAccessMethodsRequestObject struct {
	Body *BulkUpdateAccessMethodsJSONRequestBody
}

type BulkUpdateAccessMethodsResponseObject

type BulkUpdateAccessMethodsResponseObject interface {
	VisitBulkUpdateAccessMethodsResponse(ctx fiber.Ctx) error
}

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 DeleteBody

type DeleteBody = DeleteRequest

DeleteBody Request body for single object delete operations

type DeleteObject204Response

type DeleteObject204Response = N204DeleteSuccessResponse

func (DeleteObject204Response) VisitDeleteObjectResponse

func (response DeleteObject204Response) VisitDeleteObjectResponse(ctx fiber.Ctx) error

type DeleteObject400JSONResponse

type DeleteObject400JSONResponse struct {
	N400BadRequestDeleteJSONResponse
}

func (DeleteObject400JSONResponse) VisitDeleteObjectResponse

func (response DeleteObject400JSONResponse) VisitDeleteObjectResponse(ctx fiber.Ctx) error

type DeleteObject401JSONResponse

type DeleteObject401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (DeleteObject401JSONResponse) VisitDeleteObjectResponse

func (response DeleteObject401JSONResponse) VisitDeleteObjectResponse(ctx fiber.Ctx) error

type DeleteObject403JSONResponse

type DeleteObject403JSONResponse struct {
	N403ForbiddenDeleteJSONResponse
}

func (DeleteObject403JSONResponse) VisitDeleteObjectResponse

func (response DeleteObject403JSONResponse) VisitDeleteObjectResponse(ctx fiber.Ctx) error

type DeleteObject404JSONResponse

type DeleteObject404JSONResponse struct{ N404NotFoundDeleteJSONResponse }

func (DeleteObject404JSONResponse) VisitDeleteObjectResponse

func (response DeleteObject404JSONResponse) VisitDeleteObjectResponse(ctx fiber.Ctx) error

type DeleteObject500JSONResponse

type DeleteObject500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (DeleteObject500JSONResponse) VisitDeleteObjectResponse

func (response DeleteObject500JSONResponse) VisitDeleteObjectResponse(ctx fiber.Ctx) error

type DeleteObjectJSONRequestBody

type DeleteObjectJSONRequestBody = DeleteRequest

DeleteObjectJSONRequestBody defines body for DeleteObject for application/json ContentType.

type DeleteObjectRequestObject

type DeleteObjectRequestObject struct {
	ObjectId ObjectId `json:"object_id"`
	Body     *DeleteObjectJSONRequestBody
}

type DeleteObjectResponseObject

type DeleteObjectResponseObject interface {
	VisitDeleteObjectResponse(ctx fiber.Ctx) error
}

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 FiberServerOptions

type FiberServerOptions struct {
	BaseURL     string
	Middlewares []MiddlewareFunc
}

FiberServerOptions provides options for the Fiber server.

type GetAccessURL200JSONResponse

type GetAccessURL200JSONResponse struct{ N200OkAccessJSONResponse }

func (GetAccessURL200JSONResponse) VisitGetAccessURLResponse

func (response GetAccessURL200JSONResponse) VisitGetAccessURLResponse(ctx fiber.Ctx) error

type GetAccessURL202Response

type GetAccessURL202Response = N202AcceptedResponse

func (GetAccessURL202Response) VisitGetAccessURLResponse

func (response GetAccessURL202Response) VisitGetAccessURLResponse(ctx fiber.Ctx) error

type GetAccessURL400JSONResponse

type GetAccessURL400JSONResponse struct{ N400BadRequestJSONResponse }

func (GetAccessURL400JSONResponse) VisitGetAccessURLResponse

func (response GetAccessURL400JSONResponse) VisitGetAccessURLResponse(ctx fiber.Ctx) error

type GetAccessURL401JSONResponse

type GetAccessURL401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (GetAccessURL401JSONResponse) VisitGetAccessURLResponse

func (response GetAccessURL401JSONResponse) VisitGetAccessURLResponse(ctx fiber.Ctx) error

type GetAccessURL403JSONResponse

type GetAccessURL403JSONResponse struct{ N403ForbiddenJSONResponse }

func (GetAccessURL403JSONResponse) VisitGetAccessURLResponse

func (response GetAccessURL403JSONResponse) VisitGetAccessURLResponse(ctx fiber.Ctx) error

type GetAccessURL404JSONResponse

type GetAccessURL404JSONResponse struct{ N404NotFoundAccessJSONResponse }

func (GetAccessURL404JSONResponse) VisitGetAccessURLResponse

func (response GetAccessURL404JSONResponse) VisitGetAccessURLResponse(ctx fiber.Ctx) error

type GetAccessURL500JSONResponse

type GetAccessURL500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (GetAccessURL500JSONResponse) VisitGetAccessURLResponse

func (response GetAccessURL500JSONResponse) VisitGetAccessURLResponse(ctx fiber.Ctx) error

type GetAccessURLRequestObject

type GetAccessURLRequestObject struct {
	ObjectId ObjectId `json:"object_id"`
	AccessId AccessId `json:"access_id"`
}

type GetAccessURLResponseObject

type GetAccessURLResponseObject interface {
	VisitGetAccessURLResponse(ctx fiber.Ctx) error
}

type GetBulkAccessURL200JSONResponse

type GetBulkAccessURL200JSONResponse struct{ N200OkAccessesJSONResponse }

func (GetBulkAccessURL200JSONResponse) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL200JSONResponse) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURL202Response

type GetBulkAccessURL202Response = N202AcceptedResponse

func (GetBulkAccessURL202Response) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL202Response) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURL400JSONResponse

type GetBulkAccessURL400JSONResponse struct{ N400BadRequestJSONResponse }

func (GetBulkAccessURL400JSONResponse) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL400JSONResponse) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURL401JSONResponse

type GetBulkAccessURL401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (GetBulkAccessURL401JSONResponse) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL401JSONResponse) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURL403JSONResponse

type GetBulkAccessURL403JSONResponse struct{ N403ForbiddenJSONResponse }

func (GetBulkAccessURL403JSONResponse) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL403JSONResponse) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURL404JSONResponse

type GetBulkAccessURL404JSONResponse struct{ N404NotFoundAccessJSONResponse }

func (GetBulkAccessURL404JSONResponse) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL404JSONResponse) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURL413JSONResponse

type GetBulkAccessURL413JSONResponse struct {
	N413RequestTooLargeJSONResponse
}

func (GetBulkAccessURL413JSONResponse) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL413JSONResponse) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURL500JSONResponse

type GetBulkAccessURL500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (GetBulkAccessURL500JSONResponse) VisitGetBulkAccessURLResponse

func (response GetBulkAccessURL500JSONResponse) VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error

type GetBulkAccessURLJSONRequestBody

type GetBulkAccessURLJSONRequestBody = BulkObjectAccessId

GetBulkAccessURLJSONRequestBody defines body for GetBulkAccessURL for application/json ContentType.

type GetBulkAccessURLRequestObject

type GetBulkAccessURLRequestObject struct {
	Body *GetBulkAccessURLJSONRequestBody
}

type GetBulkAccessURLResponseObject

type GetBulkAccessURLResponseObject interface {
	VisitGetBulkAccessURLResponse(ctx fiber.Ctx) error
}

type GetBulkObjects200JSONResponse

type GetBulkObjects200JSONResponse struct{ N200OkDrsObjectsJSONResponse }

func (GetBulkObjects200JSONResponse) VisitGetBulkObjectsResponse

func (response GetBulkObjects200JSONResponse) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

type GetBulkObjects202Response

type GetBulkObjects202Response = N202AcceptedResponse

func (GetBulkObjects202Response) VisitGetBulkObjectsResponse

func (response GetBulkObjects202Response) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

type GetBulkObjects400JSONResponse

type GetBulkObjects400JSONResponse struct{ N400BadRequestJSONResponse }

func (GetBulkObjects400JSONResponse) VisitGetBulkObjectsResponse

func (response GetBulkObjects400JSONResponse) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

type GetBulkObjects401JSONResponse

type GetBulkObjects401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (GetBulkObjects401JSONResponse) VisitGetBulkObjectsResponse

func (response GetBulkObjects401JSONResponse) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

type GetBulkObjects403JSONResponse

type GetBulkObjects403JSONResponse struct{ N403ForbiddenJSONResponse }

func (GetBulkObjects403JSONResponse) VisitGetBulkObjectsResponse

func (response GetBulkObjects403JSONResponse) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

type GetBulkObjects404JSONResponse

type GetBulkObjects404JSONResponse struct {
	N404NotFoundDrsObjectJSONResponse
}

func (GetBulkObjects404JSONResponse) VisitGetBulkObjectsResponse

func (response GetBulkObjects404JSONResponse) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

type GetBulkObjects413JSONResponse

type GetBulkObjects413JSONResponse struct {
	N413RequestTooLargeJSONResponse
}

func (GetBulkObjects413JSONResponse) VisitGetBulkObjectsResponse

func (response GetBulkObjects413JSONResponse) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

type GetBulkObjects500JSONResponse

type GetBulkObjects500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (GetBulkObjects500JSONResponse) VisitGetBulkObjectsResponse

func (response GetBulkObjects500JSONResponse) VisitGetBulkObjectsResponse(ctx fiber.Ctx) error

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 GetBulkObjectsRequestObject

type GetBulkObjectsRequestObject struct {
	Params GetBulkObjectsParams
	Body   *GetBulkObjectsJSONRequestBody
}

type GetBulkObjectsResponseObject

type GetBulkObjectsResponseObject interface {
	VisitGetBulkObjectsResponse(ctx fiber.Ctx) error
}

type GetObject200JSONResponse

type GetObject200JSONResponse struct{ N200OkDrsObjectJSONResponse }

func (GetObject200JSONResponse) VisitGetObjectResponse

func (response GetObject200JSONResponse) VisitGetObjectResponse(ctx fiber.Ctx) error

type GetObject202Response

type GetObject202Response = N202AcceptedResponse

func (GetObject202Response) VisitGetObjectResponse

func (response GetObject202Response) VisitGetObjectResponse(ctx fiber.Ctx) error

type GetObject400JSONResponse

type GetObject400JSONResponse struct{ N400BadRequestJSONResponse }

func (GetObject400JSONResponse) VisitGetObjectResponse

func (response GetObject400JSONResponse) VisitGetObjectResponse(ctx fiber.Ctx) error

type GetObject401JSONResponse

type GetObject401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (GetObject401JSONResponse) VisitGetObjectResponse

func (response GetObject401JSONResponse) VisitGetObjectResponse(ctx fiber.Ctx) error

type GetObject403JSONResponse

type GetObject403JSONResponse struct{ N403ForbiddenJSONResponse }

func (GetObject403JSONResponse) VisitGetObjectResponse

func (response GetObject403JSONResponse) VisitGetObjectResponse(ctx fiber.Ctx) error

type GetObject404JSONResponse

type GetObject404JSONResponse struct {
	N404NotFoundDrsObjectJSONResponse
}

func (GetObject404JSONResponse) VisitGetObjectResponse

func (response GetObject404JSONResponse) VisitGetObjectResponse(ctx fiber.Ctx) error

type GetObject500JSONResponse

type GetObject500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (GetObject500JSONResponse) VisitGetObjectResponse

func (response GetObject500JSONResponse) VisitGetObjectResponse(ctx fiber.Ctx) error

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 GetObjectRequestObject

type GetObjectRequestObject struct {
	ObjectId ObjectId `json:"object_id"`
	Params   GetObjectParams
}

type GetObjectResponseObject

type GetObjectResponseObject interface {
	VisitGetObjectResponse(ctx fiber.Ctx) error
}

type GetObjectsByChecksum200JSONResponse

type GetObjectsByChecksum200JSONResponse struct{ N200OkDrsObjectsJSONResponse }

func (GetObjectsByChecksum200JSONResponse) VisitGetObjectsByChecksumResponse

func (response GetObjectsByChecksum200JSONResponse) VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error

type GetObjectsByChecksum202Response

type GetObjectsByChecksum202Response = N202AcceptedResponse

func (GetObjectsByChecksum202Response) VisitGetObjectsByChecksumResponse

func (response GetObjectsByChecksum202Response) VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error

type GetObjectsByChecksum400JSONResponse

type GetObjectsByChecksum400JSONResponse struct{ N400BadRequestJSONResponse }

func (GetObjectsByChecksum400JSONResponse) VisitGetObjectsByChecksumResponse

func (response GetObjectsByChecksum400JSONResponse) VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error

type GetObjectsByChecksum401JSONResponse

type GetObjectsByChecksum401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (GetObjectsByChecksum401JSONResponse) VisitGetObjectsByChecksumResponse

func (response GetObjectsByChecksum401JSONResponse) VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error

type GetObjectsByChecksum403JSONResponse

type GetObjectsByChecksum403JSONResponse struct{ N403ForbiddenJSONResponse }

func (GetObjectsByChecksum403JSONResponse) VisitGetObjectsByChecksumResponse

func (response GetObjectsByChecksum403JSONResponse) VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error

type GetObjectsByChecksum404JSONResponse

type GetObjectsByChecksum404JSONResponse struct {
	N404NotFoundDrsObjectJSONResponse
}

func (GetObjectsByChecksum404JSONResponse) VisitGetObjectsByChecksumResponse

func (response GetObjectsByChecksum404JSONResponse) VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error

type GetObjectsByChecksum500JSONResponse

type GetObjectsByChecksum500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (GetObjectsByChecksum500JSONResponse) VisitGetObjectsByChecksumResponse

func (response GetObjectsByChecksum500JSONResponse) VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error

type GetObjectsByChecksumRequestObject

type GetObjectsByChecksumRequestObject struct {
	ChecksumParam ChecksumParam `json:"checksum"`
}

type GetObjectsByChecksumResponseObject

type GetObjectsByChecksumResponseObject interface {
	VisitGetObjectsByChecksumResponse(ctx fiber.Ctx) error
}

type GetServiceInfo200JSONResponse

type GetServiceInfo200JSONResponse struct{ N200ServiceInfoJSONResponse }

func (GetServiceInfo200JSONResponse) VisitGetServiceInfoResponse

func (response GetServiceInfo200JSONResponse) VisitGetServiceInfoResponse(ctx fiber.Ctx) error

type GetServiceInfo500JSONResponse

type GetServiceInfo500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (GetServiceInfo500JSONResponse) VisitGetServiceInfoResponse

func (response GetServiceInfo500JSONResponse) VisitGetServiceInfoResponse(ctx fiber.Ctx) error

type GetServiceInfoRequestObject

type GetServiceInfoRequestObject struct {
}

type GetServiceInfoResponseObject

type GetServiceInfoResponseObject interface {
	VisitGetServiceInfoResponse(ctx fiber.Ctx) error
}

type MiddlewareFunc

type MiddlewareFunc fiber.Handler

type N200AccessMethodUpdate

type N200AccessMethodUpdate = DrsObject

N200AccessMethodUpdate defines model for 200AccessMethodUpdate.

type N200AccessMethodUpdateJSONResponse

type N200AccessMethodUpdateJSONResponse DrsObject

type N200BulkAccessMethodUpdate

type N200BulkAccessMethodUpdate struct {
	// Objects Array of updated DRS objects
	Objects []DrsObject `json:"objects"`
}

N200BulkAccessMethodUpdate defines model for 200BulkAccessMethodUpdate.

type N200BulkAccessMethodUpdateJSONResponse

type N200BulkAccessMethodUpdateJSONResponse struct {
	// Objects Array of updated DRS objects
	Objects []DrsObject `json:"objects"`
}

type N200OkAccess

type N200OkAccess = AccessURL

N200OkAccess defines model for 200OkAccess.

type N200OkAccessJSONResponse

type N200OkAccessJSONResponse AccessURL

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 N200OkAccessesJSONResponse

type N200OkAccessesJSONResponse 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"`
}

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 N200OkAuthorizationsJSONResponse

type N200OkAuthorizationsJSONResponse Authorizations

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 N200OkBulkAuthorizationsJSONResponse

type N200OkBulkAuthorizationsJSONResponse 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"`
}

type N200OkDrsObject

type N200OkDrsObject = DrsObject

N200OkDrsObject defines model for 200OkDrsObject.

type N200OkDrsObjectJSONResponse

type N200OkDrsObjectJSONResponse DrsObject

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 N200OkDrsObjectsJSONResponse

type N200OkDrsObjectsJSONResponse 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"`
}

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 generator-emitted service-info field names.

type N200ServiceInfoJSONResponse

type N200ServiceInfoJSONResponse 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 *[]N200ServiceInfoJSONResponseDrsSupportedUploadMethods `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 N200ServiceInfoJSONResponseTypeArtifact `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"`
}

type N200ServiceInfoJSONResponseDrsSupportedUploadMethods

type N200ServiceInfoJSONResponseDrsSupportedUploadMethods = DrsServiceDrsSupportedUploadMethods

type N200ServiceInfoJSONResponseTypeArtifact

type N200ServiceInfoJSONResponseTypeArtifact = DrsServiceTypeArtifact

type N200ServiceInfoTypeArtifact

type N200ServiceInfoTypeArtifact = DrsServiceTypeArtifact

type N200UploadRequest

type N200UploadRequest = UploadResponse

N200UploadRequest defines model for 200UploadRequest.

type N200UploadRequestJSONResponse

type N200UploadRequestJSONResponse UploadResponse

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 N201ObjectsCreatedJSONResponse

type N201ObjectsCreatedJSONResponse struct {
	// Objects Array of registered DRS objects in the same order as the candidates in the request
	Objects []DrsObject `json:"objects"`
}

type N202AcceptedResponse

type N202AcceptedResponse struct {
	Headers N202AcceptedResponseHeaders
}

type N202AcceptedResponseHeaders

type N202AcceptedResponseHeaders struct {
	RetryAfter int64
}

type N204DeleteSuccessResponse

type N204DeleteSuccessResponse struct {
}

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 N400BadRequestDeleteJSONResponse

type N400BadRequestDeleteJSONResponse Error

type N400BadRequestJSONResponse

type N400BadRequestJSONResponse Error

type N401Unauthorized

type N401Unauthorized = Error

N401Unauthorized An object that can optionally include information about the error.

type N401UnauthorizedJSONResponse

type N401UnauthorizedJSONResponse 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 N403ForbiddenDeleteJSONResponse

type N403ForbiddenDeleteJSONResponse Error

type N403ForbiddenJSONResponse

type N403ForbiddenJSONResponse Error

type N404NotFoundAccess

type N404NotFoundAccess = Error

N404NotFoundAccess An object that can optionally include information about the error.

type N404NotFoundAccessJSONResponse

type N404NotFoundAccessJSONResponse Error

type N404NotFoundDelete

type N404NotFoundDelete = Error

N404NotFoundDelete An object that can optionally include information about the error.

type N404NotFoundDeleteJSONResponse

type N404NotFoundDeleteJSONResponse Error

type N404NotFoundDrsObject

type N404NotFoundDrsObject = Error

N404NotFoundDrsObject An object that can optionally include information about the error.

type N404NotFoundDrsObjectJSONResponse

type N404NotFoundDrsObjectJSONResponse Error

type N413RequestTooLarge

type N413RequestTooLarge = Error

N413RequestTooLarge An object that can optionally include information about the error.

type N413RequestTooLargeJSONResponse

type N413RequestTooLargeJSONResponse Error

type N500InternalServerError

type N500InternalServerError = Error

N500InternalServerError An object that can optionally include information about the error.

type N500InternalServerErrorJSONResponse

type N500InternalServerErrorJSONResponse Error

type ObjectId

type ObjectId = string

ObjectId defines model for ObjectId.

type OptionsBulkObject200JSONResponse

type OptionsBulkObject200JSONResponse struct {
	N200OkBulkAuthorizationsJSONResponse
}

func (OptionsBulkObject200JSONResponse) VisitOptionsBulkObjectResponse

func (response OptionsBulkObject200JSONResponse) VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error

type OptionsBulkObject204Response

type OptionsBulkObject204Response = AuthorizationsNotSupportedResponse

func (OptionsBulkObject204Response) VisitOptionsBulkObjectResponse

func (response OptionsBulkObject204Response) VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error

type OptionsBulkObject400JSONResponse

type OptionsBulkObject400JSONResponse struct{ N400BadRequestJSONResponse }

func (OptionsBulkObject400JSONResponse) VisitOptionsBulkObjectResponse

func (response OptionsBulkObject400JSONResponse) VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error

type OptionsBulkObject404JSONResponse

type OptionsBulkObject404JSONResponse struct {
	N404NotFoundDrsObjectJSONResponse
}

func (OptionsBulkObject404JSONResponse) VisitOptionsBulkObjectResponse

func (response OptionsBulkObject404JSONResponse) VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error

type OptionsBulkObject405Response

type OptionsBulkObject405Response struct {
}

func (OptionsBulkObject405Response) VisitOptionsBulkObjectResponse

func (response OptionsBulkObject405Response) VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error

type OptionsBulkObject413JSONResponse

type OptionsBulkObject413JSONResponse struct {
	N413RequestTooLargeJSONResponse
}

func (OptionsBulkObject413JSONResponse) VisitOptionsBulkObjectResponse

func (response OptionsBulkObject413JSONResponse) VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error

type OptionsBulkObject500JSONResponse

type OptionsBulkObject500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (OptionsBulkObject500JSONResponse) VisitOptionsBulkObjectResponse

func (response OptionsBulkObject500JSONResponse) VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error

type OptionsBulkObjectJSONRequestBody

type OptionsBulkObjectJSONRequestBody = BulkObjectIdNoPassport

OptionsBulkObjectJSONRequestBody defines body for OptionsBulkObject for application/json ContentType.

type OptionsBulkObjectRequestObject

type OptionsBulkObjectRequestObject struct {
	Body *OptionsBulkObjectJSONRequestBody
}

type OptionsBulkObjectResponseObject

type OptionsBulkObjectResponseObject interface {
	VisitOptionsBulkObjectResponse(ctx fiber.Ctx) error
}

type OptionsObject200JSONResponse

type OptionsObject200JSONResponse struct {
	N200OkAuthorizationsJSONResponse
}

func (OptionsObject200JSONResponse) VisitOptionsObjectResponse

func (response OptionsObject200JSONResponse) VisitOptionsObjectResponse(ctx fiber.Ctx) error

type OptionsObject204Response

type OptionsObject204Response = AuthorizationsNotSupportedResponse

func (OptionsObject204Response) VisitOptionsObjectResponse

func (response OptionsObject204Response) VisitOptionsObjectResponse(ctx fiber.Ctx) error

type OptionsObject400JSONResponse

type OptionsObject400JSONResponse struct{ N400BadRequestJSONResponse }

func (OptionsObject400JSONResponse) VisitOptionsObjectResponse

func (response OptionsObject400JSONResponse) VisitOptionsObjectResponse(ctx fiber.Ctx) error

type OptionsObject404JSONResponse

type OptionsObject404JSONResponse struct {
	N404NotFoundDrsObjectJSONResponse
}

func (OptionsObject404JSONResponse) VisitOptionsObjectResponse

func (response OptionsObject404JSONResponse) VisitOptionsObjectResponse(ctx fiber.Ctx) error

type OptionsObject405Response

type OptionsObject405Response struct {
}

func (OptionsObject405Response) VisitOptionsObjectResponse

func (response OptionsObject405Response) VisitOptionsObjectResponse(ctx fiber.Ctx) error

type OptionsObject500JSONResponse

type OptionsObject500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (OptionsObject500JSONResponse) VisitOptionsObjectResponse

func (response OptionsObject500JSONResponse) VisitOptionsObjectResponse(ctx fiber.Ctx) error

type OptionsObjectRequestObject

type OptionsObjectRequestObject struct {
	ObjectId ObjectId `json:"object_id"`
}

type OptionsObjectResponseObject

type OptionsObjectResponseObject interface {
	VisitOptionsObjectResponse(ctx fiber.Ctx) error
}

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 PostAccessURL200JSONResponse

type PostAccessURL200JSONResponse struct{ N200OkAccessJSONResponse }

func (PostAccessURL200JSONResponse) VisitPostAccessURLResponse

func (response PostAccessURL200JSONResponse) VisitPostAccessURLResponse(ctx fiber.Ctx) error

type PostAccessURL202Response

type PostAccessURL202Response = N202AcceptedResponse

func (PostAccessURL202Response) VisitPostAccessURLResponse

func (response PostAccessURL202Response) VisitPostAccessURLResponse(ctx fiber.Ctx) error

type PostAccessURL400JSONResponse

type PostAccessURL400JSONResponse struct{ N400BadRequestJSONResponse }

func (PostAccessURL400JSONResponse) VisitPostAccessURLResponse

func (response PostAccessURL400JSONResponse) VisitPostAccessURLResponse(ctx fiber.Ctx) error

type PostAccessURL401JSONResponse

type PostAccessURL401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (PostAccessURL401JSONResponse) VisitPostAccessURLResponse

func (response PostAccessURL401JSONResponse) VisitPostAccessURLResponse(ctx fiber.Ctx) error

type PostAccessURL403JSONResponse

type PostAccessURL403JSONResponse struct{ N403ForbiddenJSONResponse }

func (PostAccessURL403JSONResponse) VisitPostAccessURLResponse

func (response PostAccessURL403JSONResponse) VisitPostAccessURLResponse(ctx fiber.Ctx) error

type PostAccessURL404JSONResponse

type PostAccessURL404JSONResponse struct{ N404NotFoundAccessJSONResponse }

func (PostAccessURL404JSONResponse) VisitPostAccessURLResponse

func (response PostAccessURL404JSONResponse) VisitPostAccessURLResponse(ctx fiber.Ctx) error

type PostAccessURL500JSONResponse

type PostAccessURL500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (PostAccessURL500JSONResponse) VisitPostAccessURLResponse

func (response PostAccessURL500JSONResponse) VisitPostAccessURLResponse(ctx fiber.Ctx) error

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 PostAccessURLRequestObject

type PostAccessURLRequestObject struct {
	ObjectId ObjectId `json:"object_id"`
	AccessId AccessId `json:"access_id"`
	Body     *PostAccessURLJSONRequestBody
}

type PostAccessURLResponseObject

type PostAccessURLResponseObject interface {
	VisitPostAccessURLResponse(ctx fiber.Ctx) error
}

type PostObject200JSONResponse

type PostObject200JSONResponse struct{ N200OkDrsObjectJSONResponse }

func (PostObject200JSONResponse) VisitPostObjectResponse

func (response PostObject200JSONResponse) VisitPostObjectResponse(ctx fiber.Ctx) error

type PostObject202Response

type PostObject202Response = N202AcceptedResponse

func (PostObject202Response) VisitPostObjectResponse

func (response PostObject202Response) VisitPostObjectResponse(ctx fiber.Ctx) error

type PostObject400JSONResponse

type PostObject400JSONResponse struct{ N400BadRequestJSONResponse }

func (PostObject400JSONResponse) VisitPostObjectResponse

func (response PostObject400JSONResponse) VisitPostObjectResponse(ctx fiber.Ctx) error

type PostObject401JSONResponse

type PostObject401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (PostObject401JSONResponse) VisitPostObjectResponse

func (response PostObject401JSONResponse) VisitPostObjectResponse(ctx fiber.Ctx) error

type PostObject403JSONResponse

type PostObject403JSONResponse struct{ N403ForbiddenJSONResponse }

func (PostObject403JSONResponse) VisitPostObjectResponse

func (response PostObject403JSONResponse) VisitPostObjectResponse(ctx fiber.Ctx) error

type PostObject404JSONResponse

type PostObject404JSONResponse struct{ N404NotFoundAccessJSONResponse }

func (PostObject404JSONResponse) VisitPostObjectResponse

func (response PostObject404JSONResponse) VisitPostObjectResponse(ctx fiber.Ctx) error

type PostObject500JSONResponse

type PostObject500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (PostObject500JSONResponse) VisitPostObjectResponse

func (response PostObject500JSONResponse) VisitPostObjectResponse(ctx fiber.Ctx) error

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 PostObjectRequestObject

type PostObjectRequestObject struct {
	ObjectId ObjectId `json:"object_id"`
	Body     *PostObjectJSONRequestBody
}

type PostObjectResponseObject

type PostObjectResponseObject interface {
	VisitPostObjectResponse(ctx fiber.Ctx) error
}

type PostUploadRequest200JSONResponse

type PostUploadRequest200JSONResponse struct{ N200UploadRequestJSONResponse }

func (PostUploadRequest200JSONResponse) VisitPostUploadRequestResponse

func (response PostUploadRequest200JSONResponse) VisitPostUploadRequestResponse(ctx fiber.Ctx) error

type PostUploadRequest400JSONResponse

type PostUploadRequest400JSONResponse struct{ N400BadRequestJSONResponse }

func (PostUploadRequest400JSONResponse) VisitPostUploadRequestResponse

func (response PostUploadRequest400JSONResponse) VisitPostUploadRequestResponse(ctx fiber.Ctx) error

type PostUploadRequest401JSONResponse

type PostUploadRequest401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (PostUploadRequest401JSONResponse) VisitPostUploadRequestResponse

func (response PostUploadRequest401JSONResponse) VisitPostUploadRequestResponse(ctx fiber.Ctx) error

type PostUploadRequest403JSONResponse

type PostUploadRequest403JSONResponse struct{ N403ForbiddenJSONResponse }

func (PostUploadRequest403JSONResponse) VisitPostUploadRequestResponse

func (response PostUploadRequest403JSONResponse) VisitPostUploadRequestResponse(ctx fiber.Ctx) error

type PostUploadRequest500JSONResponse

type PostUploadRequest500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (PostUploadRequest500JSONResponse) VisitPostUploadRequestResponse

func (response PostUploadRequest500JSONResponse) VisitPostUploadRequestResponse(ctx fiber.Ctx) error

type PostUploadRequestJSONRequestBody

type PostUploadRequestJSONRequestBody = UploadRequest

PostUploadRequestJSONRequestBody defines body for PostUploadRequest for application/json ContentType.

type PostUploadRequestRequestObject

type PostUploadRequestRequestObject struct {
	Body *PostUploadRequestJSONRequestBody
}

type PostUploadRequestResponseObject

type PostUploadRequestResponseObject interface {
	VisitPostUploadRequestResponse(ctx fiber.Ctx) error
}

type RegisterObjects201JSONResponse

type RegisterObjects201JSONResponse struct{ N201ObjectsCreatedJSONResponse }

func (RegisterObjects201JSONResponse) VisitRegisterObjectsResponse

func (response RegisterObjects201JSONResponse) VisitRegisterObjectsResponse(ctx fiber.Ctx) error

type RegisterObjects400JSONResponse

type RegisterObjects400JSONResponse struct{ N400BadRequestJSONResponse }

func (RegisterObjects400JSONResponse) VisitRegisterObjectsResponse

func (response RegisterObjects400JSONResponse) VisitRegisterObjectsResponse(ctx fiber.Ctx) error

type RegisterObjects401JSONResponse

type RegisterObjects401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (RegisterObjects401JSONResponse) VisitRegisterObjectsResponse

func (response RegisterObjects401JSONResponse) VisitRegisterObjectsResponse(ctx fiber.Ctx) error

type RegisterObjects403JSONResponse

type RegisterObjects403JSONResponse struct{ N403ForbiddenJSONResponse }

func (RegisterObjects403JSONResponse) VisitRegisterObjectsResponse

func (response RegisterObjects403JSONResponse) VisitRegisterObjectsResponse(ctx fiber.Ctx) error

type RegisterObjects413JSONResponse

type RegisterObjects413JSONResponse struct {
	N413RequestTooLargeJSONResponse
}

func (RegisterObjects413JSONResponse) VisitRegisterObjectsResponse

func (response RegisterObjects413JSONResponse) VisitRegisterObjectsResponse(ctx fiber.Ctx) error

type RegisterObjects500JSONResponse

type RegisterObjects500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (RegisterObjects500JSONResponse) VisitRegisterObjectsResponse

func (response RegisterObjects500JSONResponse) VisitRegisterObjectsResponse(ctx fiber.Ctx) error

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 RegisterObjectsRequestObject

type RegisterObjectsRequestObject struct {
	Body *RegisterObjectsJSONRequestBody
}

type RegisterObjectsResponseObject

type RegisterObjectsResponseObject interface {
	VisitRegisterObjectsResponse(ctx fiber.Ctx) error
}

type ServerInterface

type ServerInterface interface {
	// Get Authorization info about multiple DrsObjects.
	// (OPTIONS /objects)
	OptionsBulkObject(c fiber.Ctx) error
	// Get info about multiple DrsObjects with an optional Passport(s).
	// (POST /objects)
	GetBulkObjects(c fiber.Ctx, params GetBulkObjectsParams) error
	// Get URLs for fetching bytes from multiple objects with an optional Passport(s).
	// (POST /objects/access)
	GetBulkAccessURL(c fiber.Ctx) error
	// Bulk update access methods for multiple DRS objects
	// (POST /objects/access-methods)
	BulkUpdateAccessMethods(c fiber.Ctx) error
	// Get DRS objects that are a match for the checksum.
	// (GET /objects/checksum/{checksum})
	GetObjectsByChecksum(c fiber.Ctx, checksumParam ChecksumParam) error
	// Delete multiple DRS objects
	// (POST /objects/delete)
	BulkDeleteObjects(c fiber.Ctx) error
	// Register DRS objects
	// (POST /objects/register)
	RegisterObjects(c fiber.Ctx) error
	// Get info about a DrsObject.
	// (GET /objects/{object_id})
	GetObject(c fiber.Ctx, objectId ObjectId, params GetObjectParams) error
	// Get Authorization info about a DrsObject.
	// (OPTIONS /objects/{object_id})
	OptionsObject(c fiber.Ctx, objectId ObjectId) error
	// Get info about a DrsObject through POST'ing a Passport.
	// (POST /objects/{object_id})
	PostObject(c fiber.Ctx, objectId ObjectId) error
	// Update access methods for a DRS object
	// (POST /objects/{object_id}/access-methods)
	UpdateObjectAccessMethods(c fiber.Ctx, objectId string) error
	// Get a URL for fetching bytes
	// (GET /objects/{object_id}/access/{access_id})
	GetAccessURL(c fiber.Ctx, objectId ObjectId, accessId AccessId) error
	// Get a URL for fetching bytes through POST'ing a Passport
	// (POST /objects/{object_id}/access/{access_id})
	PostAccessURL(c fiber.Ctx, objectId ObjectId, accessId AccessId) error
	// Delete a DRS object (optional endpoint)
	// (POST /objects/{object_id}/delete)
	DeleteObject(c fiber.Ctx, objectId ObjectId) error
	// Retrieve information about this service
	// (GET /service-info)
	GetServiceInfo(c fiber.Ctx) error
	// Request upload methods for files
	// (POST /upload-request)
	PostUploadRequest(c fiber.Ctx) error
}

ServerInterface represents all server handlers.

func NewStrictHandler

func NewStrictHandler(ssi StrictServerInterface, middlewares []StrictMiddlewareFunc) ServerInterface

type ServerInterfaceWrapper

type ServerInterfaceWrapper struct {
	Handler ServerInterface
}

ServerInterfaceWrapper converts contexts to parameters.

func (*ServerInterfaceWrapper) BulkDeleteObjects

func (siw *ServerInterfaceWrapper) BulkDeleteObjects(c fiber.Ctx) error

BulkDeleteObjects operation middleware

func (*ServerInterfaceWrapper) BulkUpdateAccessMethods

func (siw *ServerInterfaceWrapper) BulkUpdateAccessMethods(c fiber.Ctx) error

BulkUpdateAccessMethods operation middleware

func (*ServerInterfaceWrapper) DeleteObject

func (siw *ServerInterfaceWrapper) DeleteObject(c fiber.Ctx) error

DeleteObject operation middleware

func (*ServerInterfaceWrapper) GetAccessURL

func (siw *ServerInterfaceWrapper) GetAccessURL(c fiber.Ctx) error

GetAccessURL operation middleware

func (*ServerInterfaceWrapper) GetBulkAccessURL

func (siw *ServerInterfaceWrapper) GetBulkAccessURL(c fiber.Ctx) error

GetBulkAccessURL operation middleware

func (*ServerInterfaceWrapper) GetBulkObjects

func (siw *ServerInterfaceWrapper) GetBulkObjects(c fiber.Ctx) error

GetBulkObjects operation middleware

func (*ServerInterfaceWrapper) GetObject

func (siw *ServerInterfaceWrapper) GetObject(c fiber.Ctx) error

GetObject operation middleware

func (*ServerInterfaceWrapper) GetObjectsByChecksum

func (siw *ServerInterfaceWrapper) GetObjectsByChecksum(c fiber.Ctx) error

GetObjectsByChecksum operation middleware

func (*ServerInterfaceWrapper) GetServiceInfo

func (siw *ServerInterfaceWrapper) GetServiceInfo(c fiber.Ctx) error

GetServiceInfo operation middleware

func (*ServerInterfaceWrapper) OptionsBulkObject

func (siw *ServerInterfaceWrapper) OptionsBulkObject(c fiber.Ctx) error

OptionsBulkObject operation middleware

func (*ServerInterfaceWrapper) OptionsObject

func (siw *ServerInterfaceWrapper) OptionsObject(c fiber.Ctx) error

OptionsObject operation middleware

func (*ServerInterfaceWrapper) PostAccessURL

func (siw *ServerInterfaceWrapper) PostAccessURL(c fiber.Ctx) error

PostAccessURL operation middleware

func (*ServerInterfaceWrapper) PostObject

func (siw *ServerInterfaceWrapper) PostObject(c fiber.Ctx) error

PostObject operation middleware

func (*ServerInterfaceWrapper) PostUploadRequest

func (siw *ServerInterfaceWrapper) PostUploadRequest(c fiber.Ctx) error

PostUploadRequest operation middleware

func (*ServerInterfaceWrapper) RegisterObjects

func (siw *ServerInterfaceWrapper) RegisterObjects(c fiber.Ctx) error

RegisterObjects operation middleware

func (*ServerInterfaceWrapper) UpdateObjectAccessMethods

func (siw *ServerInterfaceWrapper) UpdateObjectAccessMethods(c fiber.Ctx) error

UpdateObjectAccessMethods operation middleware

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 StrictHandlerFunc

type StrictHandlerFunc func(ctx fiber.Ctx, args interface{}) (interface{}, error)

type StrictMiddlewareFunc

type StrictMiddlewareFunc func(f StrictHandlerFunc, operationID string) StrictHandlerFunc

type StrictServerInterface

type StrictServerInterface interface {
	// Get Authorization info about multiple DrsObjects.
	// (OPTIONS /objects)
	OptionsBulkObject(ctx context.Context, request OptionsBulkObjectRequestObject) (OptionsBulkObjectResponseObject, error)
	// Get info about multiple DrsObjects with an optional Passport(s).
	// (POST /objects)
	GetBulkObjects(ctx context.Context, request GetBulkObjectsRequestObject) (GetBulkObjectsResponseObject, error)
	// Get URLs for fetching bytes from multiple objects with an optional Passport(s).
	// (POST /objects/access)
	GetBulkAccessURL(ctx context.Context, request GetBulkAccessURLRequestObject) (GetBulkAccessURLResponseObject, error)
	// Bulk update access methods for multiple DRS objects
	// (POST /objects/access-methods)
	BulkUpdateAccessMethods(ctx context.Context, request BulkUpdateAccessMethodsRequestObject) (BulkUpdateAccessMethodsResponseObject, error)
	// Get DRS objects that are a match for the checksum.
	// (GET /objects/checksum/{checksum})
	GetObjectsByChecksum(ctx context.Context, request GetObjectsByChecksumRequestObject) (GetObjectsByChecksumResponseObject, error)
	// Delete multiple DRS objects
	// (POST /objects/delete)
	BulkDeleteObjects(ctx context.Context, request BulkDeleteObjectsRequestObject) (BulkDeleteObjectsResponseObject, error)
	// Register DRS objects
	// (POST /objects/register)
	RegisterObjects(ctx context.Context, request RegisterObjectsRequestObject) (RegisterObjectsResponseObject, error)
	// Get info about a DrsObject.
	// (GET /objects/{object_id})
	GetObject(ctx context.Context, request GetObjectRequestObject) (GetObjectResponseObject, error)
	// Get Authorization info about a DrsObject.
	// (OPTIONS /objects/{object_id})
	OptionsObject(ctx context.Context, request OptionsObjectRequestObject) (OptionsObjectResponseObject, error)
	// Get info about a DrsObject through POST'ing a Passport.
	// (POST /objects/{object_id})
	PostObject(ctx context.Context, request PostObjectRequestObject) (PostObjectResponseObject, error)
	// Update access methods for a DRS object
	// (POST /objects/{object_id}/access-methods)
	UpdateObjectAccessMethods(ctx context.Context, request UpdateObjectAccessMethodsRequestObject) (UpdateObjectAccessMethodsResponseObject, error)
	// Get a URL for fetching bytes
	// (GET /objects/{object_id}/access/{access_id})
	GetAccessURL(ctx context.Context, request GetAccessURLRequestObject) (GetAccessURLResponseObject, error)
	// Get a URL for fetching bytes through POST'ing a Passport
	// (POST /objects/{object_id}/access/{access_id})
	PostAccessURL(ctx context.Context, request PostAccessURLRequestObject) (PostAccessURLResponseObject, error)
	// Delete a DRS object (optional endpoint)
	// (POST /objects/{object_id}/delete)
	DeleteObject(ctx context.Context, request DeleteObjectRequestObject) (DeleteObjectResponseObject, error)
	// Retrieve information about this service
	// (GET /service-info)
	GetServiceInfo(ctx context.Context, request GetServiceInfoRequestObject) (GetServiceInfoResponseObject, error)
	// Request upload methods for files
	// (POST /upload-request)
	PostUploadRequest(ctx context.Context, request PostUploadRequestRequestObject) (PostUploadRequestResponseObject, error)
}

StrictServerInterface represents all server handlers.

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 UpdateObjectAccessMethods200JSONResponse

type UpdateObjectAccessMethods200JSONResponse struct {
	N200AccessMethodUpdateJSONResponse
}

func (UpdateObjectAccessMethods200JSONResponse) VisitUpdateObjectAccessMethodsResponse

func (response UpdateObjectAccessMethods200JSONResponse) VisitUpdateObjectAccessMethodsResponse(ctx fiber.Ctx) error

type UpdateObjectAccessMethods400JSONResponse

type UpdateObjectAccessMethods400JSONResponse struct{ N400BadRequestJSONResponse }

func (UpdateObjectAccessMethods400JSONResponse) VisitUpdateObjectAccessMethodsResponse

func (response UpdateObjectAccessMethods400JSONResponse) VisitUpdateObjectAccessMethodsResponse(ctx fiber.Ctx) error

type UpdateObjectAccessMethods401JSONResponse

type UpdateObjectAccessMethods401JSONResponse struct{ N401UnauthorizedJSONResponse }

func (UpdateObjectAccessMethods401JSONResponse) VisitUpdateObjectAccessMethodsResponse

func (response UpdateObjectAccessMethods401JSONResponse) VisitUpdateObjectAccessMethodsResponse(ctx fiber.Ctx) error

type UpdateObjectAccessMethods403JSONResponse

type UpdateObjectAccessMethods403JSONResponse struct{ N403ForbiddenJSONResponse }

func (UpdateObjectAccessMethods403JSONResponse) VisitUpdateObjectAccessMethodsResponse

func (response UpdateObjectAccessMethods403JSONResponse) VisitUpdateObjectAccessMethodsResponse(ctx fiber.Ctx) error

type UpdateObjectAccessMethods404JSONResponse

type UpdateObjectAccessMethods404JSONResponse struct {
	N404NotFoundDrsObjectJSONResponse
}

func (UpdateObjectAccessMethods404JSONResponse) VisitUpdateObjectAccessMethodsResponse

func (response UpdateObjectAccessMethods404JSONResponse) VisitUpdateObjectAccessMethodsResponse(ctx fiber.Ctx) error

type UpdateObjectAccessMethods500JSONResponse

type UpdateObjectAccessMethods500JSONResponse struct {
	N500InternalServerErrorJSONResponse
}

func (UpdateObjectAccessMethods500JSONResponse) VisitUpdateObjectAccessMethodsResponse

func (response UpdateObjectAccessMethods500JSONResponse) VisitUpdateObjectAccessMethodsResponse(ctx fiber.Ctx) error

type UpdateObjectAccessMethodsJSONRequestBody

type UpdateObjectAccessMethodsJSONRequestBody = AccessMethodUpdateRequest

UpdateObjectAccessMethodsJSONRequestBody defines body for UpdateObjectAccessMethods for application/json ContentType.

type UpdateObjectAccessMethodsRequestObject

type UpdateObjectAccessMethodsRequestObject struct {
	ObjectId string `json:"object_id"`
	Body     *UpdateObjectAccessMethodsJSONRequestBody
}

type UpdateObjectAccessMethodsResponseObject

type UpdateObjectAccessMethodsResponseObject interface {
	VisitUpdateObjectAccessMethodsResponse(ctx fiber.Ctx) error
}

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