drs

package
v0.2.9 Latest Latest
Warning

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

Go to latest
Published: Jul 16, 2026 License: MIT Imports: 10 Imported by: 0

Documentation

Overview

Package drs provides primitives to interact with the openapi HTTP API.

Code generated by github.com/oapi-codegen/oapi-codegen/v2 version v2.5.0 DO NOT EDIT.

Index

Constants

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

Variables

This section is empty.

Functions

func NewAddChecksumsRequest added in v0.2.6

func NewAddChecksumsRequest(server string, objectId string, body AddChecksumsJSONRequestBody) (*http.Request, error)

NewAddChecksumsRequest calls the generic AddChecksums builder with application/json body

func NewAddChecksumsRequestWithBody added in v0.2.6

func NewAddChecksumsRequestWithBody(server string, objectId string, contentType string, body io.Reader) (*http.Request, error)

NewAddChecksumsRequestWithBody generates requests for AddChecksums with any type of body

func NewBulkAddChecksumsRequest added in v0.2.6

func NewBulkAddChecksumsRequest(server string, body BulkAddChecksumsJSONRequestBody) (*http.Request, error)

NewBulkAddChecksumsRequest calls the generic BulkAddChecksums builder with application/json body

func NewBulkAddChecksumsRequestWithBody added in v0.2.6

func NewBulkAddChecksumsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewBulkAddChecksumsRequestWithBody generates requests for BulkAddChecksums with any type of body

func NewBulkDeleteObjectsRequest

func NewBulkDeleteObjectsRequest(server string, body BulkDeleteObjectsJSONRequestBody) (*http.Request, error)

NewBulkDeleteObjectsRequest calls the generic BulkDeleteObjects builder with application/json body

func NewBulkDeleteObjectsRequestWithBody

func NewBulkDeleteObjectsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewBulkDeleteObjectsRequestWithBody generates requests for BulkDeleteObjects with any type of body

func NewBulkUpdateAccessMethodsRequest

func NewBulkUpdateAccessMethodsRequest(server string, body BulkUpdateAccessMethodsJSONRequestBody) (*http.Request, error)

NewBulkUpdateAccessMethodsRequest calls the generic BulkUpdateAccessMethods builder with application/json body

func NewBulkUpdateAccessMethodsRequestWithBody

func NewBulkUpdateAccessMethodsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewBulkUpdateAccessMethodsRequestWithBody generates requests for BulkUpdateAccessMethods with any type of body

func NewDeleteObjectRequest

func NewDeleteObjectRequest(server string, objectId ObjectId, body DeleteObjectJSONRequestBody) (*http.Request, error)

NewDeleteObjectRequest calls the generic DeleteObject builder with application/json body

func NewDeleteObjectRequestWithBody

func NewDeleteObjectRequestWithBody(server string, objectId ObjectId, contentType string, body io.Reader) (*http.Request, error)

NewDeleteObjectRequestWithBody generates requests for DeleteObject with any type of body

func NewGetAccessURLRequest

func NewGetAccessURLRequest(server string, objectId ObjectId, accessId AccessId) (*http.Request, error)

NewGetAccessURLRequest generates requests for GetAccessURL

func NewGetBulkAccessURLRequest

func NewGetBulkAccessURLRequest(server string, body GetBulkAccessURLJSONRequestBody) (*http.Request, error)

NewGetBulkAccessURLRequest calls the generic GetBulkAccessURL builder with application/json body

func NewGetBulkAccessURLRequestWithBody

func NewGetBulkAccessURLRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewGetBulkAccessURLRequestWithBody generates requests for GetBulkAccessURL with any type of body

func NewGetBulkObjectsRequest

func NewGetBulkObjectsRequest(server string, params *GetBulkObjectsParams, body GetBulkObjectsJSONRequestBody) (*http.Request, error)

NewGetBulkObjectsRequest calls the generic GetBulkObjects builder with application/json body

func NewGetBulkObjectsRequestWithBody

func NewGetBulkObjectsRequestWithBody(server string, params *GetBulkObjectsParams, contentType string, body io.Reader) (*http.Request, error)

NewGetBulkObjectsRequestWithBody generates requests for GetBulkObjects with any type of body

func NewGetObjectRequest

func NewGetObjectRequest(server string, objectId ObjectId, params *GetObjectParams) (*http.Request, error)

NewGetObjectRequest generates requests for GetObject

func NewGetObjectsByChecksumRequest

func NewGetObjectsByChecksumRequest(server string, checksumParameter ChecksumParameter) (*http.Request, error)

NewGetObjectsByChecksumRequest generates requests for GetObjectsByChecksum

func NewGetServiceInfoRequest

func NewGetServiceInfoRequest(server string) (*http.Request, error)

NewGetServiceInfoRequest generates requests for GetServiceInfo

func NewOptionsBulkObjectRequest

func NewOptionsBulkObjectRequest(server string) (*http.Request, error)

NewOptionsBulkObjectRequest generates requests for OptionsBulkObject

func NewOptionsObjectRequest

func NewOptionsObjectRequest(server string, objectId ObjectId) (*http.Request, error)

NewOptionsObjectRequest generates requests for OptionsObject

func NewPostAccessURLRequest

func NewPostAccessURLRequest(server string, objectId ObjectId, accessId AccessId, body PostAccessURLJSONRequestBody) (*http.Request, error)

NewPostAccessURLRequest calls the generic PostAccessURL builder with application/json body

func NewPostAccessURLRequestWithBody

func NewPostAccessURLRequestWithBody(server string, objectId ObjectId, accessId AccessId, contentType string, body io.Reader) (*http.Request, error)

NewPostAccessURLRequestWithBody generates requests for PostAccessURL with any type of body

func NewPostObjectRequest

func NewPostObjectRequest(server string, objectId ObjectId, body PostObjectJSONRequestBody) (*http.Request, error)

NewPostObjectRequest calls the generic PostObject builder with application/json body

func NewPostObjectRequestWithBody

func NewPostObjectRequestWithBody(server string, objectId ObjectId, contentType string, body io.Reader) (*http.Request, error)

NewPostObjectRequestWithBody generates requests for PostObject with any type of body

func NewPostUploadRequestRequest

func NewPostUploadRequestRequest(server string, body PostUploadRequestJSONRequestBody) (*http.Request, error)

NewPostUploadRequestRequest calls the generic PostUploadRequest builder with application/json body

func NewPostUploadRequestRequestWithBody

func NewPostUploadRequestRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewPostUploadRequestRequestWithBody generates requests for PostUploadRequest with any type of body

func NewRegisterObjectsRequest

func NewRegisterObjectsRequest(server string, body RegisterObjectsJSONRequestBody) (*http.Request, error)

NewRegisterObjectsRequest calls the generic RegisterObjects builder with application/json body

func NewRegisterObjectsRequestWithBody

func NewRegisterObjectsRequestWithBody(server string, contentType string, body io.Reader) (*http.Request, error)

NewRegisterObjectsRequestWithBody generates requests for RegisterObjects with any type of body

func NewUpdateObjectAccessMethodsRequest

func NewUpdateObjectAccessMethodsRequest(server string, objectId string, body UpdateObjectAccessMethodsJSONRequestBody) (*http.Request, error)

NewUpdateObjectAccessMethodsRequest calls the generic UpdateObjectAccessMethods builder with application/json body

func NewUpdateObjectAccessMethodsRequestWithBody

func NewUpdateObjectAccessMethodsRequestWithBody(server string, objectId string, contentType string, body io.Reader) (*http.Request, error)

NewUpdateObjectAccessMethodsRequestWithBody generates requests for UpdateObjectAccessMethods with any type of body

Types

type AccessId

type AccessId = string

AccessId defines model for AccessId.

type AccessMethod

