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
- func RegisterHandlers(router fiber.Router, si ServerInterface)
- func RegisterHandlersWithOptions(router fiber.Router, si ServerInterface, options FiberServerOptions)
- type AccessId
- type AccessMethod
- type AccessMethodType
- type AccessMethodUpdateBody
- type AccessMethodUpdateRequest
- type AccessURL
- type Authorizations
- type AuthorizationsNotSupportedResponse
- type BulkAccessMethodUpdateBody
- type BulkAccessMethodUpdateRequest
- type BulkAccessURL
- type BulkDeleteBody
- type BulkDeleteObjects204Response
- type BulkDeleteObjects400JSONResponse
- type BulkDeleteObjects401JSONResponse
- type BulkDeleteObjects403JSONResponse
- type BulkDeleteObjects404JSONResponse
- type BulkDeleteObjects413JSONResponse
- type BulkDeleteObjects500JSONResponse
- type BulkDeleteObjectsJSONRequestBody
- type BulkDeleteObjectsRequestObject
- type BulkDeleteObjectsResponseObject
- type BulkDeleteRequest
- type BulkObjectAccessId
- type BulkObjectBody
- type BulkObjectIdNoPassport
- type BulkUpdateAccessMethods200JSONResponse
- type BulkUpdateAccessMethods400JSONResponse
- type BulkUpdateAccessMethods401JSONResponse
- type BulkUpdateAccessMethods403JSONResponse
- type BulkUpdateAccessMethods404JSONResponse
- type BulkUpdateAccessMethods413JSONResponse
- type BulkUpdateAccessMethods500JSONResponse
- type BulkUpdateAccessMethodsJSONRequestBody
- type BulkUpdateAccessMethodsRequestObject
- type BulkUpdateAccessMethodsResponseObject
- type Checksum
- type ChecksumParam
- type ContentsObject
- type DeleteBody
- type DeleteObject204Response
- type DeleteObject400JSONResponse
- type DeleteObject401JSONResponse
- type DeleteObject403JSONResponse
- type DeleteObject404JSONResponse
- type DeleteObject500JSONResponse
- type DeleteObjectJSONRequestBody
- type DeleteObjectRequestObject
- type DeleteObjectResponseObject
- type DeleteRequest
- type DrsObject
- type DrsObjectCandidate
- type DrsService
- type DrsServiceDrsSupportedUploadMethods
- type DrsServiceTypeArtifact
- type Error
- type Expand
- type FiberServerOptions
- type GetAccessURL200JSONResponse
- type GetAccessURL202Response
- type GetAccessURL400JSONResponse
- type GetAccessURL401JSONResponse
- type GetAccessURL403JSONResponse
- type GetAccessURL404JSONResponse
- type GetAccessURL500JSONResponse
- type GetAccessURLRequestObject
- type GetAccessURLResponseObject
- type GetBulkAccessURL200JSONResponse
- type GetBulkAccessURL202Response
- type GetBulkAccessURL400JSONResponse
- type GetBulkAccessURL401JSONResponse
- type GetBulkAccessURL403JSONResponse
- type GetBulkAccessURL404JSONResponse
- type GetBulkAccessURL413JSONResponse
- type GetBulkAccessURL500JSONResponse
- type GetBulkAccessURLJSONRequestBody
- type GetBulkAccessURLRequestObject
- type GetBulkAccessURLResponseObject
- type GetBulkObjects200JSONResponse
- type GetBulkObjects202Response
- type GetBulkObjects400JSONResponse
- type GetBulkObjects401JSONResponse
- type GetBulkObjects403JSONResponse
- type GetBulkObjects404JSONResponse
- type GetBulkObjects413JSONResponse
- type GetBulkObjects500JSONResponse
- type GetBulkObjectsJSONBody
- type GetBulkObjectsJSONRequestBody
- type GetBulkObjectsParams
- type GetBulkObjectsRequestObject
- type GetBulkObjectsResponseObject
- type GetObject200JSONResponse
- type GetObject202Response
- type GetObject400JSONResponse
- type GetObject401JSONResponse
- type GetObject403JSONResponse
- type GetObject404JSONResponse
- type GetObject500JSONResponse
- type GetObjectParams
- type GetObjectRequestObject
- type GetObjectResponseObject
- type GetObjectsByChecksum200JSONResponse
- type GetObjectsByChecksum202Response
- type GetObjectsByChecksum400JSONResponse
- type GetObjectsByChecksum401JSONResponse
- type GetObjectsByChecksum403JSONResponse
- type GetObjectsByChecksum404JSONResponse
- type GetObjectsByChecksum500JSONResponse
- type GetObjectsByChecksumRequestObject
- type GetObjectsByChecksumResponseObject
- type GetServiceInfo200JSONResponse
- type GetServiceInfo500JSONResponse
- type GetServiceInfoRequestObject
- type GetServiceInfoResponseObject
- type MiddlewareFunc
- type N200AccessMethodUpdate
- type N200AccessMethodUpdateJSONResponse
- type N200BulkAccessMethodUpdate
- type N200BulkAccessMethodUpdateJSONResponse
- type N200OkAccess
- type N200OkAccessJSONResponse
- type N200OkAccesses
- type N200OkAccessesJSONResponse
- type N200OkAuthorizations
- type N200OkAuthorizationsJSONResponse
- type N200OkBulkAuthorizations
- type N200OkBulkAuthorizationsJSONResponse
- type N200OkDrsObject
- type N200OkDrsObjectJSONResponse
- type N200OkDrsObjects
- type N200OkDrsObjectsJSONResponse
- type N200ServiceInfo
- type N200ServiceInfoDrsSupportedUploadMethods
- type N200ServiceInfoJSONResponse
- type N200ServiceInfoJSONResponseDrsSupportedUploadMethods
- type N200ServiceInfoJSONResponseTypeArtifact
- type N200ServiceInfoTypeArtifact
- type N200UploadRequest
- type N200UploadRequestJSONResponse
- type N201ObjectsCreated
- type N201ObjectsCreatedJSONResponse
- type N202AcceptedResponse
- type N202AcceptedResponseHeaders
- type N204DeleteSuccessResponse
- type N400BadRequest
- type N400BadRequestDelete
- type N400BadRequestDeleteJSONResponse
- type N400BadRequestJSONResponse
- type N401Unauthorized
- type N401UnauthorizedJSONResponse
- type N403Forbidden
- type N403ForbiddenDelete
- type N403ForbiddenDeleteJSONResponse
- type N403ForbiddenJSONResponse
- type N404NotFoundAccess
- type N404NotFoundAccessJSONResponse
- type N404NotFoundDelete
- type N404NotFoundDeleteJSONResponse
- type N404NotFoundDrsObject
- type N404NotFoundDrsObjectJSONResponse
- type N413RequestTooLarge
- type N413RequestTooLargeJSONResponse
- type N500InternalServerError
- type N500InternalServerErrorJSONResponse
- type ObjectId
- type OptionsBulkObject200JSONResponse
- type OptionsBulkObject204Response
- type OptionsBulkObject400JSONResponse
- type OptionsBulkObject404JSONResponse
- type OptionsBulkObject405Response
- type OptionsBulkObject413JSONResponse
- type OptionsBulkObject500JSONResponse
- type OptionsBulkObjectJSONRequestBody
- type OptionsBulkObjectRequestObject
- type OptionsBulkObjectResponseObject
- type OptionsObject200JSONResponse
- type OptionsObject204Response
- type OptionsObject400JSONResponse
- type OptionsObject404JSONResponse
- type OptionsObject405Response
- type OptionsObject500JSONResponse
- type OptionsObjectRequestObject
- type OptionsObjectResponseObject
- type Passports
- type PostAccessURL200JSONResponse
- type PostAccessURL202Response
- type PostAccessURL400JSONResponse
- type PostAccessURL401JSONResponse
- type PostAccessURL403JSONResponse
- type PostAccessURL404JSONResponse
- type PostAccessURL500JSONResponse
- type PostAccessURLJSONBody
- type PostAccessURLJSONRequestBody
- type PostAccessURLRequestObject
- type PostAccessURLResponseObject
- type PostObject200JSONResponse
- type PostObject202Response
- type PostObject400JSONResponse
- type PostObject401JSONResponse
- type PostObject403JSONResponse
- type PostObject404JSONResponse
- type PostObject500JSONResponse
- type PostObjectBody
- type PostObjectJSONBody
- type PostObjectJSONRequestBody
- type PostObjectRequestObject
- type PostObjectResponseObject
- type PostUploadRequest200JSONResponse
- type PostUploadRequest400JSONResponse
- type PostUploadRequest401JSONResponse
- type PostUploadRequest403JSONResponse
- type PostUploadRequest500JSONResponse
- type PostUploadRequestJSONRequestBody
- type PostUploadRequestRequestObject
- type PostUploadRequestResponseObject
- type RegisterObjects201JSONResponse
- type RegisterObjects400JSONResponse
- type RegisterObjects401JSONResponse
- type RegisterObjects403JSONResponse
- type RegisterObjects413JSONResponse
- type RegisterObjects500JSONResponse
- type RegisterObjectsBody
- type RegisterObjectsJSONBody
- type RegisterObjectsJSONRequestBody
- type RegisterObjectsRequestObject
- type RegisterObjectsResponseObject
- type ServerInterface
- type ServerInterfaceWrapper
- func (siw *ServerInterfaceWrapper) BulkDeleteObjects(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) BulkUpdateAccessMethods(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) DeleteObject(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) GetAccessURL(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) GetBulkAccessURL(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) GetBulkObjects(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) GetObject(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) GetObjectsByChecksum(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) GetServiceInfo(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) OptionsBulkObject(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) OptionsObject(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) PostAccessURL(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) PostObject(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) PostUploadRequest(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) RegisterObjects(c fiber.Ctx) error
- func (siw *ServerInterfaceWrapper) UpdateObjectAccessMethods(c fiber.Ctx) error
- type Service
- type ServiceType
- type StrictHandlerFunc
- type StrictMiddlewareFunc
- type StrictServerInterface
- type Summary
- type Unresolved
- type UpdateObjectAccessMethods200JSONResponse
- type UpdateObjectAccessMethods400JSONResponse
- type UpdateObjectAccessMethods401JSONResponse
- type UpdateObjectAccessMethods403JSONResponse
- type UpdateObjectAccessMethods404JSONResponse
- type UpdateObjectAccessMethods500JSONResponse
- type UpdateObjectAccessMethodsJSONRequestBody
- type UpdateObjectAccessMethodsRequestObject
- type UpdateObjectAccessMethodsResponseObject
- type UploadMethod
- type UploadMethodType
- type UploadRequest
- type UploadRequestBody
- type UploadRequestObject
- type UploadResponse
- type UploadResponseObject
Constants ¶
const ( BasicAuthScopes = "BasicAuth.Scopes" BearerAuthScopes = "BearerAuth.Scopes" PassportAuthScopes = "PassportAuth.Scopes" )
Variables ¶
This section is empty.
Functions ¶
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 AccessMethod ¶
type AccessMethod struct {
// AccessId An arbitrary string to be passed to the `/access` method to get an `AccessURL`. This string must be unique within the scope of a single object. Note that at least one of `access_url` and `access_id` must be provided.
AccessId *string `json:"access_id,omitempty"`
AccessUrl *struct {
// Headers An optional list of headers to include in the HTTP request to `url`. These headers can be used to provide auth tokens required to fetch the object bytes.
Headers *[]string `json:"headers,omitempty"`
// Url A fully resolvable URL that can be used to fetch the actual object bytes.
Url string `json:"url"`
} `json:"access_url,omitempty"`
// Authorizations A map of organization to project list. An empty array means org-wide access. A non-empty array grants access scoped to the listed projects.
Authorizations *map[string][]string `json:"authorizations,omitempty"`
// Available Availablity of file in the cloud. This label defines if this file is immediately accessible via DRS. Any delay or requirement of thawing mechanism if the file is in offline/archival storage is classified as false, meaning it is unavailable.
Available *bool `json:"available,omitempty"`
// Cloud Name of the cloud service provider that the object belongs to. If the cloud service is Amazon Web Services, Google Cloud Platform or Azure the values should be `aws`, `gcp`, or `azure` respectively.
Cloud *string `json:"cloud,omitempty"`
// Region Name of the region in the cloud service provider that the object belongs to.
Region *string `json:"region,omitempty"`
// Type Type of the access method.
Type AccessMethodType `json:"type"`
}
AccessMethod defines model for AccessMethod.
type AccessMethodType ¶
type AccessMethodType string
AccessMethodType Type of the access method.
const ( AccessMethodTypeFile AccessMethodType = "file" AccessMethodTypeFtp AccessMethodType = "ftp" AccessMethodTypeGlobus AccessMethodType = "globus" AccessMethodTypeGs AccessMethodType = "gs" AccessMethodTypeGsiftp AccessMethodType = "gsiftp" AccessMethodTypeHtsget AccessMethodType = "htsget" AccessMethodTypeHttps AccessMethodType = "https" AccessMethodTypeS3 AccessMethodType = "s3" )
Defines values for AccessMethodType.
type AccessMethodUpdateBody ¶
type AccessMethodUpdateBody = AccessMethodUpdateRequest
AccessMethodUpdateBody defines model for AccessMethodUpdateBody.
type AccessMethodUpdateRequest ¶
type AccessMethodUpdateRequest struct {
// AccessMethods New access methods for the DRS object
AccessMethods []AccessMethod `json:"access_methods"`
// Passports Optional GA4GH Passport JWTs for authorization
Passports *[]string `json:"passports,omitempty"`
}
AccessMethodUpdateRequest defines model for AccessMethodUpdateRequest.
type AccessURL ¶
type AccessURL struct {
// Headers An optional list of headers to include in the HTTP request to `url`. These headers can be used to provide auth tokens required to fetch the object bytes.
Headers *[]string `json:"headers,omitempty"`
// Url A fully resolvable URL that can be used to fetch the actual object bytes.
Url string `json:"url"`
}
AccessURL defines model for AccessURL.
type Authorizations ¶
Authorizations A map of organization to project list. Each key is an organization name. An empty array value means org-wide access for that organization. A non-empty array grants access scoped to the listed projects only.
type 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 ¶
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 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 ¶
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 Checksum ¶
type Checksum struct {
// Checksum The hex-string encoded checksum for the data
Checksum string `json:"checksum"`
// Type The digest method used to create the checksum.
// The value (e.g. `sha-256`) SHOULD be listed as `Hash Name String` in the https://www.iana.org/assignments/named-information/named-information.xhtml#hash-alg[IANA Named Information Hash Algorithm Registry]. Other values MAY be used, as long as implementors are aware of the issues discussed in https://tools.ietf.org/html/rfc6920#section-9.4[RFC6920].
// GA4GH may provide more explicit guidance for use of non-IANA-registered algorithms in the future. Until then, if implementers do choose such an algorithm (e.g. because it's implemented by their storage provider), they SHOULD use an existing standard `type` value such as `md5`, `etag`, `crc32c`, `trunc512`, or `sha1`.
Type string `json:"type"`
}
Checksum defines model for Checksum.
type ContentsObject ¶
type ContentsObject struct {
// Contents If this ContentsObject describes a nested bundle and the caller specified "?expand=true" on the request, then this contents array must be present and describe the objects within the nested bundle.
Contents *[]ContentsObject `json:"contents,omitempty"`
// DrsUri A list of full DRS identifier URI paths that may be used to obtain the object. These URIs may be external to this DRS instance.
DrsUri *[]string `json:"drs_uri,omitempty"`
// Id A DRS identifier of a `DrsObject` (either a single blob or a nested bundle). If this ContentsObject is an object within a nested bundle, then the id is optional. Otherwise, the id is required.
Id *string `json:"id,omitempty"`
// Name A name declared by the bundle author that must be used when materialising this object, overriding any name directly associated with the object itself. The name must be unique within the containing bundle. This string is made up of uppercase and lowercase letters, decimal digits, hyphen, period, and underscore [A-Za-z0-9.-_]. See http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap03.html#tag_03_282[portable filenames].
Name string `json:"name"`
}
ContentsObject defines model for ContentsObject.
type 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 ¶
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 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 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 ¶
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 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 ¶
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 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 ¶
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 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 ¶
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 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 ¶
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 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 MiddlewareFunc ¶
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 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 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 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 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 ¶
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 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 ¶
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 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 ¶
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 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 ¶
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 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 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 ¶
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 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.