...
Since we are changing the UploadDestionation object, GET /entity/{id}/uploadDestination/{storageLocationId} service will also return the new project limit information.
Model Objects
LoginResponseTermsOfServiceInfo.json:
Code Block |
---|
|
{
"title": "LoginResponse",
"description": "HoldsInformation aabout sessionthe tokencurrent usedSynapse forTerms short-termof authentication with SynapseService (ToS).",
"properties": {
"sessionTokentermsOfServiceUrl": {
"type": "string",
"description": "(deprecated)The AURL token that identifiescan thebe user"
},
"accessToken": {
"type": "string",
"description": "A token that authorizes subsequent requestsused to fetch the latest ToS using an HTTPS GET."
},
"acceptsTermsOfUselatestTermsOfServiceVersion": {
"type": "booleanstring",
"description": "When false,The semantic version of the userlatest hasToS notin agreed to the currently required version of the ToSprovided URL. This userCallers will need to agreeprovide thethis theversion latestwhen ToSsubmitting bya therequest requirementto date.agree to True, if the user has agreedshown ToS."
},
"lastAgreementDatecurrentRequirement": {
"type$ref": "string",
"format": "date-time"org.sagebionetworks.repo.model.auth.TermsOfServiceRequirement",
"description": "TheInformation date/timeabout when the user last agreed to theglobal ToS. WillSynapse berequirements nullthat ifall theusers usermust hasagree never agreed to the ToS."
},
"lastAgreementVersion": {
"type}
} |
TermsOfServiceRequirement.json
Code Block |
---|
|
{
"description": "string",
"description": "The version of ToSInformation about the global ToS Synapse requirements that theall userusers lastmust agreedagree to.",
"properties": Will be null if the user has never agreed to the ToS."
},
"authenticationReceipt": {{
"requirementDate": {
"type": "string",
"typeformat": "stringdate-time",
"description": "AThe validdate/time receiptwhen allows the usernew toToS skiprequirement will extrago securityinto checkseffect."
},
}
} |
TermsOfServiceInfo.json:
Code Block |
---|
|
{
"description"minimumTermsOfServiceVersion": {
"type": "string"Information about the current Synapse Terms,
"description": "The minimum semantic version of Servicethe (ToS).",
"properties": {
"termsOfServiceUrl": {
"type": "string",
"description": "The URL that can be used to fetch the latest ToS using an HTTPS GET."
},
"latestTermsOfServiceVersion": {
"type": "string",
"description": "The semantic that all users must agree to by the provided date. Any user that has agreed to this version, or higher, will be required to agree to the latest version of the latest ToS inafter the provided URLdate."
}
Callers will need to provide this version when submitting a request to agree to shown ToS."
},
"currentRequirement }
} |
TermsOfServiceStatus.json
Code Block |
---|
|
{
"description": "The status of a user's ToS agreement",
"properties": {
"$refuserId": "org.sagebionetworks.repo.model.auth.TermsOfServiceRequirement{
"type": "string",
"description": "InformationThe ID aboutof the global ToS Synapse requirements that all users must agree touser."
},
}
} |
TermsOfServiceRequirement.json
Code Block |
---|
|
{
"descriptionusersCurrentTermsOfServiceState": "Information about the global ToS Synapse requirements that all users must agree to.",
"properties": {
"requirementDate": {
{
"$ref": "org.sagebionetworks.repo.model.auth.TermsOfServiceState",
"typedescription": "string",
"format": "date-time",
"description": "The date/time when the new ToS requirement will go into effect."
},
"minimumTermsOfServiceVersionDefines the user's current ToS state. Used to guide the UI in what the user needs to do with their ToS agreements. This will always be provided."
},
"lastAgreementDate": {
"type": "string",
"format": "date-time",
"description": "The minimum semantic version ofdate/time when the user last agreed to the ToS. thatWill allbe users must agree to bynull if the provided date. Any user thathas hasnever agreed to this version, or higher, will be required to agree to the latest version of the ToS after the provided datethe ToS."
},
"lastAgreementVersion": {
"type": "string",
"description": "The version of ToS that the user last agreed to. Will be null if the user has never agreed to the ToS."
}
}
} |
TermsOfServiceStatusTermsOfServiceState.json:
Code Block |
---|
|
{
"descriptiontype": "The status of astring",
"description": "The user's current ToS state defines what action if any they will need to take to meet ToS agreementrequirements.",
"propertiesenum": {[
"userId": {
"typename": "stringMUST_AGREE_NOW",
"description": "The IDuser ofmust agree to the user new ToS before they can use the service."
},
"usersCurrentTermsOfServiceState": {
"$refname": "org.sagebionetworks.repo.model.auth.TermsOfServiceStateMUST_AGREE_SOON",
"description": "Defines theThe user's currentcurrently ToShas state.agreed Used to guidean theolder UIToS and inthey whatwill theneed userto needsagree to dothe with theirnew ToS agreements.before new This will always be providedrequired date."
},
"lastAgreementDate": {
"typename": "stringUP_TO_DATE",
"format": "date-time",
"description": "The date/time when the user lastuser has agreed to the latest ToS. Willso bethey null if the user has never agreed to the ToS.are up-to-date"
},
]
} |
ProjectStorageUsage.json
Code Block |
---|
|
{
"lastAgreementVersiondescription": {
""Provides information about file allocations and limits for each storage location associated with a single project.",
"properties": {
"projectId": {
"type": "string",
"description": "The versionID of ToS that the user last agreed to. Will be null if the user has never agreed to the ToS."
}
}
} |
ProjectStorageUsage.json
Code Block |
---|
|
{
"description": "Provides information about file allocations and limits for each storage location associated with a single project.",
"propertiesproject"
},
"locations": {
"type": "array",
"items": {
"projectId": {
"type$ref": "string",org.sagebionetworks.repo.model.limits.ProjectStorageLocationUsage"
"}
}
}
} |
ProjectStorageLocationUsage.json
Code Block |
---|
|
{
"description": "The ID of the project"
},Represent the current size and limits for a single project storage location.",
"properties": {
"locationsstorageLocationId": {
"type": "arraystring",
"itemsdescription": {"The ID of the storage location"
},
"$refsumFileBytes": "org.sagebionetworks.repo.model.limits.ProjectStorageLocationUsage"{
}"type": "integer",
}
}
} |
ProjectStorageLocationUsage.json
Code Block |
---|
|
{
"description": "Represent the current size and limits for a singleThe total number of bytes, of files, currently associated with this project storage location.",
"properties": { },
"storageLocationIdmaxAllowedFileBytes": {
"type": "stringinteger",
"description": "The ID of theWhen missing, there is not limit for this project storage location"
},
"sumFileBytes": {
"type": "integer",
"description": "The. When set, this number represent to the total number of allowed bytes, of files, currently associated with for this project storage location."
},
"maxAllowedFileBytes": {
"type": "integer",
"description": "When missing, there is not limit for If the sumFileSizesBytes is greater than this value, then this project storage location. is over Whenits set,limit thisall numbernew representuploads to thethis totalproject numberstorage oflocation will allowedbe bytes for this project storage location. If theblocked."
},
"isOverLimit": {
"type": "boolean",
"description": "When true, sumFileSizesBytes is greater than thismaxAllowedFileSizeBytes value,and thenall thisnew project storage location is over its limit all new uploads uploads to this project storage location will be blocked."
},
"isOverLimit": {
"type}
} |
ProjectStorageLocationLimit.json
Code Block |
---|
|
{
"description": "boolean",
"description": "When true, sumFileSizesBytes is greater than maxAllowedFileSizeBytes and all new uploads to this Set the limit on the number of files bytes for a single project storage location will be blocked."
}
}
} |
ProjectStorageLocationLimit.json
Code Block |
---|
|
{
"description": "Set the limit on the number of files bytes for a single project storage location",
"properties": {
"projectId": {
"type": "string",
"",
"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 project storage location."
}
}
} |
...
Code Block |
---|
|
{
"description": "The upload destination contains information to start an upload of a file generated according to the underlying <a href=\"${org.sagebionetworks.repo.model.project.StorageLocationSetting}\">StorageLocationSetting</a>.",
"type": "interface",
"properties": {
"concreteType": {
"type": "string",
"description": "Indicates which implementation this object represents."
},
"storageLocationId": {
"type": "integer",
"description": "the unique id for the storage location, that points to the <a href=\"${org.sagebionetworks.repo.model.project.StorageLocationSetting}\">StorageLocationSetting</a>"
},
"uploadType": {
"$ref": "org.sagebionetworks.repo.model.file.UploadType"
},
"banner": {
"type": "string",
"description": "If set, the client should show this banner every time an upload is initiated"
},
"destinationProjectId": {
"type": "string",
"description": "The ID of the project where this file will be uploaded."
},
"projectStorageLocationUsage": {
"$ref": "org.sagebionetworks.repo.model.limits.ProjectStorageLocationUsage",
"description": "This object includes information about size and limits associated with this project storage location. Clients should not attempt to upload a file to this location if isOverLimit=true or if (<size_new_file> + sumFileBytes) is greater than maxAllowedFileBytes."
}
}
} |
TermsOfServiceState.json:
Code Block |
---|
|
{
banner": {
"type": "string",
"description": "The user's current ToS state defines what action if any they will need to take to meet ToS requirements.",
"enum": [
If set, the client should show this banner every time an upload is initiated"
},
"destinationProjectId": {
"nametype": "MUST_AGREE_NOWstring",
"description": "The user must agree toID of the newproject ToSwhere beforethis theyfile canwill usebe the serviceuploaded."
},
"projectStorageLocationUsage": {
"name$ref": "MUST_AGREE_SOONorg.sagebionetworks.repo.model.limits.ProjectStorageLocationUsage",
"description": "TheThis userobject currentlyincludes hasinformation agreed to an older ToS about size and theylimits willassociated needwith tothis agreeproject tostorage thelocation. new ToSClients beforeshould newnot requiredattempt date."
},
{
"name": "UP_TO_DATE",
"description": "The user has agreed to the latest ToS so they are up-to-dateto upload a file to this location if isOverLimit=true or if (<size_new_file> + sumFileBytes) is greater than maxAllowedFileBytes."
}
]}
} |