HandcarAuthorizationService

Key HandcarAuthorization
Version 1.0
Included Services  
Java Package edu.mit.oeit.mc3.handcar.model

The Handcar Authorization Service is a RESTful expression of the OSID Authorization manager

Handcar is a simplified, but faithful, expression of the OSIDs that aligns with the REST goals of
simplicity and focuses on exposing OSID objects as resources.

See href="http://en.wikipedia.org/wiki/Representational_state_transfer">Wikipedia Representation
state transfer

In particular Handcar takes a data centric view whereas the OSIDs exercise more specific method
calls to express its rich functionality.

OSID reference: Authorization Package

Operations
Main Message Structures

Method getAuthorizationHintsForVault
Description Get authorization hints for a particular vault
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/authorization?proxyname={XXXX}
Parameters String vaultId that you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return AuthorizationHintsBean authorization hints for accessing vaults
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user

Back to Operations

Method getVaultGenusTypes
Description Gets the list of vault genus types.

OSID reference: Vault.genusType
REST Signature
GET handcar/services/authorization/vault/types?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return TypeBeanList list of vault types that can be used to create vaults
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user

Back to Operations

Method getVaultsByQueryParams
Description Get a list of all vaults

OSID reference: VaultLookupSession
REST Signature
GET handcar/services/authorization/vaults?proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters VaultQueryBean queryBean ???
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return VaultBeanList list of all vaults
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user

Back to Operations

Method getVaultById
Description Get a particular vault by id

OSID reference: VaultLookupSession
REST Signature
GET handcar/services/authorization/vaults/{vaultId}?proxyname={XXXX}
Parameters String vaultId that you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return VaultBean the fetched vault
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault id is bad

Back to Operations

Method createVault
Description Creates a vault

Note: for certain vault genus types there can only be one vault with that type. If you try to
create another one the pre-existing one is returned instead.

OSID reference: VaultAdminSession
REST Signature
POST {vaultBean} to  handcar/services/authorization/vaults?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters VaultBean vaultBean to be created
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return VaultBean the newly created vault
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException ???
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateVault
Description Updates a vault

The authorization Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: RelationshipAdminSession
REST Signature
PUT {vaultBean} to  handcar/services/authorization/vaults/{vaultId}?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters VaultBean vaultBean to be updated
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return VaultBean the newly updated authorization
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault or authorization does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteVault
Description Delete vault
REST Signature
DELETE handcar/services/authorization/vaults/{vaultId}?proxyname={XXXX}
Parameters String vaultId to be deleted
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return void ???
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the authorization is not in the vault

Back to Operations

Method getVaultExtensionRecord
Description Fetch a particular vaults's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See
ExtensionRecordBean
for more details.

OSID reference: Authorization.getAuthorizationRecord
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String vaultId vault that the authorization is in
StringList optionalRecordTypeIds optional list of the record types to include, if not specified
all record types are included
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the fetched authorization's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the id is not valid

Back to Operations

Method updateVaultExtensionRecord
Description Update a particular objective bank's extension record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See ExtensionRecordBean
for more details.

