c7n.query module

class c7n.query.ChildDescribeSource(manager)[source]

Bases: c7n.query.DescribeSource

get_query()[source]
resource_query_factory

alias of ChildResourceQuery

type = 'describe-child'
type_aliases = None
class c7n.query.ChildResourceManager(data, options)[source]

Bases: c7n.query.QueryResourceManager

child_source = 'describe-child'
get_parent_manager()[source]
source_type
class c7n.query.ChildResourceQuery(session_factory, manager)[source]

Bases: c7n.query.ResourceQuery

A resource query for resources that must be queried with parent information.

Several resource types can only be queried in the context of their parents identifiers. ie. efs mount targets (parent efs), route53 resource records (parent hosted zone), ecs services (ecs cluster).

capture_parent_id = False
filter(resource_manager, **params)[source]

Query a set of resources.

get_parent_parameters(params, parent_id, parent_key)[source]
parent_key = 'c7n:parent-id'
class c7n.query.ConfigSource(manager)[source]

Bases: object

augment(resources)[source]
get_permissions()[source]
get_query_params(query)[source]

Parse config select expression from policy and parameter.

On policy config supports a full statement being given, or a clause that will be added to the where expression.

If no query is specified, a default query is utilized.

A valid query should at minimum select fields for configuration, supplementaryConfiguration and must have resourceType qualifier.

get_resources(ids, cache=True)[source]
load_resource(item)[source]
resources(query=None)[source]
static retry(func, *args, **kw)
type = 'config'
type_aliases = None
class c7n.query.DescribeSource(manager)[source]

Bases: object

augment(resources)[source]
get_permissions()[source]
get_query()[source]
get_query_params(query_params)[source]
get_resources(ids, cache=True)[source]
resource_query_factory

alias of ResourceQuery

resources(query)[source]
type = 'describe'
type_aliases = None
class c7n.query.MaxResourceLimit(policy, selection_count, population_count)[source]

Bases: object

C7N_MAXRES_OP = 'or'
_parse_policy()[source]
check_resource_limits()[source]
class c7n.query.QueryMeta[source]

Bases: type

class c7n.query.QueryResourceManager(data, options)[source]

Bases: c7n.manager.ResourceManager

_generate_arn = None
_get_cached_resources(ids)[source]
account_id

Return the current account ID.

This should now be passed in using the –account-id flag, but for a period of time we will support the old behavior of inferring this from IAM.

action_registry = <c7n.actions.core.ActionRegistry object>
augment(resources)[source]

subclasses may want to augment resources with additional information.

ie. we want tags by default (rds, elb), and policy, location, acl for s3 buckets.

check_resource_limit(selection_count, population_count)[source]

Check if policy’s execution affects more resources then its limit.

Ideally this would be at a higher level but we’ve hidden filtering behind the resource manager facade for default usage.

chunk_size = 20
filter_registry = <c7n.filters.core.FilterRegistry object>
generate_arn

Generates generic arn if ID is not already arn format.

get_arns(resources)[source]
get_cache_key(query)[source]
classmethod get_model()[source]

Returns the resource meta-model.

get_permissions()[source]
get_resources(ids, cache=True, augment=True)[source]

Retrieve a set of resources by id.

get_source(source_type)[source]
classmethod has_arn()[source]
classmethod match_ids(ids)[source]

return ids that match this resource type’s id format.

max_workers = 3
permissions = ()
region

Return the current region.

resource_type = ''
resources(query=None)[source]
static retry(func, *args, **kw)
source_type
class c7n.query.ResourceQuery(session_factory)[source]

Bases: object

_invoke_client_enum(client, enum_op, params, path, retry=None)[source]
filter(resource_manager, **params)[source]

Query a set of resources.

get(resource_manager, identities)[source]

Get resources by identities

static resolve(resource_type)[source]
class c7n.query.RetryPageIterator(method, input_token, output_token, more_results, result_keys, non_aggregate_keys, limit_key, max_items, starting_token, page_size, op_kwargs)[source]

Bases: botocore.paginate.PageIterator

_make_request(current_kwargs)[source]
static retry(func, *args, **kw)
class c7n.query.TypeInfo[source]

Bases: object

Resource Type Metadata

arn = None
arn_separator = '/'
arn_service = None
arn_type = None
batch_detail_spec = None
config_type = None
date = None
default_report_fields = ()
detail_spec = None
dimension = None
enum_spec = None
filter_name = None
filter_type = None
global_resource = False
id = None
id_prefix = None
metrics_namespace = None
name = None
permission_prefix = None
permissions_augment = None
permissions_enum = None
service = None
universal_taggable = False
class c7n.query.TypeMeta[source]

Bases: type

c7n.query._batch_augment(manager, model, detail_spec, resource_set)[source]
c7n.query._napi(op_name)[source]
c7n.query._scalar_augment(manager, model, detail_spec, resource_set)[source]