docs: def encrypt_certificate(collector):
      """Write encrypted values for your certificate to the configuration"""
      configuration = collector.configuration
      amazon = configuration['amazon']
      aws_syncr = configuration['aws_syncr']
      certificate = aws_syncr.artifact
  
      available = []
  
      for gateway_name, gateway in configuration.get('apigateway', {}, ignore_converters=True).items():
          for name, options in gateway.get("domain_names", {}).items():
              if "zone" in options:
                  location = '.'.join(['apigateway', gateway_name, 'domain_names'])
                  formatter = MergedOptionStringFormatter(configuration, location, value=options['zone'])
                  available.append((gateway_name, "{0}.{1}".format(name, formatter.format())))
  
      if not available:
          raise AwsSyncrError("Please specify apigateway.<gateway_name>.domain_names.<domain_name>.name in the configuration")
  
      if not certificate:
          raise AwsSyncrError("Please specify certificate to encrypt with --artifact", available=[a[1] for a in available])
  
      if certificate not in [a[1] for a in available]:
          raise AwsSyncrError("Unknown certificate", available=[a[1] for a in available], got=certificate)
  
      gateway = [name for name, cert in available if cert == certificate][0]
      location, source = find_certificate_source(configuration, gateway, certificate)
  
      log.info("Gonna edit {0} in {1}".format(location, source))
      current = MergedOptions.using(yaml.load(open(source)))
      dest = current[location]
  
      try:
          key_id = input("Which kms key do you want to use? ")
          region = input("What region is this key in? ")
      except EOFError:
          raise UserQuit()
  
      # Make the filename completion work
      setup_completer()
  
      # Create the datakey to encrypt with
      data_key = amazon.kms.generate_data_key(region, key_id)
      plaintext_data_key = data_key["Plaintext"]
      encrypted_data_key = base64.b64encode(data_key["CiphertextBlob"]).decode('utf-8')
  
      # Encrypt our secrets
      secrets = {}
      for name, desc in (("body", "certificate's crt file"), ("key", "private key file"), ("chain", "certificate chain")):
          location = None
          while not location or not os.path.isfile(location):
              location = os.path.expanduser(filename_prompt("Where is the {0}? ".format(desc)))
              if not location or not os.path.isfile(location):
                  print("Please give a location to a file that exists!")
  
          with open(location, 'rb') as fle:
              data = fle.read()
  
          counter = Counter.new(128)
          encryptor = AES.new(plaintext_data_key[:32], AES.MODE_CTR, counter=counter)
          secrets[name] = base64.b64encode(encryptor.encrypt(data)).decode('utf-8')
  
      # Add in the encrypted values
      dest['body'] = {"kms": secrets['body'], "location": region, "kms_data_key": encrypted_data_key}
      dest['key'] = {"kms": secrets['key'], "location": region, "kms_data_key": encrypted_data_key}
      dest['chain'] = {"kms": secrets['chain'], "location": region, "kms_data_key": encrypted_data_key}
  
      # And write to the file!
      yaml.dump(current.as_dict(), open(source, 'w'), explicit_start=True, indent=2, default_flow_style=False)