updateTerms method

Future<UpdateTermsResponse> updateTerms({
  1. required String termsId,
  2. required String userPoolId,
  3. TermsEnforcementType? enforcement,
  4. Map<String, String>? links,
  5. String? termsName,
  6. TermsSourceType? termsSource,
})

Modifies existing terms documents for the requested app client. When Terms and conditions and Privacy policy documents are configured, the app client displays links to them in the sign-up page of managed login for the app client.

You can provide URLs for terms documents in the languages that are supported by managed login localization. Amazon Cognito directs users to the terms documents for their current language, with fallback to default if no document exists for the language.

Each request accepts one type of terms document and a map of language-to-link for that document type. You must provide both types of terms documents in at least one language before Amazon Cognito displays your terms documents. Supply each type in separate requests.

For more information, see Terms documents.

Learn more

May throw ConcurrentModificationException. May throw InternalErrorException. May throw InvalidParameterException. May throw NotAuthorizedException. May throw OperationNotEnabledException. May throw ResourceNotFoundException. May throw TermsExistsException. May throw TooManyRequestsException.

Parameter termsId : The ID of the terms document that you want to update.

Parameter userPoolId : The ID of the user pool that contains the terms that you want to update.

Parameter enforcement : This parameter is reserved for future use and currently accepts only one value.

Parameter links : A map of URLs to languages. For each localized language that will view the requested TermsName, assign a URL. A selection of cognito:default displays for all languages that don't have a language-specific URL.

For example, "cognito:default": "https://terms.example.com", "cognito:spanish": "https://terms.example.com/es".

Parameter termsName : The new name that you want to apply to the requested terms documents.

Parameter termsSource : This parameter is reserved for future use and currently accepts only one value.

Implementation

Future<UpdateTermsResponse> updateTerms({
  required String termsId,
  required String userPoolId,
  TermsEnforcementType? enforcement,
  Map<String, String>? links,
  String? termsName,
  TermsSourceType? termsSource,
}) async {
  final headers = <String, String>{
    'Content-Type': 'application/x-amz-json-1.1',
    'X-Amz-Target': 'AWSCognitoIdentityProviderService.UpdateTerms'
  };
  final jsonResponse = await _protocol.send(
    method: 'POST',
    requestUri: '/',
    exceptionFnMap: _exceptionFns,
    // TODO queryParams
    headers: headers,
    payload: {
      'TermsId': termsId,
      'UserPoolId': userPoolId,
      if (enforcement != null) 'Enforcement': enforcement.value,
      if (links != null) 'Links': links,
      if (termsName != null) 'TermsName': termsName,
      if (termsSource != null) 'TermsSource': termsSource.value,
    },
  );

  return UpdateTermsResponse.fromJson(jsonResponse.body);
}