OSID reference: Vault.getVaultRecord
REST Signature
PUT {extensionRecord} to  handcar/services/authorization/vaults/{vaultId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String vaultId bank who's extension is to be fetched
ExtensionRecordBean extensionRecord extension record to replace the existing extension record
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the objective banks extension once updated
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations

Method getFunctionGenusTypes
Description Gets the list of function genus types.

OSID reference: Function.genusType
REST Signature
GET handcar/services/authorization/function/types?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return TypeBeanList list of function types that can be used to vault entries
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault id does not exist

Back to Operations

Method getFunctionsInVaultByQueryParams
Description Get functions in the vault optionally by Query Parameters

The entries are ordered by the entries timestamp so that the most recent vault entries appear
first.
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/functions?proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?qualifierhierarchyid={id}&qualifierhierarchyid={id}...
     ?ruleid={id}&ruleid={id}...
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String vaultId within which the functions exist
FunctionQueryBean queryBean ???
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return FunctionBeanList Functions filtered by the supplied query parameters
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault id is not known

Back to Operations

Method getFunctionInVaultById
Description Fetch a particular function from a vault
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/functions/{functionId}?proxyname={XXXX}
Parameters String vaultId vault that the function is in
String functionId id of the function you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return FunctionBean the fetched function
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the function id is not in the vault

Back to Operations

Method getFunctionById
Description Fetch a particular function regardless of which vault it is in
REST Signature
GET handcar/services/authorization/functions/{functionId}?proxyname={XXXX}
Parameters String functionId id of the function you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return FunctionBean the fetched function
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the function id is not in the vault

Back to Operations

Method createFunctionInVault
Description Creates a function in a vault
REST Signature
POST {function} to  handcar/services/authorization/vaults/{vaultId}/functions?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"vaultId" : "id",
"qualifierHierarchyId" : "id",
"ruleId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String vaultId within which the function is to be created
FunctionBean function to be created
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return FunctionBean ???
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault or function does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateFunctionInVault
Description Updates an function

The function Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: RelationshipAdminSession
REST Signature
PUT {function} to  handcar/services/authorization/vaults/{vaultId}/functions?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"vaultId" : "id",
"qualifierHierarchyId" : "id",
"ruleId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String vaultId within which the function is to be updated
FunctionBean function to be updated
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return FunctionBean the newly updated function
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault or function does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteFunctionInVault
Description Delete a function
REST Signature
DELETE handcar/services/authorization/vaults/{vaultId}/functions/{functionId}?proxyname={XXXX}
Parameters String vaultId within which the function exists
String functionId id of the function to be deleted
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return void ???
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the function is not in the vault

Back to Operations

Method getFunctionExtensionRecord
Description Fetch a particular function's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See
ExtensionRecordBean
for more details.

OSID reference: Function.getFunctionRecord
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/functions/{functionId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String vaultId vault that the function is in
String functionId id of the function you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified
all record types are included
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the fetched function's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the id is not valid

Back to Operations

Method updateFunctionExtensionRecord
Description Update a particular function's extension record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See ExtensionRecordBean
for more details.

OSID reference: Vault.getVaultRecord
REST Signature
PUT {extensionRecord} to  handcar/services/authorization/vaults/{vaultId}/functions/{functionId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String vaultId bank who's extension is to be fetched
String functionId ???
ExtensionRecordBean extensionRecord extension record to replace the existing extension record
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the objective banks extension once updated
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations

Method getQualifierGenusTypes
Description Gets the list of qualifier genus types.

OSID reference: Qualifier.genusType
REST Signature
GET handcar/services/authorization/qualifier/types?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return TypeBeanList list of qualifier types that can be used to vault entries
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault id does not exist

Back to Operations

Method getQualifiersInVaultByQueryParams
Description Get qualifiers in the vault optionally by Query Parameters

The entries are ordered by the entries timestamp so that the most recent vault entries appear
first.
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/qualifiers?proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String vaultId within which the qualifiers exist
QualifierQueryBean queryBean ???
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return QualifierBeanList Qualifiers filtered by the supplied query parameters
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault id is not known

Back to Operations

Method getQualifierInVaultById
Description Fetch a particular qualifier from a vault
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/qualifiers/{qualifierId}?proxyname={XXXX}
Parameters String vaultId vault that the qualifier is in
String qualifierId id of the qualifier you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return QualifierBean the fetched qualifier
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the qualifier id is not in the vault

Back to Operations

Method getQualifierById
Description Fetch a particular qualifier regardless of which vault it is in
REST Signature
GET handcar/services/authorization/qualifiers/{qualifierId}?proxyname={XXXX}
Parameters String qualifierId id of the qualifier you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return QualifierBean the fetched qualifier
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the qualifier id is not in the vault

Back to Operations

Method createQualifierInVault
Description Creates a qualifier in a vault
REST Signature
POST {qualifier} to  handcar/services/authorization/vaults/{vaultId}/qualifiers?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"vaultId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String vaultId within which the qualifier is to be created
QualifierBean qualifier to be created
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return QualifierBean ???
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault or qualifier does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateQualifierInVault
Description Updates an qualifier

The qualifier Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: RelationshipAdminSession
REST Signature
PUT {qualifier} to  handcar/services/authorization/vaults/{vaultId}/qualifiers?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"vaultId" : "id",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String vaultId within which the qualifier is to be updated
QualifierBean qualifier to be updated
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return QualifierBean the newly updated qualifier
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault or qualifier does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteQualifierInVault
Description Delete an qualifier
REST Signature
DELETE handcar/services/authorization/vaults/{vaultId}/qualifiers/{qualifierId}?proxyname={XXXX}
Parameters String vaultId within which the qualifier exists
String qualifierId id of the qualifier to be deleted
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return void the qualifier as it was before it was deleted
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the qualifier is not in the vault

Back to Operations

Method getQualifierExtensionRecord
Description Fetch a particular qualifier's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See
ExtensionRecordBean
for more details.

OSID reference: Qualifier.getQualifierRecord
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/qualifiers/{qualifierId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String vaultId vault that the qualifier is in
String qualifierId id of the qualifier you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified
all record types are included
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the fetched qualifier's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the id is not valid

Back to Operations

Method updateQualifierExtensionRecord
Description Update a particular qualifier's extension record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See ExtensionRecordBean
for more details.

OSID reference: Vault.getVaultRecord
REST Signature
PUT {extensionRecord} to  handcar/services/authorization/vaults/{vaultId}/qualifiers/{qualifierId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String vaultId bank who's extension is to be fetched
String qualifierId ???
ExtensionRecordBean extensionRecord extension record to replace the existing extension record
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the objective banks extension once updated
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations

Method getAuthorizationGenusTypes
Description Gets the list of authorization genus types.

OSID reference: Authorization.genusType
REST Signature
GET handcar/services/authorization/authorization/types?proxyname={XXXX}
Parameters String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return TypeBeanList list of authorization types that can be used to vault entries
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault id does not exist

Back to Operations

Method getAuthorizationsInVaultByQueryParams
Description Get authorizations in the vault optionally by Query Parameters

The entries are ordered by the entries timestamp so that the most recent vault entries appear
first.
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/authorizations?proxyname={XXXX}
Additional query parameters (that can be mixed and matched):
     ?id={id}&id={id}...
     ?genustypeid={id}&genustypeid={id}...
     ?keyword={XXXX}
     ?agentid={id}&agentid={id}...
     ?functionid={id}&functionid={id}...
     ?qualifierid={id}&qualifierid={id}...
     ?resourceid={id}&resourceid={id}...
     ?trustid={id}&trustid={id}...
     ?endreasonid={id}&endreasonid={id}...
     ?effective={true}
     ?startdatestartrange={YYYY-MM-DD}
     ?startdateendrange={YYYY-MM-DD}
     ?startdatematch={true}
     ?enddatestartrange={YYYY-MM-DD}
     ?enddateendrange={YYYY-MM-DD}
     ?enddatematch={true}
     ?addedby={XXXX}&addedby={XXXX}...
     ?addedonstartdate={YYYY-MM-DD}
     ?addedonenddate={YYYY-MM-DD}
     ?updatedby={XXXX}&updatedby={XXXX}...
     ?updatedonstartdate={YYYY-MM-DD}
     ?updatedonenddate={YYYY-MM-DD}
     ?startat={999}
     ?maxvalues={999}
Parameters String vaultId within which the authorizations exist
AuthorizationQueryBean queryBean ???
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return AuthorizationBeanList Authorizations filtered by the supplied query parameters
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault id is not known

Back to Operations

Method getAuthorizationInVaultById
Description Fetch a particular authorization from a vault
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/authorizations/{authorizationId}?proxyname={XXXX}
Parameters String vaultId vault that the authorization is in
String authorizationId id of the authorization you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return AuthorizationBean the fetched authorization
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the authorization id is not in the vault

Back to Operations

Method getAuthorizationById
Description Fetch a particular authorization regardless of which vault it is in
REST Signature
GET handcar/services/authorization/authorizations/{authorizationId}?proxyname={XXXX}
Parameters String authorizationId id of the authorization you want to fetch
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return AuthorizationBean the fetched authorization
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the authorization id is not in the vault

Back to Operations

Method createAuthorizationInVault
Description Creates a authorization in a vault
REST Signature
POST {authorization} to  handcar/services/authorization/vaults/{vaultId}/authorizations?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"resourceId" : "id",
"trustId" : "id",
"agentId" : "id",
"functionId" : "id",
"qualifierId" : "id",
"vaultId" : "id",
"endReasonId" : "id",
"startDate" : "YYYY-MM-DD",
"endDate" : "YYYY-MM-DD",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String vaultId within which the authorization is to be created
AuthorizationBean authorization to be created
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return AuthorizationBean ???
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault or authorization does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method updateAuthorizationInVault
Description Updates an authorization

The authorization Id read-only and cannot be changed and changes will be silently ignored.

OSID reference: RelationshipAdminSession
REST Signature
PUT {authorization} to  handcar/services/authorization/vaults/{vaultId}/authorizations?proxyname={XXXX}
{
"id" : "id",
"genusTypeId" : "id",
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"resourceId" : "id",
"trustId" : "id",
"agentId" : "id",
"functionId" : "id",
"qualifierId" : "id",
"vaultId" : "id",
"endReasonId" : "id",
"startDate" : "YYYY-MM-DD",
"endDate" : "YYYY-MM-DD",
"current" : true,
"sortKey" : "XXXX",
"extensionRecord" : {
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
},
"auditTrail" : {
"addedBy" : "XXXX",
"addedOn" : "YYYY-MM-DDThh:mm:ss",
"updatedBy" : "XXXX",
"updatedOn" : "YYYY-MM-DDThh:mm:ss",
"comment" : "XXXX"
}
}
Parameters String vaultId within which the authorization is to be updated
AuthorizationBean authorization to be updated
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return AuthorizationBean the newly updated authorization
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the vault or authorization does not exist
HandcarInvalidArgumentException HTTP 422 if the data is invalid

Back to Operations

Method deleteAuthorizationInVault
Description Delete an authorization
REST Signature
DELETE handcar/services/authorization/vaults/{vaultId}/authorizations/{authorizationId}?proxyname={XXXX}
Parameters String vaultId within which the authorization exists
String authorizationId id of the authorization to be deleted
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return void the authorization as it was before it was deleted
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the authorization is not in the vault

Back to Operations

Method getAuthorizationExtensionRecord
Description Fetch a particular authorization's EXTENSION record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See
ExtensionRecordBean
for more details.

OSID reference: Authorization.getAuthorizationRecord
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/authorizations/{authorizationId}/extension?recordtypeid={id}&recordtypeid={id}...&proxyname={XXXX}
Parameters String vaultId vault that the authorization is in
String authorizationId id of the authorization you want to fetch
StringList optionalRecordTypeIds optional list of the record types to include, if not specified
all record types are included
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the fetched authorization's extension record
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the id is not valid

Back to Operations

Method updateAuthorizationExtensionRecord
Description Update a particular authorization's extension record

An EXTENSION record is basically a set of key value pairs holding additional data not
explicitly defined in the object. It is a way to extend the object without breaking the
contract. See ExtensionRecordBean
for more details.

OSID reference: Vault.getVaultRecord
REST Signature
PUT {extensionRecord} to  handcar/services/authorization/vaults/{vaultId}/authorizations/{authorizationId}/extension?proxyname={XXXX}
{
"recordTypeIds" : ["id", ...],
"recordProperties" : [ {
"displayName" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"description" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"recordTypeId" : "id",
"value" : "XXXX",
"displayLabel" : {
"languageTypeId" : "id",
"scriptTypeId" : "id",
"formatTypeId" : "id",
"text" : "XXXX"
},
"associatedId" : "id"
},
...],
"associatedId" : "id"
}
Parameters String vaultId bank who's extension is to be fetched
String authorizationId ???
ExtensionRecordBean extensionRecord extension record to replace the existing extension record
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return ExtensionRecordBean the objective banks extension once updated
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations

Method isAuthorized
Description Check if a person has a particular authorization optionally within a specific qualifier

OSID reference: Vault.getVault
REST Signature
GET handcar/services/authorization/vaults/{vaultId}/authorized/{agentId}/{functionId}?qualifierId={id}&proxyname={XXXX}
Parameters String vaultId vault
String agentId agent/proxy
String functionId function
String qualifierId qualifier
String proxyName optional name of user for whom this operation is being executed, if not
specified taken from security context
Return boolean the objective banks extension once updated
Errors HandcarOperationFailedException HTTP 500 if something goes wrong
HandcarPermissionDeniedException HTTP 403 if you don't have rights to call this
method or are not allowed to proxy user
HandcarNotFoundException HTTP 404 if the objective bank id is not valid

Back to Operations