1# Copyright The Cloud Custodian Authors.
2# SPDX-License-Identifier: Apache-2.0
3
4from c7n.registry import PluginRegistry
5from c7n.provider import Provider, clouds
6
7from .client import Session
8from functools import partial
9
10from c7n_gcp.resources.resource_map import ResourceMap
11
12
13@clouds.register('gcp')
14class GoogleCloud(Provider):
15
16 display_name = 'GCP'
17 resource_prefix = 'gcp'
18 resources = PluginRegistry('%s.resources' % resource_prefix)
19 resource_map = ResourceMap
20
21 def initialize(self, options):
22 return options
23
24 def initialize_policies(self, policy_collection, options):
25 return policy_collection
26
27 def get_session_factory(self, options):
28 """Get a credential/session factory for api usage."""
29 return partial(
30 Session, project_id=options.account_id, impersonate_service=options.assume_role)
31
32
33resources = GoogleCloud.resources