Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Response

URL

Request

Description

Authorization

TermsOfServiceInfo

GET /termsOfUse2/info

none

Get information about the current ToS

Not Required

TermsOfServiceInfo

POST /termsOfUse2/requirements

TermsOfServiceRequirement

Sets the global ToS requirements.

Only ACT or Admin may make this call.

TermsOfServiceStatus

GET POST /termsOfUse2/{userId}/status

none

Get the current user’s ToS status. Used to determine if the user needs to agree to the new ToSA user can only get their own status.

Will need to provide the token just like the agree service? Why is this needed?

Note: The starting TermsOfServiceRequirement will be set with minimumTermsOfServiceVersion=0.0.0 and requirementDate=1/1/2011. All existing users that have agreed to the exiting ToS will meet the starting requirements. This means ACT will need to set the new requirements before users will be required.

...

Response

URL

Request

Description

Authorization

ProjectStorageInfo

GET /project/{projectId}/storage/info

none

Get the information about all combinations for a single project.

The UserEntityPermissions.hasUpload=true for the project.

CombinationLimitProjectStorageLimit

POST /project/{projectId}/storage/limit

CombinationLimitProjectStorageLimit

Set the limit for a single combination

Only members of the “plan managers” team may call this service.

...

Code Block
languagejson
{
	"description": "Provides information about file allocations and limits for each storage location associated with a single project.",
	"properties": {
		"projectId": {
			"type": "string",
			"description": "The ID of the project"
		},
		"combinationslocations": {
			"type": "array",
			"items": {
				"$ref": "org.sagebionetworks.repo.model.limits.ProjectStorageCombinationProjectStorageLocation"
			}
		}
	}
}

ProjectStorageCombinationProjectStorageLocation.json

Code Block
languagejson
{
	"description": "Represent the current size and limits for a single project storage location and project combination.",
	"properties": {
		"storageLocationId": {
			"type": "string",
			"description": "The ID of the storage location"
		},
		"sumFileBytes": {
			"type": "integer",
			"description": "The total number of bytes, of files, currently associated with this project storage combinationlocation."
		},
		"maxAllowedFileBytes": {
			"type": "integer",
			"description": "When missing, there is not limit for this project storage combinationlocation.  When set, this number represent to the total number of allowed bytes for this combinationproject storage location.  If the sumFileSizesBytes is greater than this value, then this project combinationstorage location is over its limit all new uploads to this project storage combinationlocation will be blocked."
		},
		"isOverLimit": {
			"type": "boolean",
			"description": "When true, sumFileSizesBytes is greater than maxAllowedFileSizeBytes and all new uploads to this project combinationstorage location will be blocked."
		}
	}
}

CombinationLimitProjectStorageLimit.json

Code Block
languagejson
{
	"description": "Set the limit on the number of files bytes for storagea locationsingle andproject projectstorage combination.location",
	"properties": {
		"projectId": {
			"type": "string",
			"description": "The ID of the project"
		},
		"storageLocationId": {
			"type": "string",
			"description": "The ID of the storage location"
		},
		"maxAllowedFileBytes": {
			"type": "string",
			"description": "Sets the limit on the number of file bytes that can be associated with this combinationproject storage location."
		}
	}
}