53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
/**
|
|
* Sets model overrides for S3 ExpiresString.
|
|
*/
|
|
module.exports = function setS3ExpiresString(model) {
|
|
if (model.metadata.serviceId === 'S3') {
|
|
var newShapes = {};
|
|
for (var shapeId in model.shapes) {
|
|
newShapes[shapeId] = model.shapes[shapeId];
|
|
if (shapeId === 'Expires') {
|
|
// preserve timestamp type for Expires.
|
|
newShapes[shapeId] = {};
|
|
newShapes[shapeId].type = 'timestamp';
|
|
|
|
// add ExpiresString
|
|
newShapes['ExpiresString'] = {
|
|
type: 'string'
|
|
};
|
|
}
|
|
}
|
|
model.shapes = newShapes;
|
|
|
|
for (var operationKey in model.operations) {
|
|
var op = model.operations[operationKey];
|
|
if (!op.output || !op.output.shape) {
|
|
continue;
|
|
}
|
|
var output = model.shapes[op.output.shape];
|
|
if (!output || !output.members) {
|
|
continue;
|
|
}
|
|
if ('Expires' in output.members) {
|
|
var newMembers = {};
|
|
for (var memberKey in output.members) {
|
|
newMembers[memberKey] = output.members[memberKey];
|
|
if (memberKey === 'Expires') {
|
|
newMembers['ExpiresString'] = Object.assign({}, newMembers[memberKey], {
|
|
'shape': 'ExpiresString',
|
|
'location': 'header',
|
|
'locationName': 'ExpiresString'
|
|
});
|
|
|
|
newMembers[memberKey].deprecated = true;
|
|
newMembers[memberKey].documentation = 'Deprecated in favor of ExpiresString.';
|
|
}
|
|
}
|
|
output.members = newMembers;
|
|
}
|
|
}
|
|
|
|
return true;
|
|
}
|
|
return false;
|
|
};
|