"""Generated client library for cloudasset version v1p4beta1."""
# NOTE: This file is autogenerated and should not be edited by hand.
from apitools.base.py import base_api
from googlecloudsdk.third_party.apis.cloudasset.v1p4beta1 import cloudasset_v1p4beta1_messages as messages


class CloudassetV1p4beta1(base_api.BaseApiClient):
  """Generated client library for service cloudasset version v1p4beta1."""

  MESSAGES_MODULE = messages
  BASE_URL = 'https://cloudasset.googleapis.com/'
  MTLS_BASE_URL = 'https://cloudasset.mtls.googleapis.com/'

  _PACKAGE = 'cloudasset'
  _SCOPES = ['https://www.googleapis.com/auth/cloud-platform']
  _VERSION = 'v1p4beta1'
  _CLIENT_ID = '1042881264118.apps.googleusercontent.com'
  _CLIENT_SECRET = 'x_Tw5K8nnjoRAqULM9PFAC2b'
  _USER_AGENT = 'google-cloud-sdk'
  _CLIENT_CLASS_NAME = 'CloudassetV1p4beta1'
  _URL_VERSION = 'v1p4beta1'
  _API_KEY = None

  def __init__(self, url='', credentials=None,
               get_credentials=True, http=None, model=None,
               log_request=False, log_response=False,
               credentials_args=None, default_global_params=None,
               additional_http_headers=None, response_encoding=None):
    """Create a new cloudasset handle."""
    url = url or self.BASE_URL
    super(CloudassetV1p4beta1, self).__init__(
        url, credentials=credentials,
        get_credentials=get_credentials, http=http, model=model,
        log_request=log_request, log_response=log_response,
        credentials_args=credentials_args,
        default_global_params=default_global_params,
        additional_http_headers=additional_http_headers,
        response_encoding=response_encoding)
    self.v1p4beta1 = self.V1p4beta1Service(self)

  class V1p4beta1Service(base_api.BaseApiService):
    """Service class for the v1p4beta1 resource."""

    _NAME = 'v1p4beta1'

    def __init__(self, client):
      super(CloudassetV1p4beta1.V1p4beta1Service, self).__init__(client)
      self._upload_configs = {
          }

    def AnalyzeIamPolicy(self, request, global_params=None):
      r"""Analyzes IAM policies based on the specified request. Returns.
a list of IamPolicyAnalysisResult matching the request.

      Args:
        request: (CloudassetAnalyzeIamPolicyRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (AnalyzeIamPolicyResponse) The response message.
      """
      config = self.GetMethodConfig('AnalyzeIamPolicy')
      return self._RunMethod(
          config, request, global_params=global_params)

    AnalyzeIamPolicy.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1p4beta1/{v1p4beta1Id}/{v1p4beta1Id1}:analyzeIamPolicy',
        http_method='GET',
        method_id='cloudasset.analyzeIamPolicy',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=['analysisQuery_accessSelector_permissions', 'analysisQuery_accessSelector_roles', 'analysisQuery_identitySelector_identity', 'analysisQuery_resourceSelector_fullResourceName', 'options_analyzeServiceAccountImpersonation', 'options_executionTimeout', 'options_expandGroups', 'options_expandResources', 'options_expandRoles', 'options_outputGroupEdges', 'options_outputResourceEdges'],
        relative_path='v1p4beta1/{+parent}:analyzeIamPolicy',
        request_field='',
        request_type_name='CloudassetAnalyzeIamPolicyRequest',
        response_type_name='AnalyzeIamPolicyResponse',
        supports_download=False,
    )

    def ExportIamPolicyAnalysis(self, request, global_params=None):
      r"""Exports IAM policy analysis based on the specified request. This API.
implements the google.longrunning.Operation API allowing you to keep
track of the export. The metadata contains the request to help callers to
map responses to requests.

      Args:
        request: (CloudassetExportIamPolicyAnalysisRequest) input message
        global_params: (StandardQueryParameters, default: None) global arguments
      Returns:
        (Operation) The response message.
      """
      config = self.GetMethodConfig('ExportIamPolicyAnalysis')
      return self._RunMethod(
          config, request, global_params=global_params)

    ExportIamPolicyAnalysis.method_config = lambda: base_api.ApiMethodInfo(
        flat_path='v1p4beta1/{v1p4beta1Id}/{v1p4beta1Id1}:exportIamPolicyAnalysis',
        http_method='POST',
        method_id='cloudasset.exportIamPolicyAnalysis',
        ordered_params=['parent'],
        path_params=['parent'],
        query_params=[],
        relative_path='v1p4beta1/{+parent}:exportIamPolicyAnalysis',
        request_field='exportIamPolicyAnalysisRequest',
        request_type_name='CloudassetExportIamPolicyAnalysisRequest',
        response_type_name='Operation',
        supports_download=False,
    )
