create method

Future<CseKeyPair> create(
  1. CseKeyPair request,
  2. String userId, {
  3. String? chainValidation,
  4. String? $fields,
})

Creates and uploads a client-side encryption S/MIME public key certificate chain and private key metadata for the authenticated user.

For administrators managing identities and keypairs for users in their organization, requests require authorization with a service account that has [domain-wide delegation authority](https://developers.google.com/identity/protocols/OAuth2ServiceAccount#delegatingauthority) to impersonate users with the https://www.googleapis.com/auth/gmail.settings.basic scope. For users managing their own identities and keypairs, requests require hardware key encryption turned on and configured.

request - The metadata request object.

Request parameters:

userId - The requester's primary email address. To indicate the authenticated user, you can use the special value me.

chainValidation - The type of certificate chain validation to perform at creation. The request will be rejected if the uploaded chain fails to satisfy the requested validation checks. When unspecified, this parameter defaults to all. Possible string values are:

  • "all" : Enable all certificate chain validation and certificate revocation checks. Recommended for normal use.
  • "none" : Disable all certificate chain validation and certificate revocation checks. This may be useful when deliberately creating key pairs with invalid, out-of-use certificate chains to be used only for decryption of historical S/MIME messages. Key pairs created with invalid or revoked certificates cannot be used in a CseIdentity object.

$fields - Selector specifying which fields to include in a partial response.

Completes with a CseKeyPair.

Completes with a commons.ApiRequestError if the API endpoint returned an error.

If the used http.Client completes with an error when making a REST call, this method will complete with the same error.

Implementation

async.Future<CseKeyPair> create(
  CseKeyPair request,
  core.String userId, {
  core.String? chainValidation,
  core.String? $fields,
}) async {
  final body_ = convert.json.encode(request);
  final queryParams_ = <core.String, core.List<core.String>>{
    'chainValidation': ?chainValidation == null ? null : [chainValidation],
    'fields': ?$fields == null ? null : [$fields],
  };

  final url_ =
      'gmail/v1/users/' +
      commons.escapeVariable('$userId') +
      '/settings/cse/keypairs';

  final response_ = await _requester.request(
    url_,
    'POST',
    body: body_,
    queryParams: queryParams_,
  );
  return CseKeyPair.fromJson(
    response_ as core.Map<core.String, core.dynamic>,
  );
}