updateAgreement method
- required String agreementId,
- required String serverId,
- String? accessRole,
- String? baseDirectory,
- CustomDirectoriesType? customDirectories,
- String? description,
- EnforceMessageSigningType? enforceMessageSigning,
- String? localProfileId,
- String? partnerProfileId,
- PreserveFilenameType? preserveFilename,
- AgreementStatusType? status,
Updates some of the parameters for an existing agreement. Provide the
AgreementId and the ServerId for the agreement
that you want to update, along with the new values for the parameters to
update.
If you update an agreement from using base directory to custom directories, the base directory is no longer used. Similarly, if you change from custom directories to a base directory, the custom directories are no longer used.
May throw InternalServiceError.
May throw InvalidRequestException.
May throw ResourceExistsException.
May throw ResourceNotFoundException.
May throw ServiceUnavailableException.
May throw ThrottlingException.
Parameter agreementId :
A unique identifier for the agreement. This identifier is returned when
you create an agreement.
Parameter serverId :
A system-assigned unique identifier for a server instance. This is the
specific server that the agreement uses.
Parameter accessRole :
Connectors are used to send files using either the AS2 or SFTP protocol.
For the access role, provide the Amazon Resource Name (ARN) of the
Identity and Access Management role to use.
For AS2 connectors
With AS2, you can send files by calling StartFileTransfer and
specifying the file paths in the request parameter,
SendFilePaths. We use the file’s parent directory (for
example, for --send-file-paths /bucket/dir/file.txt, parent
directory is /bucket/dir/) to temporarily store a processed
AS2 message file, store the MDN when we receive them from the partner, and
write a final JSON file containing relevant metadata of the transmission.
So, the AccessRole needs to provide read and write access to
the parent directory of the file location used in the
StartFileTransfer request. Additionally, you need to provide
read and write access to the parent directory of the files that you intend
to send with StartFileTransfer.
If you are using Basic authentication for your AS2 connector, the access
role requires the secretsmanager:GetSecretValue permission
for the secret. If the secret is encrypted using a customer-managed key
instead of the Amazon Web Services managed key in Secrets Manager, then
the role also needs the kms:Decrypt permission for that key.
For SFTP connectors
Make sure that the access role provides read and write access to the
parent directory of the file location that's used in the
StartFileTransfer request. Additionally, make sure that the
role provides secretsmanager:GetSecretValue permission to
Secrets Manager.
Parameter baseDirectory :
To change the landing directory (folder) for files that are transferred,
provide the bucket folder that you want to use; for example,
/amzn-s3-demo-bucket/home/mydirectory .
Parameter customDirectories :
A CustomDirectoriesType structure. This structure specifies
custom directories for storing various AS2 message files. You can specify
directories for the following types of files.
- Failed files
- MDN files
- Payload files
- Status files
- Temporary files
Parameter description :
To replace the existing description, provide a short description for the
agreement.
Parameter enforceMessageSigning :
Determines whether or not unsigned messages from your trading partners
will be accepted.
-
ENABLED: Transfer Family rejects unsigned messages from your trading partner. -
DISABLED(default value): Transfer Family accepts unsigned messages from your trading partner.
Parameter localProfileId :
A unique identifier for the AS2 local profile.
To change the local profile identifier, provide a new value here.
Parameter partnerProfileId :
A unique identifier for the partner profile. To change the partner profile
identifier, provide a new value here.
Parameter preserveFilename :
Determines whether or not Transfer Family appends a unique string of
characters to the end of the AS2 message payload filename when saving it.
-
ENABLED: the filename provided by your trading parter is preserved when the file is saved. -
DISABLED(default value): when Transfer Family saves the file, the filename is adjusted, as described in File names and locations.
Parameter status :
You can update the status for the agreement, either activating an inactive
agreement or the reverse.
Implementation
Future<UpdateAgreementResponse> updateAgreement({
required String agreementId,
required String serverId,
String? accessRole,
String? baseDirectory,
CustomDirectoriesType? customDirectories,
String? description,
EnforceMessageSigningType? enforceMessageSigning,
String? localProfileId,
String? partnerProfileId,
PreserveFilenameType? preserveFilename,
AgreementStatusType? status,
}) async {
final headers = <String, String>{
'Content-Type': 'application/x-amz-json-1.1',
'X-Amz-Target': 'TransferService.UpdateAgreement'
};
final jsonResponse = await _protocol.send(
method: 'POST',
requestUri: '/',
exceptionFnMap: _exceptionFns,
// TODO queryParams
headers: headers,
payload: {
'AgreementId': agreementId,
'ServerId': serverId,
if (accessRole != null) 'AccessRole': accessRole,
if (baseDirectory != null) 'BaseDirectory': baseDirectory,
if (customDirectories != null) 'CustomDirectories': customDirectories,
if (description != null) 'Description': description,
if (enforceMessageSigning != null)
'EnforceMessageSigning': enforceMessageSigning.value,
if (localProfileId != null) 'LocalProfileId': localProfileId,
if (partnerProfileId != null) 'PartnerProfileId': partnerProfileId,
if (preserveFilename != null)
'PreserveFilename': preserveFilename.value,
if (status != null) 'Status': status.value,
},
);
return UpdateAgreementResponse.fromJson(jsonResponse.body);
}