type AccessMethod struct {
	// AccessId An arbitrary string to be passed to the `/access` method to get an `AccessURL`. This string must be unique within the scope of a single object. Note that at least one of `access_url` and `access_id` must be provided.
	AccessId  *string `json:"access_id,omitempty"`
	AccessUrl *struct {
		// Headers An optional list of headers to include in the HTTP request to `url`. These headers can be used to provide auth tokens required to fetch the object bytes.
		Headers *[]string `json:"headers,omitempty"`

		// Url A fully resolvable URL that can be used to fetch the actual object bytes.
		Url string `json:"url"`
	} `json:"access_url,omitempty"`
	Authorizations *struct {
		// BearerAuthIssuers If authorizations contain `BearerAuth` this is an optional list of issuers that may authorize access to this object. The caller must provide a token from one of these issuers. If this is empty or missing it assumed the caller knows which token to send via other means. It is strongly recommended that the caller validate that it is appropriate to send the requested token to the DRS server to mitigate attacks by malicious DRS servers requesting credentials they should not have.
		BearerAuthIssuers *[]string `json:"bearer_auth_issuers,omitempty"`
		DrsObjectId       *string   `json:"drs_object_id,omitempty"`

		// PassportAuthIssuers If authorizations contain `PassportAuth` this is a required list of visa issuers (as found in a visa's `iss` claim) that may authorize access to this object. The caller must only provide passports that contain visas from this list. It is strongly recommended that the caller validate that it is appropriate to send the requested passport/visa to the DRS server to mitigate attacks by malicious DRS servers requesting credentials they should not have.
		PassportAuthIssuers *[]string `json:"passport_auth_issuers,omitempty"`

		// SupportedTypes An Optional list of support authorization types. More than one can be supported and tried in sequence. Defaults to `None` if empty or missing.
		SupportedTypes *[]AccessMethodAuthorizationsSupportedTypes `json:"supported_types,omitempty"`
	} `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 AccessMethodAuthorizationsSupportedTypes

type AccessMethodAuthorizationsSupportedTypes string

AccessMethodAuthorizationsSupportedTypes defines model for AccessMethod.Authorizations.SupportedTypes.

const (
	AccessMethodAuthorizationsSupportedTypesBasicAuth    AccessMethodAuthorizationsSupportedTypes = "BasicAuth"
	AccessMethodAuthorizationsSupportedTypesBearerAuth   AccessMethodAuthorizationsSupportedTypes = "BearerAuth"
	AccessMethodAuthorizationsSupportedTypesNone         AccessMethodAuthorizationsSupportedTypes = "None"
	AccessMethodAuthorizationsSupportedTypesPassportAuth AccessMethodAuthorizationsSupportedTypes = "PassportAuth"
)

Defines values for AccessMethodAuthorizationsSupportedTypes.

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 AddChecksumsJSONRequestBody added in v0.2.6

type AddChecksumsJSONRequestBody = ChecksumAdditionRequest

AddChecksumsJSONRequestBody defines body for AddChecksums for application/json ContentType.

type AddChecksumsResponse added in v0.2.6

type AddChecksumsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200ChecksumAddition
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundDrsObject
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseAddChecksumsResponse added in v0.2.6

func ParseAddChecksumsResponse(rsp *http.Response) (*AddChecksumsResponse, error)

ParseAddChecksumsResponse parses an HTTP response from a AddChecksumsWithResponse call

func (AddChecksumsResponse) Status added in v0.2.6

func (r AddChecksumsResponse) Status() string

Status returns HTTPResponse.Status

func (AddChecksumsResponse) StatusCode added in v0.2.6

func (r AddChecksumsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Authorizations

type Authorizations struct {
	// BearerAuthIssuers If authorizations contain `BearerAuth` this is an optional list of issuers that may authorize access to this object. The caller must provide a token from one of these issuers. If this is empty or missing it assumed the caller knows which token to send via other means. It is strongly recommended that the caller validate that it is appropriate to send the requested token to the DRS server to mitigate attacks by malicious DRS servers requesting credentials they should not have.
	BearerAuthIssuers *[]string `json:"bearer_auth_issuers,omitempty"`
	DrsObjectId       *string   `json:"drs_object_id,omitempty"`

	// PassportAuthIssuers If authorizations contain `PassportAuth` this is a required list of visa issuers (as found in a visa's `iss` claim) that may authorize access to this object. The caller must only provide passports that contain visas from this list. It is strongly recommended that the caller validate that it is appropriate to send the requested passport/visa to the DRS server to mitigate attacks by malicious DRS servers requesting credentials they should not have.
	PassportAuthIssuers *[]string `json:"passport_auth_issuers,omitempty"`

	// SupportedTypes An Optional list of support authorization types. More than one can be supported and tried in sequence. Defaults to `None` if empty or missing.
	SupportedTypes *[]AuthorizationsSupportedTypes `json:"supported_types,omitempty"`
}

Authorizations defines model for Authorizations.

type AuthorizationsSupportedTypes

type AuthorizationsSupportedTypes string

AuthorizationsSupportedTypes defines model for Authorizations.SupportedTypes.

const (
	AuthorizationsSupportedTypesBasicAuth    AuthorizationsSupportedTypes = "BasicAuth"
	AuthorizationsSupportedTypesBearerAuth   AuthorizationsSupportedTypes = "BearerAuth"
	AuthorizationsSupportedTypesNone         AuthorizationsSupportedTypes = "None"
	AuthorizationsSupportedTypesPassportAuth AuthorizationsSupportedTypes = "PassportAuth"
)

Defines values for AuthorizationsSupportedTypes.

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 BulkAddChecksumsJSONRequestBody added in v0.2.6

type BulkAddChecksumsJSONRequestBody = BulkChecksumAdditionRequest

BulkAddChecksumsJSONRequestBody defines body for BulkAddChecksums for application/json ContentType.

type BulkAddChecksumsResponse added in v0.2.6

type BulkAddChecksumsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200BulkChecksumAddition
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundDrsObject
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseBulkAddChecksumsResponse added in v0.2.6

func ParseBulkAddChecksumsResponse(rsp *http.Response) (*BulkAddChecksumsResponse, error)

ParseBulkAddChecksumsResponse parses an HTTP response from a BulkAddChecksumsWithResponse call

func (BulkAddChecksumsResponse) Status added in v0.2.6

func (r BulkAddChecksumsResponse) Status() string

Status returns HTTPResponse.Status

func (BulkAddChecksumsResponse) StatusCode added in v0.2.6

func (r BulkAddChecksumsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type BulkChecksumAdditionBody added in v0.2.6

type BulkChecksumAdditionBody = BulkChecksumAdditionRequest

BulkChecksumAdditionBody defines model for BulkChecksumAdditionBody.

type BulkChecksumAdditionRequest added in v0.2.6

type BulkChecksumAdditionRequest struct {
	// Additions Array of checksum additions
	Additions []struct {
		// Checksums New checksums for this object
		Checksums []Checksum `json:"checksums"`

		// ObjectId DRS object ID to add checksum for
		ObjectId string `json:"object_id"`
	} `json:"additions"`

	// Passports Optional GA4GH Passport JWTs for authorization
	Passports *[]string `json:"passports,omitempty"`
}

BulkChecksumAdditionRequest defines model for BulkChecksumAdditionRequest.

type BulkDeleteBody

type BulkDeleteBody = BulkDeleteRequest

BulkDeleteBody Request body for bulk delete operations

type BulkDeleteObjectsJSONRequestBody

type BulkDeleteObjectsJSONRequestBody = BulkDeleteRequest

BulkDeleteObjectsJSONRequestBody defines body for BulkDeleteObjects for application/json ContentType.

type BulkDeleteObjectsResponse

type BulkDeleteObjectsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *N400BadRequestDelete
	JSON401      *N401Unauthorized
	JSON403      *N403ForbiddenDelete
	JSON404      *N404NotFoundDelete
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseBulkDeleteObjectsResponse

func ParseBulkDeleteObjectsResponse(rsp *http.Response) (*BulkDeleteObjectsResponse, error)

ParseBulkDeleteObjectsResponse parses an HTTP response from a BulkDeleteObjectsWithResponse call

func (BulkDeleteObjectsResponse) Status

func (r BulkDeleteObjectsResponse) Status() string

Status returns HTTPResponse.Status

func (BulkDeleteObjectsResponse) StatusCode

func (r BulkDeleteObjectsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type BulkDeleteRequest

type BulkDeleteRequest struct {
	// BulkObjectIds Array of DRS object IDs to delete
	BulkObjectIds []string `json:"bulk_object_ids"`

	// DeleteObjectMetadata If true, permanently remove the DRS object metadata record. The object ID will no longer resolve and cannot be recovered. If false (default), the server marks the object as deleted but preserves the metadata record, enabling potential recovery. Read and access endpoints return 410 Gone for objects in this state. Servers that support this mode advertise metadataRetentionSupported in service-info. Only applicable when the server advertises deleteSupported in service-info. Servers that do not support metadata retention SHOULD silently ignore this parameter and permanently delete metadata regardless of the value provided.
	DeleteObjectMetadata *bool `json:"delete_object_metadata,omitempty"`

	// DeleteStorageData If true, the server attempts to delete the underlying storage data (follows server's deleteStorageDataSupported capability). If false (default), underlying storage data is preserved. This parameter is independent of delete_object_metadata and controls only the storage layer. Clients must explicitly set this to true to enable storage data deletion, ensuring intentional choice for this potentially destructive operation. Only applicable when the server advertises deleteSupported in service-info.
	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 BulkUpdateAccessMethodsJSONRequestBody

type BulkUpdateAccessMethodsJSONRequestBody = BulkAccessMethodUpdateRequest

BulkUpdateAccessMethodsJSONRequestBody defines body for BulkUpdateAccessMethods for application/json ContentType.

type BulkUpdateAccessMethodsResponse

type BulkUpdateAccessMethodsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200BulkAccessMethodUpdate
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundDrsObject
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseBulkUpdateAccessMethodsResponse

func ParseBulkUpdateAccessMethodsResponse(rsp *http.Response) (*BulkUpdateAccessMethodsResponse, error)

ParseBulkUpdateAccessMethodsResponse parses an HTTP response from a BulkUpdateAccessMethodsWithResponse call

func (BulkUpdateAccessMethodsResponse) Status

Status returns HTTPResponse.Status

func (BulkUpdateAccessMethodsResponse) StatusCode

func (r BulkUpdateAccessMethodsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

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 ChecksumAdditionBody added in v0.2.6

type ChecksumAdditionBody = ChecksumAdditionRequest

ChecksumAdditionBody defines model for ChecksumAdditionBody.

type ChecksumAdditionRequest added in v0.2.6

type ChecksumAdditionRequest struct {
	// Checksums New checksums for the DRS object
	Checksums []Checksum `json:"checksums"`

	// Passports Optional GA4GH Passport JWTs for authorization
	Passports *[]string `json:"passports,omitempty"`
}

ChecksumAdditionRequest defines model for ChecksumAdditionRequest.

type ChecksumParameter added in v0.2.6

type ChecksumParameter = string

ChecksumParameter defines model for Checksum.

type Client

type Client struct {
	// The endpoint of the server conforming to this interface, with scheme,
	// https://api.deepmap.com for example. This can contain a path relative
	// to the server, such as https://api.deepmap.com/dev-test, and all the
	// paths in the swagger spec will be appended to the server.
	Server string

	// Doer for performing requests, typically a *http.Client with any
	// customized settings, such as certificate chains.
	Client HttpRequestDoer

	// A list of callbacks for modifying requests which are generated before sending over
	// the network.
	RequestEditors []RequestEditorFn
}

Client which conforms to the OpenAPI3 specification for this service.

func NewClient

func NewClient(server string, opts ...ClientOption) (*Client, error)

Creates a new Client, with reasonable defaults

func (*Client) AddChecksums added in v0.2.6

func (c *Client) AddChecksums(ctx context.Context, objectId string, body AddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) AddChecksumsWithBody added in v0.2.6

func (c *Client) AddChecksumsWithBody(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) BulkAddChecksums added in v0.2.6

func (c *Client) BulkAddChecksums(ctx context.Context, body BulkAddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) BulkAddChecksumsWithBody added in v0.2.6

func (c *Client) BulkAddChecksumsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) BulkDeleteObjects

func (c *Client) BulkDeleteObjects(ctx context.Context, body BulkDeleteObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) BulkDeleteObjectsWithBody

func (c *Client) BulkDeleteObjectsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) BulkUpdateAccessMethods

func (c *Client) BulkUpdateAccessMethods(ctx context.Context, body BulkUpdateAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) BulkUpdateAccessMethodsWithBody

func (c *Client) BulkUpdateAccessMethodsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteObject

func (c *Client) DeleteObject(ctx context.Context, objectId ObjectId, body DeleteObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) DeleteObjectWithBody

func (c *Client) DeleteObjectWithBody(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetAccessURL

func (c *Client) GetAccessURL(ctx context.Context, objectId ObjectId, accessId AccessId, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetBulkAccessURL

func (c *Client) GetBulkAccessURL(ctx context.Context, body GetBulkAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetBulkAccessURLWithBody

func (c *Client) GetBulkAccessURLWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetBulkObjects

func (c *Client) GetBulkObjects(ctx context.Context, params *GetBulkObjectsParams, body GetBulkObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetBulkObjectsWithBody

func (c *Client) GetBulkObjectsWithBody(ctx context.Context, params *GetBulkObjectsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetObject

func (c *Client) GetObject(ctx context.Context, objectId ObjectId, params *GetObjectParams, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetObjectsByChecksum

func (c *Client) GetObjectsByChecksum(ctx context.Context, checksumParameter ChecksumParameter, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) GetServiceInfo

func (c *Client) GetServiceInfo(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) OptionsBulkObject

func (c *Client) OptionsBulkObject(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) OptionsObject

func (c *Client) OptionsObject(ctx context.Context, objectId ObjectId, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PostAccessURL

func (c *Client) PostAccessURL(ctx context.Context, objectId ObjectId, accessId AccessId, body PostAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PostAccessURLWithBody

func (c *Client) PostAccessURLWithBody(ctx context.Context, objectId ObjectId, accessId AccessId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PostObject

func (c *Client) PostObject(ctx context.Context, objectId ObjectId, body PostObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PostObjectWithBody

func (c *Client) PostObjectWithBody(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PostUploadRequest

func (c *Client) PostUploadRequest(ctx context.Context, body PostUploadRequestJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) PostUploadRequestWithBody

func (c *Client) PostUploadRequestWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) RegisterObjects

func (c *Client) RegisterObjects(ctx context.Context, body RegisterObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) RegisterObjectsWithBody

func (c *Client) RegisterObjectsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateObjectAccessMethods

func (c *Client) UpdateObjectAccessMethods(ctx context.Context, objectId string, body UpdateObjectAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

func (*Client) UpdateObjectAccessMethodsWithBody

func (c *Client) UpdateObjectAccessMethodsWithBody(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

type ClientInterface

type ClientInterface interface {
	// OptionsBulkObject request
	OptionsBulkObject(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetBulkObjectsWithBody request with any body
	GetBulkObjectsWithBody(ctx context.Context, params *GetBulkObjectsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	GetBulkObjects(ctx context.Context, params *GetBulkObjectsParams, body GetBulkObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetBulkAccessURLWithBody request with any body
	GetBulkAccessURLWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	GetBulkAccessURL(ctx context.Context, body GetBulkAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// BulkUpdateAccessMethodsWithBody request with any body
	BulkUpdateAccessMethodsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	BulkUpdateAccessMethods(ctx context.Context, body BulkUpdateAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetObjectsByChecksum request
	GetObjectsByChecksum(ctx context.Context, checksumParameter ChecksumParameter, reqEditors ...RequestEditorFn) (*http.Response, error)

	// BulkAddChecksumsWithBody request with any body
	BulkAddChecksumsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	BulkAddChecksums(ctx context.Context, body BulkAddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// BulkDeleteObjectsWithBody request with any body
	BulkDeleteObjectsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	BulkDeleteObjects(ctx context.Context, body BulkDeleteObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// RegisterObjectsWithBody request with any body
	RegisterObjectsWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	RegisterObjects(ctx context.Context, body RegisterObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetObject request
	GetObject(ctx context.Context, objectId ObjectId, params *GetObjectParams, reqEditors ...RequestEditorFn) (*http.Response, error)

	// OptionsObject request
	OptionsObject(ctx context.Context, objectId ObjectId, reqEditors ...RequestEditorFn) (*http.Response, error)

	// PostObjectWithBody request with any body
	PostObjectWithBody(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	PostObject(ctx context.Context, objectId ObjectId, body PostObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// UpdateObjectAccessMethodsWithBody request with any body
	UpdateObjectAccessMethodsWithBody(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	UpdateObjectAccessMethods(ctx context.Context, objectId string, body UpdateObjectAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetAccessURL request
	GetAccessURL(ctx context.Context, objectId ObjectId, accessId AccessId, reqEditors ...RequestEditorFn) (*http.Response, error)

	// PostAccessURLWithBody request with any body
	PostAccessURLWithBody(ctx context.Context, objectId ObjectId, accessId AccessId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	PostAccessURL(ctx context.Context, objectId ObjectId, accessId AccessId, body PostAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// AddChecksumsWithBody request with any body
	AddChecksumsWithBody(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	AddChecksums(ctx context.Context, objectId string, body AddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// DeleteObjectWithBody request with any body
	DeleteObjectWithBody(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	DeleteObject(ctx context.Context, objectId ObjectId, body DeleteObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)

	// GetServiceInfo request
	GetServiceInfo(ctx context.Context, reqEditors ...RequestEditorFn) (*http.Response, error)

	// PostUploadRequestWithBody request with any body
	PostUploadRequestWithBody(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*http.Response, error)

	PostUploadRequest(ctx context.Context, body PostUploadRequestJSONRequestBody, reqEditors ...RequestEditorFn) (*http.Response, error)
}

The interface specification for the client above.

type ClientOption

type ClientOption func(*Client) error

ClientOption allows setting custom parameters during construction

func WithBaseURL

func WithBaseURL(baseURL string) ClientOption

WithBaseURL overrides the baseURL.

func WithHTTPClient

func WithHTTPClient(doer HttpRequestDoer) ClientOption

WithHTTPClient allows overriding the default Doer, which is automatically created using http.Client. This is useful for tests.

func WithRequestEditorFn

func WithRequestEditorFn(fn RequestEditorFn) ClientOption

WithRequestEditorFn allows setting up a callback function, which will be called right before sending the request. This can be used to mutate the request.

type ClientWithResponses

type ClientWithResponses struct {
	ClientInterface
}

ClientWithResponses builds on ClientInterface to offer response payloads

func NewClientWithResponses

func NewClientWithResponses(server string, opts ...ClientOption) (*ClientWithResponses, error)

NewClientWithResponses creates a new ClientWithResponses, which wraps Client with return type handling

func (*ClientWithResponses) AddChecksumsWithBodyWithResponse added in v0.2.6

func (c *ClientWithResponses) AddChecksumsWithBodyWithResponse(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AddChecksumsResponse, error)

AddChecksumsWithBodyWithResponse request with arbitrary body returning *AddChecksumsResponse

func (*ClientWithResponses) AddChecksumsWithResponse added in v0.2.6

func (c *ClientWithResponses) AddChecksumsWithResponse(ctx context.Context, objectId string, body AddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*AddChecksumsResponse, error)

func (*ClientWithResponses) BulkAddChecksumsWithBodyWithResponse added in v0.2.6

func (c *ClientWithResponses) BulkAddChecksumsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BulkAddChecksumsResponse, error)

BulkAddChecksumsWithBodyWithResponse request with arbitrary body returning *BulkAddChecksumsResponse

func (*ClientWithResponses) BulkAddChecksumsWithResponse added in v0.2.6

func (c *ClientWithResponses) BulkAddChecksumsWithResponse(ctx context.Context, body BulkAddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*BulkAddChecksumsResponse, error)

func (*ClientWithResponses) BulkDeleteObjectsWithBodyWithResponse

func (c *ClientWithResponses) BulkDeleteObjectsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BulkDeleteObjectsResponse, error)

BulkDeleteObjectsWithBodyWithResponse request with arbitrary body returning *BulkDeleteObjectsResponse

func (*ClientWithResponses) BulkDeleteObjectsWithResponse

func (c *ClientWithResponses) BulkDeleteObjectsWithResponse(ctx context.Context, body BulkDeleteObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*BulkDeleteObjectsResponse, error)

func (*ClientWithResponses) BulkUpdateAccessMethodsWithBodyWithResponse

func (c *ClientWithResponses) BulkUpdateAccessMethodsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BulkUpdateAccessMethodsResponse, error)

BulkUpdateAccessMethodsWithBodyWithResponse request with arbitrary body returning *BulkUpdateAccessMethodsResponse

func (*ClientWithResponses) BulkUpdateAccessMethodsWithResponse

func (c *ClientWithResponses) BulkUpdateAccessMethodsWithResponse(ctx context.Context, body BulkUpdateAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*BulkUpdateAccessMethodsResponse, error)

func (*ClientWithResponses) DeleteObjectWithBodyWithResponse

func (c *ClientWithResponses) DeleteObjectWithBodyWithResponse(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DeleteObjectResponse, error)

DeleteObjectWithBodyWithResponse request with arbitrary body returning *DeleteObjectResponse

func (*ClientWithResponses) DeleteObjectWithResponse

func (c *ClientWithResponses) DeleteObjectWithResponse(ctx context.Context, objectId ObjectId, body DeleteObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*DeleteObjectResponse, error)

func (*ClientWithResponses) GetAccessURLWithResponse

func (c *ClientWithResponses) GetAccessURLWithResponse(ctx context.Context, objectId ObjectId, accessId AccessId, reqEditors ...RequestEditorFn) (*GetAccessURLResponse, error)

GetAccessURLWithResponse request returning *GetAccessURLResponse

func (*ClientWithResponses) GetBulkAccessURLWithBodyWithResponse

func (c *ClientWithResponses) GetBulkAccessURLWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*GetBulkAccessURLResponse, error)

GetBulkAccessURLWithBodyWithResponse request with arbitrary body returning *GetBulkAccessURLResponse

func (*ClientWithResponses) GetBulkAccessURLWithResponse

func (c *ClientWithResponses) GetBulkAccessURLWithResponse(ctx context.Context, body GetBulkAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*GetBulkAccessURLResponse, error)

func (*ClientWithResponses) GetBulkObjectsWithBodyWithResponse

func (c *ClientWithResponses) GetBulkObjectsWithBodyWithResponse(ctx context.Context, params *GetBulkObjectsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*GetBulkObjectsResponse, error)

GetBulkObjectsWithBodyWithResponse request with arbitrary body returning *GetBulkObjectsResponse

func (*ClientWithResponses) GetBulkObjectsWithResponse

func (c *ClientWithResponses) GetBulkObjectsWithResponse(ctx context.Context, params *GetBulkObjectsParams, body GetBulkObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*GetBulkObjectsResponse, error)

func (*ClientWithResponses) GetObjectWithResponse

func (c *ClientWithResponses) GetObjectWithResponse(ctx context.Context, objectId ObjectId, params *GetObjectParams, reqEditors ...RequestEditorFn) (*GetObjectResponse, error)

GetObjectWithResponse request returning *GetObjectResponse

func (*ClientWithResponses) GetObjectsByChecksumWithResponse

func (c *ClientWithResponses) GetObjectsByChecksumWithResponse(ctx context.Context, checksumParameter ChecksumParameter, reqEditors ...RequestEditorFn) (*GetObjectsByChecksumResponse, error)

GetObjectsByChecksumWithResponse request returning *GetObjectsByChecksumResponse

func (*ClientWithResponses) GetServiceInfoWithResponse

func (c *ClientWithResponses) GetServiceInfoWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetServiceInfoResponse, error)

GetServiceInfoWithResponse request returning *GetServiceInfoResponse

func (*ClientWithResponses) OptionsBulkObjectWithResponse

func (c *ClientWithResponses) OptionsBulkObjectWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*OptionsBulkObjectResponse, error)

OptionsBulkObjectWithResponse request returning *OptionsBulkObjectResponse

func (*ClientWithResponses) OptionsObjectWithResponse

func (c *ClientWithResponses) OptionsObjectWithResponse(ctx context.Context, objectId ObjectId, reqEditors ...RequestEditorFn) (*OptionsObjectResponse, error)

OptionsObjectWithResponse request returning *OptionsObjectResponse

func (*ClientWithResponses) PostAccessURLWithBodyWithResponse

func (c *ClientWithResponses) PostAccessURLWithBodyWithResponse(ctx context.Context, objectId ObjectId, accessId AccessId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostAccessURLResponse, error)

PostAccessURLWithBodyWithResponse request with arbitrary body returning *PostAccessURLResponse

func (*ClientWithResponses) PostAccessURLWithResponse

func (c *ClientWithResponses) PostAccessURLWithResponse(ctx context.Context, objectId ObjectId, accessId AccessId, body PostAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*PostAccessURLResponse, error)

func (*ClientWithResponses) PostObjectWithBodyWithResponse

func (c *ClientWithResponses) PostObjectWithBodyWithResponse(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostObjectResponse, error)

PostObjectWithBodyWithResponse request with arbitrary body returning *PostObjectResponse

func (*ClientWithResponses) PostObjectWithResponse

func (c *ClientWithResponses) PostObjectWithResponse(ctx context.Context, objectId ObjectId, body PostObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*PostObjectResponse, error)

func (*ClientWithResponses) PostUploadRequestWithBodyWithResponse

func (c *ClientWithResponses) PostUploadRequestWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostUploadRequestResponse, error)

PostUploadRequestWithBodyWithResponse request with arbitrary body returning *PostUploadRequestResponse

func (*ClientWithResponses) PostUploadRequestWithResponse

func (c *ClientWithResponses) PostUploadRequestWithResponse(ctx context.Context, body PostUploadRequestJSONRequestBody, reqEditors ...RequestEditorFn) (*PostUploadRequestResponse, error)

func (*ClientWithResponses) RegisterObjectsWithBodyWithResponse

func (c *ClientWithResponses) RegisterObjectsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*RegisterObjectsResponse, error)

RegisterObjectsWithBodyWithResponse request with arbitrary body returning *RegisterObjectsResponse

func (*ClientWithResponses) RegisterObjectsWithResponse

func (c *ClientWithResponses) RegisterObjectsWithResponse(ctx context.Context, body RegisterObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*RegisterObjectsResponse, error)

func (*ClientWithResponses) UpdateObjectAccessMethodsWithBodyWithResponse

func (c *ClientWithResponses) UpdateObjectAccessMethodsWithBodyWithResponse(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateObjectAccessMethodsResponse, error)

UpdateObjectAccessMethodsWithBodyWithResponse request with arbitrary body returning *UpdateObjectAccessMethodsResponse

func (*ClientWithResponses) UpdateObjectAccessMethodsWithResponse

func (c *ClientWithResponses) UpdateObjectAccessMethodsWithResponse(ctx context.Context, objectId string, body UpdateObjectAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateObjectAccessMethodsResponse, error)

type ClientWithResponsesInterface

type ClientWithResponsesInterface interface {
	// OptionsBulkObjectWithResponse request
	OptionsBulkObjectWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*OptionsBulkObjectResponse, error)

	// GetBulkObjectsWithBodyWithResponse request with any body
	GetBulkObjectsWithBodyWithResponse(ctx context.Context, params *GetBulkObjectsParams, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*GetBulkObjectsResponse, error)

	GetBulkObjectsWithResponse(ctx context.Context, params *GetBulkObjectsParams, body GetBulkObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*GetBulkObjectsResponse, error)

	// GetBulkAccessURLWithBodyWithResponse request with any body
	GetBulkAccessURLWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*GetBulkAccessURLResponse, error)

	GetBulkAccessURLWithResponse(ctx context.Context, body GetBulkAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*GetBulkAccessURLResponse, error)

	// BulkUpdateAccessMethodsWithBodyWithResponse request with any body
	BulkUpdateAccessMethodsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BulkUpdateAccessMethodsResponse, error)

	BulkUpdateAccessMethodsWithResponse(ctx context.Context, body BulkUpdateAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*BulkUpdateAccessMethodsResponse, error)

	// GetObjectsByChecksumWithResponse request
	GetObjectsByChecksumWithResponse(ctx context.Context, checksumParameter ChecksumParameter, reqEditors ...RequestEditorFn) (*GetObjectsByChecksumResponse, error)

	// BulkAddChecksumsWithBodyWithResponse request with any body
	BulkAddChecksumsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BulkAddChecksumsResponse, error)

	BulkAddChecksumsWithResponse(ctx context.Context, body BulkAddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*BulkAddChecksumsResponse, error)

	// BulkDeleteObjectsWithBodyWithResponse request with any body
	BulkDeleteObjectsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*BulkDeleteObjectsResponse, error)

	BulkDeleteObjectsWithResponse(ctx context.Context, body BulkDeleteObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*BulkDeleteObjectsResponse, error)

	// RegisterObjectsWithBodyWithResponse request with any body
	RegisterObjectsWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*RegisterObjectsResponse, error)

	RegisterObjectsWithResponse(ctx context.Context, body RegisterObjectsJSONRequestBody, reqEditors ...RequestEditorFn) (*RegisterObjectsResponse, error)

	// GetObjectWithResponse request
	GetObjectWithResponse(ctx context.Context, objectId ObjectId, params *GetObjectParams, reqEditors ...RequestEditorFn) (*GetObjectResponse, error)

	// OptionsObjectWithResponse request
	OptionsObjectWithResponse(ctx context.Context, objectId ObjectId, reqEditors ...RequestEditorFn) (*OptionsObjectResponse, error)

	// PostObjectWithBodyWithResponse request with any body
	PostObjectWithBodyWithResponse(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostObjectResponse, error)

	PostObjectWithResponse(ctx context.Context, objectId ObjectId, body PostObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*PostObjectResponse, error)

	// UpdateObjectAccessMethodsWithBodyWithResponse request with any body
	UpdateObjectAccessMethodsWithBodyWithResponse(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*UpdateObjectAccessMethodsResponse, error)

	UpdateObjectAccessMethodsWithResponse(ctx context.Context, objectId string, body UpdateObjectAccessMethodsJSONRequestBody, reqEditors ...RequestEditorFn) (*UpdateObjectAccessMethodsResponse, error)

	// GetAccessURLWithResponse request
	GetAccessURLWithResponse(ctx context.Context, objectId ObjectId, accessId AccessId, reqEditors ...RequestEditorFn) (*GetAccessURLResponse, error)

	// PostAccessURLWithBodyWithResponse request with any body
	PostAccessURLWithBodyWithResponse(ctx context.Context, objectId ObjectId, accessId AccessId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostAccessURLResponse, error)

	PostAccessURLWithResponse(ctx context.Context, objectId ObjectId, accessId AccessId, body PostAccessURLJSONRequestBody, reqEditors ...RequestEditorFn) (*PostAccessURLResponse, error)

	// AddChecksumsWithBodyWithResponse request with any body
	AddChecksumsWithBodyWithResponse(ctx context.Context, objectId string, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*AddChecksumsResponse, error)

	AddChecksumsWithResponse(ctx context.Context, objectId string, body AddChecksumsJSONRequestBody, reqEditors ...RequestEditorFn) (*AddChecksumsResponse, error)

	// DeleteObjectWithBodyWithResponse request with any body
	DeleteObjectWithBodyWithResponse(ctx context.Context, objectId ObjectId, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*DeleteObjectResponse, error)

	DeleteObjectWithResponse(ctx context.Context, objectId ObjectId, body DeleteObjectJSONRequestBody, reqEditors ...RequestEditorFn) (*DeleteObjectResponse, error)

	// GetServiceInfoWithResponse request
	GetServiceInfoWithResponse(ctx context.Context, reqEditors ...RequestEditorFn) (*GetServiceInfoResponse, error)

	// PostUploadRequestWithBodyWithResponse request with any body
	PostUploadRequestWithBodyWithResponse(ctx context.Context, contentType string, body io.Reader, reqEditors ...RequestEditorFn) (*PostUploadRequestResponse, error)

	PostUploadRequestWithResponse(ctx context.Context, body PostUploadRequestJSONRequestBody, reqEditors ...RequestEditorFn) (*PostUploadRequestResponse, error)
}

ClientWithResponsesInterface is the interface specification for the client with responses above.

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 DeleteObjectJSONRequestBody

type DeleteObjectJSONRequestBody = DeleteRequest

DeleteObjectJSONRequestBody defines body for DeleteObject for application/json ContentType.

type DeleteObjectResponse

type DeleteObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON400      *N400BadRequestDelete
	JSON401      *N401Unauthorized
	JSON403      *N403ForbiddenDelete
	JSON404      *N404NotFoundDelete
	JSON500      *N500InternalServerError
}

func ParseDeleteObjectResponse

func ParseDeleteObjectResponse(rsp *http.Response) (*DeleteObjectResponse, error)

ParseDeleteObjectResponse parses an HTTP response from a DeleteObjectWithResponse call

func (DeleteObjectResponse) Status

func (r DeleteObjectResponse) Status() string

Status returns HTTPResponse.Status

func (DeleteObjectResponse) StatusCode

func (r DeleteObjectResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type DeleteRequest

type DeleteRequest struct {
	// DeleteObjectMetadata If true, permanently remove the DRS object metadata record. The object ID will no longer resolve and cannot be recovered. If false (default), the server marks the object as deleted but preserves the metadata record, enabling potential recovery. Read and access endpoints return 410 Gone for objects in this state. Servers that support this mode advertise metadataRetentionSupported in service-info. Only applicable when the server advertises deleteSupported in service-info. Servers that do not support metadata retention SHOULD silently ignore this parameter and permanently delete metadata regardless of the value provided.
	DeleteObjectMetadata *bool `json:"delete_object_metadata,omitempty"`

	// DeleteStorageData If true, the server attempts to delete the underlying storage data (follows server's deleteStorageDataSupported capability). If false (default), underlying storage data is preserved. This parameter is independent of delete_object_metadata and controls only the storage layer. Clients must explicitly set this to true to enable storage data deletion, ensuring intentional choice for this potentially destructive operation. Only applicable when the server advertises deleteSupported in service-info.
	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"`

	// ControlledAccess A list of authorization claims representing controlled-access
	// requirements for this `DrsObject`.
	//
	// Claims SHOULD be represented as strings using URL claim semantics
	// compatible with GA4GH Passport visa claim values:
	// https://github.com/ga4gh-duri/ga4gh-duri.github.io/blob/master/researcher_ids/ga4gh_passport_v1.md#url-claims
	//
	// If this field is missing or empty, the `DrsObject` MUST be treated as
	// open access for read operations.
	//
	// This field is required for write operations.
	ControlledAccess *[]string `json:"controlled_access,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"`

	// ControlledAccess A list of authorization claims representing controlled-access
	// requirements to assign to the registered `DrsObject`.
	//
	// Claims SHOULD be represented as strings using URL claim semantics
	// compatible with GA4GH Passport visa claim values:
	// https://github.com/ga4gh-duri/ga4gh-duri.github.io/blob/master/researcher_ids/ga4gh_passport_v1.md#url-claims
	//
	// During `/objects/register`, the server SHOULD verify that the supplied
	// Passport or bearer token authorizes the caller to assign these claims.
	//
	// If this field is missing or empty, the resulting `DrsObject` MUST be
	// treated as open access for read operations.
	//
	// This field is required for write operations.
	ControlledAccess *[]string `json:"controlled_access,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"`

		// ChecksumAdditionSupported Indicates whether this DRS server supports adding new checksums for for existing objects. If true, clients can update access methods using `/objects/{object_id}/checksums` and `/objects/checksums` endpoints. If false or missing, the server does not support checksum addition.
		ChecksumAdditionSupported *bool `json:"checksumAdditionSupported,omitempty"`

		// ControlledAccessClaimFormat Describes the expected format for entries in the `controlled_access` array. The value `ga4gh-passport-url-claim` indicates that claims are represented as strings using URL claim semantics compatible with GA4GH Passport visa claim values.
		ControlledAccessClaimFormat *DrsServiceDrsControlledAccessClaimFormat `json:"controlledAccessClaimFormat,omitempty"`

		// ControlledAccessDefault Describes how the service interprets a missing or empty `controlled_access` array. The value `open-access-read` means that if `controlled_access` is missing or empty, the `DrsObject` is treated as open access for read operations.
		ControlledAccessDefault *DrsServiceDrsControlledAccessDefault `json:"controlledAccessDefault,omitempty"`

		// ControlledAccessSupported Indicates whether this DRS server supports the `controlled_access` field on `DrsObject` and `DrsObjectCandidate`. If true, clients may include controlled-access claims when registering objects and may expect returned `DrsObject` resources to include controlled-access claims when applicable. If false or missing, the server does not advertise support for controlled-access claims.
		ControlledAccessSupported *bool `json:"controlledAccessSupported,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 PUT 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"`

		// FetchByChecksumSupported Indicates whether this DRS server supports fetching objects by checksum. If true, clients can fetch DRS objects using `/objects/checksum/{checksum}`, noting that it is possible for  multiple objects to have the same checksum. If false or missing, the server does not support fetching by cejcsum.
		FetchByChecksumSupported *bool `json:"fetchByChecksumSupported,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"`

		// MaxBulkChecksumAdditionLength Maximum number of objects that can be updated in a single bulk checksum addition request. Only present when checksumAdditionSupported is true. If not specified, defaults to maxBulkRequestLength.
		MaxBulkChecksumAdditionLength *int `json:"maxBulkChecksumAdditionLength,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"`

		// MetadataRetentionSupported Indicates whether this DRS server supports preserving object metadata after deletion. If true, the server honours `delete_object_metadata: false` in delete requests by marking the object as deleted rather than permanently removing it. Read and access endpoints return 410 Gone for objects in this state. Only present when deleteSupported is true.
		MetadataRetentionSupported *bool `json:"metadataRetentionSupported,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"`

		// SupportedUploadMethodTypes 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
		SupportedUploadMethodTypes *[]DrsServiceDrsSupportedUploadMethodTypes `json:"supportedUploadMethodTypes,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"`

		// ValidateAccessMethods Indicates whether this DRS server validates access methods by following the URLs to check that they resolve to the expected objects  (e.g. by checking that the file sizes and checksums match) If true, the server will attempt to verify checksums/content before accepting access methods. If false or missing, the server trusts client-provided access methods without validation. Only present when at least one of objectRegistrationSupported or accessMethodUpdateSupported are true.
		ValidateAccessMethods *bool `json:"validateAccessMethods,omitempty"`

		// ValidateChecksums Indicates whether this DRS server validates file checksums against the provided metadata. If true, the server will verify that uploaded and registered files match their declared checksums and may reject objects with mismatches. If false or missing, the server does not perform checksum validation and relies on client-provided metadata. Only present when at least one of uploadRequestSupported or objectRegistrationSupported or checksumAdditionSupported are true.
		ValidateChecksums *bool `json:"validateChecksums,omitempty"`

		// ValidateFileSizes Indicates whether this DRS server validates 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.
		ValidateFileSizes *bool `json:"validateFileSizes,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 DrsServiceDrsControlledAccessClaimFormat added in v0.2.6

type DrsServiceDrsControlledAccessClaimFormat string

DrsServiceDrsControlledAccessClaimFormat Describes the expected format for entries in the `controlled_access` array. The value `ga4gh-passport-url-claim` indicates that claims are represented as strings using URL claim semantics compatible with GA4GH Passport visa claim values.

const (
	Ga4ghPassportUrlClaim DrsServiceDrsControlledAccessClaimFormat = "ga4gh-passport-url-claim"
)

Defines values for DrsServiceDrsControlledAccessClaimFormat.

type DrsServiceDrsControlledAccessDefault added in v0.2.6

type DrsServiceDrsControlledAccessDefault string

DrsServiceDrsControlledAccessDefault Describes how the service interprets a missing or empty `controlled_access` array. The value `open-access-read` means that if `controlled_access` is missing or empty, the `DrsObject` is treated as open access for read operations.

const (
	OpenAccessRead DrsServiceDrsControlledAccessDefault = "open-access-read"
)

Defines values for DrsServiceDrsControlledAccessDefault.

type DrsServiceDrsSupportedUploadMethodTypes added in v0.2.6

type DrsServiceDrsSupportedUploadMethodTypes string

DrsServiceDrsSupportedUploadMethodTypes defines model for DrsService.Drs.SupportedUploadMethodTypes.

const (
	DrsServiceDrsSupportedUploadMethodTypesFtp   DrsServiceDrsSupportedUploadMethodTypes = "ftp"
	DrsServiceDrsSupportedUploadMethodTypesGs    DrsServiceDrsSupportedUploadMethodTypes = "gs"
	DrsServiceDrsSupportedUploadMethodTypesHttps DrsServiceDrsSupportedUploadMethodTypes = "https"
	DrsServiceDrsSupportedUploadMethodTypesS3    DrsServiceDrsSupportedUploadMethodTypes = "s3"
	DrsServiceDrsSupportedUploadMethodTypesSftp  DrsServiceDrsSupportedUploadMethodTypes = "sftp"
)

Defines values for DrsServiceDrsSupportedUploadMethodTypes.

type DrsServiceTypeArtifact

type DrsServiceTypeArtifact string

DrsServiceTypeArtifact defines model for DrsService.Type.Artifact.

const (
	Drs DrsServiceTypeArtifact = "drs"
)

Defines values for DrsServiceTypeArtifact.

type Error

type Error struct {
	// Msg A detailed error message.
	Msg *string `json:"msg,omitempty"`

	// StatusCode The integer representing the HTTP status code (e.g. 200, 404).
	StatusCode *int `json:"status_code,omitempty"`
}

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

type Expand

type Expand = bool

Expand defines model for Expand.

type GetAccessURLResponse

type GetAccessURLResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkAccess
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundAccess
	JSON500      *N500InternalServerError
}

func ParseGetAccessURLResponse

func ParseGetAccessURLResponse(rsp *http.Response) (*GetAccessURLResponse, error)

ParseGetAccessURLResponse parses an HTTP response from a GetAccessURLWithResponse call

func (GetAccessURLResponse) Status

func (r GetAccessURLResponse) Status() string

Status returns HTTPResponse.Status

func (GetAccessURLResponse) StatusCode

func (r GetAccessURLResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetBulkAccessURLJSONRequestBody

type GetBulkAccessURLJSONRequestBody = BulkObjectAccessId

GetBulkAccessURLJSONRequestBody defines body for GetBulkAccessURL for application/json ContentType.

type GetBulkAccessURLResponse

type GetBulkAccessURLResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkAccesses
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundAccess
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseGetBulkAccessURLResponse

func ParseGetBulkAccessURLResponse(rsp *http.Response) (*GetBulkAccessURLResponse, error)

ParseGetBulkAccessURLResponse parses an HTTP response from a GetBulkAccessURLWithResponse call

func (GetBulkAccessURLResponse) Status

func (r GetBulkAccessURLResponse) Status() string

Status returns HTTPResponse.Status

func (GetBulkAccessURLResponse) StatusCode

func (r GetBulkAccessURLResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

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 GetBulkObjectsResponse

type GetBulkObjectsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkDrsObjects
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundDrsObject
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseGetBulkObjectsResponse

func ParseGetBulkObjectsResponse(rsp *http.Response) (*GetBulkObjectsResponse, error)

ParseGetBulkObjectsResponse parses an HTTP response from a GetBulkObjectsWithResponse call

func (GetBulkObjectsResponse) Status

func (r GetBulkObjectsResponse) Status() string

Status returns HTTPResponse.Status

func (GetBulkObjectsResponse) StatusCode

func (r GetBulkObjectsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

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 GetObjectResponse

type GetObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkDrsObject
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundDrsObject
	JSON500      *N500InternalServerError
}

func ParseGetObjectResponse

func ParseGetObjectResponse(rsp *http.Response) (*GetObjectResponse, error)

ParseGetObjectResponse parses an HTTP response from a GetObjectWithResponse call

func (GetObjectResponse) Status

func (r GetObjectResponse) Status() string

Status returns HTTPResponse.Status

func (GetObjectResponse) StatusCode

func (r GetObjectResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetObjectsByChecksumResponse

type GetObjectsByChecksumResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkDrsObjects
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundDrsObject
	JSON500      *N500InternalServerError
}

func ParseGetObjectsByChecksumResponse

func ParseGetObjectsByChecksumResponse(rsp *http.Response) (*GetObjectsByChecksumResponse, error)

ParseGetObjectsByChecksumResponse parses an HTTP response from a GetObjectsByChecksumWithResponse call

func (GetObjectsByChecksumResponse) Status

Status returns HTTPResponse.Status

func (GetObjectsByChecksumResponse) StatusCode

func (r GetObjectsByChecksumResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type GetServiceInfo200DrsControlledAccessClaimFormat added in v0.2.6

type GetServiceInfo200DrsControlledAccessClaimFormat string

type GetServiceInfo200DrsControlledAccessDefault added in v0.2.6

type GetServiceInfo200DrsControlledAccessDefault string

type GetServiceInfo200DrsSupportedUploadMethodTypes added in v0.2.6

type GetServiceInfo200DrsSupportedUploadMethodTypes string

type GetServiceInfo200TypeArtifact

type GetServiceInfo200TypeArtifact string

type GetServiceInfoResponse

type GetServiceInfoResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200ServiceInfo
	JSON500      *N500InternalServerError
}

func ParseGetServiceInfoResponse

func ParseGetServiceInfoResponse(rsp *http.Response) (*GetServiceInfoResponse, error)

ParseGetServiceInfoResponse parses an HTTP response from a GetServiceInfoWithResponse call

func (GetServiceInfoResponse) Status

func (r GetServiceInfoResponse) Status() string

Status returns HTTPResponse.Status

func (GetServiceInfoResponse) StatusCode

func (r GetServiceInfoResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type HttpRequestDoer

type HttpRequestDoer interface {
	Do(req *http.Request) (*http.Response, error)
}

Doer performs HTTP requests.

The standard http.Client implements this interface.

type N200AccessMethodUpdate

type N200AccessMethodUpdate = DrsObject

N200AccessMethodUpdate defines model for 200AccessMethodUpdate.

type N200BulkAccessMethodUpdate

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

N200BulkAccessMethodUpdate defines model for 200BulkAccessMethodUpdate.

type N200BulkChecksumAddition added in v0.2.6

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

N200BulkChecksumAddition defines model for 200BulkChecksumAddition.

type N200ChecksumAddition added in v0.2.6

type N200ChecksumAddition = DrsObject

N200ChecksumAddition defines model for 200ChecksumAddition.

type N200OkAccess

type N200OkAccess = AccessURL

N200OkAccess defines model for 200OkAccess.

type N200OkAccesses

type N200OkAccesses struct {
	ResolvedDrsObjectAccessUrls *[]BulkAccessURL `json:"resolved_drs_object_access_urls,omitempty"`

	// Summary A summary of what was resolved.
	Summary *Summary `json:"summary,omitempty"`

	// UnresolvedDrsObjects Error codes for each unresolved drs objects.
	UnresolvedDrsObjects *Unresolved `json:"unresolved_drs_objects,omitempty"`
}

N200OkAccesses defines model for 200OkAccesses.

type N200OkAuthorizations

type N200OkAuthorizations = Authorizations

N200OkAuthorizations defines model for 200OkAuthorizations.

type N200OkBulkAuthorizations

type N200OkBulkAuthorizations struct {
	ResolvedDrsObject *[]Authorizations `json:"resolved_drs_object,omitempty"`

	// Summary A summary of what was resolved.
	Summary *Summary `json:"summary,omitempty"`

	// UnresolvedDrsObjects Error codes for each unresolved drs objects.
	UnresolvedDrsObjects *Unresolved `json:"unresolved_drs_objects,omitempty"`
}

N200OkBulkAuthorizations defines model for 200OkBulkAuthorizations.

type N200OkDrsObject

type N200OkDrsObject = DrsObject

N200OkDrsObject defines model for 200OkDrsObject.

type N200OkDrsObjects

type N200OkDrsObjects struct {
	ResolvedDrsObject *[]DrsObject `json:"resolved_drs_object,omitempty"`

	// Summary A summary of what was resolved.
	Summary *Summary `json:"summary,omitempty"`

	// UnresolvedDrsObjects Error codes for each unresolved drs objects.
	UnresolvedDrsObjects *Unresolved `json:"unresolved_drs_objects,omitempty"`
}

N200OkDrsObjects defines model for 200OkDrsObjects.

type N200ServiceInfo

type N200ServiceInfo struct {
	// ContactUrl URL of the contact for the provider of this service, e.g. a link to a contact form (RFC 3986 format), or an email (RFC 2368 format).
	ContactUrl *string `json:"contactUrl,omitempty"`

	// CreatedAt Timestamp describing when the service was first deployed and available (RFC 3339 format)
	CreatedAt *time.Time `json:"createdAt,omitempty"`

	// Description Description of the service. Should be human readable and provide information about the service.
	Description *string `json:"description,omitempty"`

	// DocumentationUrl URL of the documentation of this service (RFC 3986 format). This should help someone learn how to use your service, including any specifics required to access data, e.g. authentication.
	DocumentationUrl *string `json:"documentationUrl,omitempty"`
	Drs              *struct {
		// AccessMethodUpdateSupported Indicates whether this DRS server supports updating access methods for existing objects. If true, clients can update access methods using `/objects/{object_id}/access-methods` and `/objects/access-methods` endpoints. If false or missing, the server does not support access method updates.
		AccessMethodUpdateSupported *bool `json:"accessMethodUpdateSupported,omitempty"`

		// ChecksumAdditionSupported Indicates whether this DRS server supports adding new checksums for for existing objects. If true, clients can update access methods using `/objects/{object_id}/checksums` and `/objects/checksums` endpoints. If false or missing, the server does not support checksum addition.
		ChecksumAdditionSupported *bool `json:"checksumAdditionSupported,omitempty"`

		// ControlledAccessClaimFormat Describes the expected format for entries in the `controlled_access` array. The value `ga4gh-passport-url-claim` indicates that claims are represented as strings using URL claim semantics compatible with GA4GH Passport visa claim values.
		ControlledAccessClaimFormat *N200ServiceInfoDrsControlledAccessClaimFormat `json:"controlledAccessClaimFormat,omitempty"`

		// ControlledAccessDefault Describes how the service interprets a missing or empty `controlled_access` array. The value `open-access-read` means that if `controlled_access` is missing or empty, the `DrsObject` is treated as open access for read operations.
		ControlledAccessDefault *N200ServiceInfoDrsControlledAccessDefault `json:"controlledAccessDefault,omitempty"`

		// ControlledAccessSupported Indicates whether this DRS server supports the `controlled_access` field on `DrsObject` and `DrsObjectCandidate`. If true, clients may include controlled-access claims when registering objects and may expect returned `DrsObject` resources to include controlled-access claims when applicable. If false or missing, the server does not advertise support for controlled-access claims.
		ControlledAccessSupported *bool `json:"controlledAccessSupported,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 PUT 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"`

		// FetchByChecksumSupported Indicates whether this DRS server supports fetching objects by checksum. If true, clients can fetch DRS objects using `/objects/checksum/{checksum}`, noting that it is possible for  multiple objects to have the same checksum. If false or missing, the server does not support fetching by cejcsum.
		FetchByChecksumSupported *bool `json:"fetchByChecksumSupported,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"`

		// MaxBulkChecksumAdditionLength Maximum number of objects that can be updated in a single bulk checksum addition request. Only present when checksumAdditionSupported is true. If not specified, defaults to maxBulkRequestLength.
		MaxBulkChecksumAdditionLength *int `json:"maxBulkChecksumAdditionLength,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"`

		// MetadataRetentionSupported Indicates whether this DRS server supports preserving object metadata after deletion. If true, the server honours `delete_object_metadata: false` in delete requests by marking the object as deleted rather than permanently removing it. Read and access endpoints return 410 Gone for objects in this state. Only present when deleteSupported is true.
		MetadataRetentionSupported *bool `json:"metadataRetentionSupported,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"`

		// SupportedUploadMethodTypes 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
		SupportedUploadMethodTypes *[]N200ServiceInfoDrsSupportedUploadMethodTypes `json:"supportedUploadMethodTypes,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"`

		// ValidateAccessMethods Indicates whether this DRS server validates access methods by following the URLs to check that they resolve to the expected objects  (e.g. by checking that the file sizes and checksums match) If true, the server will attempt to verify checksums/content before accepting access methods. If false or missing, the server trusts client-provided access methods without validation. Only present when at least one of objectRegistrationSupported or accessMethodUpdateSupported are true.
		ValidateAccessMethods *bool `json:"validateAccessMethods,omitempty"`

		// ValidateChecksums Indicates whether this DRS server validates file checksums against the provided metadata. If true, the server will verify that uploaded and registered files match their declared checksums and may reject objects with mismatches. If false or missing, the server does not perform checksum validation and relies on client-provided metadata. Only present when at least one of uploadRequestSupported or objectRegistrationSupported or checksumAdditionSupported are true.
		ValidateChecksums *bool `json:"validateChecksums,omitempty"`

		// ValidateFileSizes Indicates whether this DRS server validates 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.
		ValidateFileSizes *bool `json:"validateFileSizes,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 N200ServiceInfoDrsControlledAccessClaimFormat added in v0.2.6

type N200ServiceInfoDrsControlledAccessClaimFormat = DrsServiceDrsControlledAccessClaimFormat

Compatibility aliases for generator-emitted service-info field names.

type N200ServiceInfoDrsControlledAccessDefault added in v0.2.6

type N200ServiceInfoDrsControlledAccessDefault = DrsServiceDrsControlledAccessDefault

type N200ServiceInfoDrsSupportedUploadMethodTypes added in v0.2.6

type N200ServiceInfoDrsSupportedUploadMethodTypes = DrsServiceDrsSupportedUploadMethodTypes

type N200ServiceInfoTypeArtifact

type N200ServiceInfoTypeArtifact = DrsServiceTypeArtifact

type N200UploadRequest

type N200UploadRequest = UploadResponse

N200UploadRequest defines model for 200UploadRequest.

type N201ObjectsCreated

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

N201ObjectsCreated defines model for 201ObjectsCreated.

type N400BadRequest

type N400BadRequest = Error

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

type N400BadRequestDelete

type N400BadRequestDelete = Error

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

type N401Unauthorized

type N401Unauthorized = Error

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

type N403Forbidden

type N403Forbidden = Error

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

type N403ForbiddenDelete

type N403ForbiddenDelete = Error

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

type N404NotFoundAccess

type N404NotFoundAccess = Error

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

type N404NotFoundDelete

type N404NotFoundDelete = Error

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

type N404NotFoundDrsObject

type N404NotFoundDrsObject = Error

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

type N413RequestTooLarge

type N413RequestTooLarge = Error

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

type N500InternalServerError

type N500InternalServerError = Error

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

type ObjectId

type ObjectId = string

ObjectId defines model for ObjectId.

type OptionsBulkObjectResponse

type OptionsBulkObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkBulkAuthorizations
	JSON400      *N400BadRequest
	JSON404      *N404NotFoundDrsObject
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseOptionsBulkObjectResponse

func ParseOptionsBulkObjectResponse(rsp *http.Response) (*OptionsBulkObjectResponse, error)

ParseOptionsBulkObjectResponse parses an HTTP response from a OptionsBulkObjectWithResponse call

func (OptionsBulkObjectResponse) Status

func (r OptionsBulkObjectResponse) Status() string

Status returns HTTPResponse.Status

func (OptionsBulkObjectResponse) StatusCode

func (r OptionsBulkObjectResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type OptionsObjectResponse

type OptionsObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkAuthorizations
	JSON400      *N400BadRequest
	JSON404      *N404NotFoundDrsObject
	JSON500      *N500InternalServerError
}

func ParseOptionsObjectResponse

func ParseOptionsObjectResponse(rsp *http.Response) (*OptionsObjectResponse, error)

ParseOptionsObjectResponse parses an HTTP response from a OptionsObjectWithResponse call

func (OptionsObjectResponse) Status

func (r OptionsObjectResponse) Status() string

Status returns HTTPResponse.Status

func (OptionsObjectResponse) StatusCode

func (r OptionsObjectResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type Passports

type Passports struct {
	// Passports the encoded JWT GA4GH Passport that contains embedded Visas.  The overall JWT is signed as are the individual Passport Visas.
	Passports *[]string `json:"passports,omitempty"`
}

Passports defines model for Passports.

type PostAccessURLJSONBody

type PostAccessURLJSONBody struct {
	// Passports the encoded JWT GA4GH Passport that contains embedded Visas.  The overall JWT is signed as are the individual Passport Visas.
	Passports *[]string `json:"passports,omitempty"`
}

PostAccessURLJSONBody defines parameters for PostAccessURL.

type PostAccessURLJSONRequestBody

type PostAccessURLJSONRequestBody PostAccessURLJSONBody

PostAccessURLJSONRequestBody defines body for PostAccessURL for application/json ContentType.

type PostAccessURLResponse

type PostAccessURLResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkAccess
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundAccess
	JSON500      *N500InternalServerError
}

func ParsePostAccessURLResponse

func ParsePostAccessURLResponse(rsp *http.Response) (*PostAccessURLResponse, error)

ParsePostAccessURLResponse parses an HTTP response from a PostAccessURLWithResponse call

func (PostAccessURLResponse) Status

func (r PostAccessURLResponse) Status() string

Status returns HTTPResponse.Status

func (PostAccessURLResponse) StatusCode

func (r PostAccessURLResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

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 PostObjectResponse

type PostObjectResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200OkDrsObject
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundAccess
	JSON500      *N500InternalServerError
}

func ParsePostObjectResponse

func ParsePostObjectResponse(rsp *http.Response) (*PostObjectResponse, error)

ParsePostObjectResponse parses an HTTP response from a PostObjectWithResponse call

func (PostObjectResponse) Status

func (r PostObjectResponse) Status() string

Status returns HTTPResponse.Status

func (PostObjectResponse) StatusCode

func (r PostObjectResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type PostUploadRequestJSONRequestBody

type PostUploadRequestJSONRequestBody = UploadRequest

PostUploadRequestJSONRequestBody defines body for PostUploadRequest for application/json ContentType.

type PostUploadRequestResponse

type PostUploadRequestResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200UploadRequest
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON500      *N500InternalServerError
}

func ParsePostUploadRequestResponse

func ParsePostUploadRequestResponse(rsp *http.Response) (*PostUploadRequestResponse, error)

ParsePostUploadRequestResponse parses an HTTP response from a PostUploadRequestWithResponse call

func (PostUploadRequestResponse) Status

func (r PostUploadRequestResponse) Status() string

Status returns HTTPResponse.Status

func (PostUploadRequestResponse) StatusCode

func (r PostUploadRequestResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

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 RegisterObjectsResponse

type RegisterObjectsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON201      *N201ObjectsCreated
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON413      *N413RequestTooLarge
	JSON500      *N500InternalServerError
}

func ParseRegisterObjectsResponse

func ParseRegisterObjectsResponse(rsp *http.Response) (*RegisterObjectsResponse, error)

ParseRegisterObjectsResponse parses an HTTP response from a RegisterObjectsWithResponse call

func (RegisterObjectsResponse) Status

func (r RegisterObjectsResponse) Status() string

Status returns HTTPResponse.Status

func (RegisterObjectsResponse) StatusCode

func (r RegisterObjectsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

type RequestEditorFn

type RequestEditorFn func(ctx context.Context, req *http.Request) error

RequestEditorFn is the function signature for the RequestEditor callback function

type Service

type Service struct {
	// ContactUrl URL of the contact for the provider of this service, e.g. a link to a contact form (RFC 3986 format), or an email (RFC 2368 format).
	ContactUrl *string `json:"contactUrl,omitempty"`

	// CreatedAt Timestamp describing when the service was first deployed and available (RFC 3339 format)
	CreatedAt *time.Time `json:"createdAt,omitempty"`

	// Description Description of the service. Should be human readable and provide information about the service.
	Description *string `json:"description,omitempty"`

	// DocumentationUrl URL of the documentation of this service (RFC 3986 format). This should help someone learn how to use your service, including any specifics required to access data, e.g. authentication.
	DocumentationUrl *string `json:"documentationUrl,omitempty"`

	// Environment Environment the service is running in. Use this to distinguish between production, development and testing/staging deployments. Suggested values are prod, test, dev, staging. However this is advised and not enforced.
	Environment *string `json:"environment,omitempty"`

	// Id Unique ID of this service. Reverse domain name notation is recommended, though not required. The identifier should attempt to be globally unique so it can be used in downstream aggregator services e.g. Service Registry.
	Id string `json:"id"`

	// Name Name of this service. Should be human readable.
	Name string `json:"name"`

	// Organization Organization providing the service
	Organization struct {
		// Name Name of the organization responsible for the service
		Name string `json:"name"`

		// Url URL of the website of the organization (RFC 3986 format)
		Url string `json:"url"`
	} `json:"organization"`

	// Type Type of a GA4GH service
	Type ServiceType `json:"type"`

	// UpdatedAt Timestamp describing when the service was last updated (RFC 3339 format)
	UpdatedAt *time.Time `json:"updatedAt,omitempty"`

	// Version Version of the service being described. Semantic versioning is recommended, but other identifiers, such as dates or commit hashes, are also allowed. The version should be changed whenever the service is updated.
	Version string `json:"version"`
}

Service GA4GH service

type ServiceType

type ServiceType struct {
	// Artifact Name of the API or GA4GH specification implemented. Official GA4GH types should be assigned as part of standards approval process. Custom artifacts are supported.
	Artifact string `json:"artifact"`

	// Group Namespace in reverse domain name format. Use `org.ga4gh` for implementations compliant with official GA4GH specifications. For services with custom APIs not standardized by GA4GH, or implementations diverging from official GA4GH specifications, use a different namespace (e.g. your organization's reverse domain name).
	Group string `json:"group"`

	// Version Version of the API or specification. GA4GH specifications use semantic versioning.
	Version string `json:"version"`
}

ServiceType Type of a GA4GH service

type Summary

type Summary struct {
	// Requested Number of items requested.
	Requested *int `json:"requested,omitempty"`

	// Resolved Number of objects resolved.
	Resolved *int `json:"resolved,omitempty"`

	// Unresolved Number of objects not resolved.
	Unresolved *int `json:"unresolved,omitempty"`
}

Summary A summary of what was resolved.

type Unresolved

type Unresolved = []struct {
	ErrorCode *int      `json:"error_code,omitempty"`
	ObjectIds *[]string `json:"object_ids,omitempty"`
}

Unresolved Error codes for each unresolved drs objects.

type UpdateObjectAccessMethodsJSONRequestBody

type UpdateObjectAccessMethodsJSONRequestBody = AccessMethodUpdateRequest

UpdateObjectAccessMethodsJSONRequestBody defines body for UpdateObjectAccessMethods for application/json ContentType.

type UpdateObjectAccessMethodsResponse

type UpdateObjectAccessMethodsResponse struct {
	Body         []byte
	HTTPResponse *http.Response
	JSON200      *N200AccessMethodUpdate
	JSON400      *N400BadRequest
	JSON401      *N401Unauthorized
	JSON403      *N403Forbidden
	JSON404      *N404NotFoundDrsObject
	JSON500      *N500InternalServerError
}

func ParseUpdateObjectAccessMethodsResponse

func ParseUpdateObjectAccessMethodsResponse(rsp *http.Response) (*UpdateObjectAccessMethodsResponse, error)

ParseUpdateObjectAccessMethodsResponse parses an HTTP response from a UpdateObjectAccessMethodsWithResponse call

func (UpdateObjectAccessMethodsResponse) Status

Status returns HTTPResponse.Status

func (UpdateObjectAccessMethodsResponse) StatusCode

func (r UpdateObjectAccessMethodsResponse) StatusCode() int

StatusCode returns HTTPResponse.StatusCode

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 storage provider 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"`

	// UploadMethodTypes Optional array of requested upload method types which should match those published by  the server in the `supportedUploadMethodsTypes` field in  the `/service-info` response.  Servers SHALL try to honour requests, but the server may not be able to offer the  requested upload type for specific file types/sizes etc. The server MAY return a  400 error if it cannot honour the request, or MAY return an alternative  supported upload method.
	UploadMethodTypes *[]string `json:"upload_method_types,omitempty"`
}

UploadRequestObject defines model for UploadRequestObject.

type UploadResponse

type UploadResponse struct {
	// Responses List of upload responses for the requested files
	Responses []UploadResponseObject `json:"responses"`
}

UploadResponse defines model for UploadResponse.

type UploadResponseObject

type UploadResponseObject struct {
	// Aliases Optional array of alternative names
	Aliases *[]string `json:"aliases,omitempty"`

	// Checksums Array of checksums for file integrity verification
	Checksums []Checksum `json:"checksums"`

	// Description Optional description of the file
	Description *string `json:"description,omitempty"`

	// MimeType MIME type of the file
	MimeType string `json:"mime_type"`

	// Name The name of the file
	Name string `json:"name"`

	// Size Size of the file in bytes
	Size int64 `json:"size"`

	// UploadMethods Available methods for uploading this file
	UploadMethods *[]UploadMethod `json:"upload_methods,omitempty"`
}

UploadResponseObject defines model for UploadResponseObject.

Jump to

Keyboard shortcuts

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