class_docstr: An app that collects events from the ActionTrail feature of Aliyun.
  
  Results are paginated, with a NextToken field provided that is used in subsequent queries.
  The result of a successful api call is json whose outermost schema is
  
  {
    "EndTime": <end of the time range of events>,
    "NextToken": <the token to use to request the next page of data>,
    "RequestId": <the ID of the request>,
    "StartTime": <start of the time range of events>,
    "Events": [entries],
  }
  
  If there are no more events in the queried range, the 'NextToken' element is not present.
  
  Resource:
      https://www.alibabacloud.com/help/doc-detail/28849.htm
docstr: Required credentials for access to the resources
docstr_tok: ["Required","credentials","for","access","to","the","resources"]
code: def _required_auth_info(cls):
      """Required credentials for access to the resources"""
  
      def region_validator(region):
          """Region names pulled from https://www.alibabacloud.com/help/doc-detail/40654.htm"""
  
          if region in {
              "cn-qingdao",
              "cn-beijing",
              "cn-zhangjiakou",
              "cn-huhehaote",
              "cn-hangzhou",
              "cn-shanghai",
              "cn-shenzhen",
              "cn-hongkong",
              "ap-southeast-1",
              "ap-southeast-2",
              "ap-southeast-3",
              "ap-southeast-5",
              "ap-northeast-1",
              "ap-south-1",
              "us-west-1",
              "us-east-1",
              "eu-central-1",
              "me-east-1",
          }:
              return region
          return False
  
      return {
          "access_key_id": {
              "description": (
                  "The access key id generated for a RAM user. This "
                  "should be a string of alphanumeric characters."
              ),
              "format": re.compile(r".*"),
          },
          "access_key_secret": {
              "description": (
                  "The access key secret generated for a RAM user. This "
                  "should be a string of alphanumeric characters."
              ),
              "format": re.compile(r".*"),
          },
          "region_id": {
              "description": (
                  "The region for the Aliyun API. This should be "
                  "a string like 'ap-northeast-1'."
              ),
              "format": region_validator,
          },
      }
  
file_path: streamalert/streamalert/apps/_apps/aliyun.py
imports: from datetime import datetime
  import json
  import re
  from aliyunsdkcore.client import AcsClient
  from aliyunsdkcore.acs_exception.exceptions import ServerException, ClientException
  from aliyunsdkactiontrail.request.v20171204 import LookupEventsRequest
  from .None import AppIntegration, StreamAlertApp, get_logger
label_desc: Use image node_id 6 for calling the AliyunApp obj's underlying member method code with example usage: obj._required_auth_info(cls) and returns: dict, False, region