UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

375 lines (374 loc) 15.3 kB
import { AccessLevelList } from '../../shared/access-level'; import { PolicyStatement, Operator } from '../../shared'; import { aws_iam as iam } from "aws-cdk-lib"; /** * Statement provider for service [schemas](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgeschemas.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ export declare class Schemas extends PolicyStatement { servicePrefix: string; /** * Grants permission to create an event schema discoverer. Once created, your events will be automatically map into corresponding schema documents * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discoverers-id-discovererid.html#CreateDiscoverer */ toCreateDiscoverer(): this; /** * Grants permission to create a new schema registry in your account * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#CreateRegistry */ toCreateRegistry(): this; /** * Grants permission to create a new schema in your account * * Access Level: Write * * Possible conditions: * - .ifAwsRequestTag() * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#CreateSchema */ toCreateSchema(): this; /** * Grants permission to delete discoverer in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discoverers-id-discovererid.html#DeleteDiscoverer */ toDeleteDiscoverer(): this; /** * Grants permission to delete an existing registry in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#DeleteRegistry */ toDeleteRegistry(): this; /** * Grants permission to delete the resource-based policy attached to a given registry * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-policy.html#DeleteResourcePolicy */ toDeleteResourcePolicy(): this; /** * Grants permission to delete an existing schema in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DeleteSchema */ toDeleteSchema(): this; /** * Grants permission to delete a specific version of schema in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-version-schemaversion.html#DeleteSchemaVersion */ toDeleteSchemaVersion(): this; /** * Grants permission to retrieve metadata for generated code for specific schema in your account * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-language-language.html#DescribeCodeBinding */ toDescribeCodeBinding(): this; /** * Grants permission to retrieve discoverer metadata in your account * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discoverers-id-discovererid.html#DescribeDiscoverer */ toDescribeDiscoverer(): this; /** * Grants permission to describe an existing registry metadata in your account * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#DescribeRegistry */ toDescribeRegistry(): this; /** * Grants permission to retrieve an existing schema in your account * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#DescribeSchema */ toDescribeSchema(): this; /** * Grants permission to export the AWS registry or discovered schemas in OpenAPI 3 format to JSONSchema format * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-policy.html#ExportSchema */ toExportSchema(): this; /** * Grants permission to retrieve metadata for generated code for specific schema in your account * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-language-language-source.html#GetCodeBindingSource */ toGetCodeBindingSource(): this; /** * Grants permission to retrieve a schema for the provided list of sample events * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discover.html#GetDiscoveredSchema */ toGetDiscoveredSchema(): this; /** * Grants permission to retrieve the resource-based policy attached to a given registry * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-policy.html#GetResourcePolicy */ toGetResourcePolicy(): this; /** * Grants permission to list all discoverers in your account * * Access Level: List * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discoverers.html#ListDiscoverers */ toListDiscoverers(): this; /** * Grants permission to list all registries in your account * * Access Level: List * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries.html#ListRegistries */ toListRegistries(): this; /** * Grants permission to list all versions of a schema * * Access Level: List * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-versions.html#ListSchemaVersions */ toListSchemaVersions(): this; /** * Grants permission to list all schemas * * Access Level: List * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas.html#ListSchemas */ toListSchemas(): this; /** * Grants permission to lists tags for a resource * * Access Level: Read * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/tags-resource-arn.html#ListTagsForResource */ toListTagsForResource(): this; /** * Grants permission to generate code for specific schema in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname-language-language.html#PutCodeBinding */ toPutCodeBinding(): this; /** * Grants permission to attach a resource-based policy to a given registry * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-policy.html#PutResourcePolicy */ toPutResourcePolicy(): this; /** * Grants permission to search schemas based on specified keywords in your account * * Access Level: List * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-search.html#SearchSchemas */ toSearchSchemas(): this; /** * Grants permission to start the specified discoverer. Once started the discoverer will automatically register schemas for published events to configured source in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discoverers-id-discovererid.html#StartDiscoverer */ toStartDiscoverer(): this; /** * Grants permission to stop the specified discoverer. Once stopped the discoverer will no longer register schemas for published events to configured source in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discoverers-id-discovererid.html#StopDiscoverer */ toStopDiscoverer(): this; /** * Grants permission to tag a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * - .ifAwsRequestTag() * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/tags-resource-arn.html#TagResource */ toTagResource(): this; /** * Grants permission to remove a tag from a resource * * Access Level: Tagging * * Possible conditions: * - .ifAwsTagKeys() * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/tags-resource-arn.html#UntagResource */ toUntagResource(): this; /** * Grants permission to update an existing discoverer in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-discoverers-id-discovererid.html#UpdateDiscoverer */ toUpdateDiscoverer(): this; /** * Grants permission to update an existing registry metadata in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname.html#UpdateRegistry */ toUpdateRegistry(): this; /** * Grants permission to update an existing schema in your account * * Access Level: Write * * https://docs.aws.amazon.com/eventbridge/latest/schema-reference/v1-registries-name-registryname-schemas-name-schemaname.html#UpdateSchema */ toUpdateSchema(): this; protected accessLevelList: AccessLevelList; /** * Adds a resource of type discoverer to the statement * * https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-schema.html * * @param discovererId - Identifier for the discovererId. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onDiscoverer(discovererId: string, account?: string, region?: string, partition?: string): this; /** * Adds a resource of type registry to the statement * * https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-schema.html * * @param registryName - Identifier for the registryName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onRegistry(registryName: string, account?: string, region?: string, partition?: string): this; /** * Adds a resource of type schema to the statement * * https://docs.aws.amazon.com/eventbridge/latest/userguide/eb-schema.html * * @param registryName - Identifier for the registryName. * @param schemaName - Identifier for the schemaName. * @param account - Account of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's account. * @param region - Region of the resource; defaults to `*`, unless using the CDK, where the default is the current Stack's region. * @param partition - Partition of the AWS account [aws, aws-cn, aws-us-gov]; defaults to `aws`, unless using the CDK, where the default is the current Stack's partition. * * Possible conditions: * - .ifAwsResourceTag() */ onSchema(registryName: string, schemaName: string, account?: string, region?: string, partition?: string): this; /** * Filters access by allowed set of values for each of the tags * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-requesttag * * Applies to actions: * - .toCreateDiscoverer() * - .toCreateRegistry() * - .toCreateSchema() * - .toTagResource() * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsRequestTag(tagKey: string, value: string | string[], operator?: Operator | string): this; /** * Filters access by tag-value associated with the resource * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-resourcetag * * Applies to resource types: * - discoverer * - registry * - schema * * @param tagKey The tag key to check * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsResourceTag(tagKey: string, value: string | string[], operator?: Operator | string): this; /** * Filters access by the presence of mandatory tags in the request * * https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_condition-keys.html#condition-keys-tagkeys * * Applies to actions: * - .toCreateDiscoverer() * - .toCreateRegistry() * - .toCreateSchema() * - .toTagResource() * - .toUntagResource() * * @param value The value(s) to check * @param operator Works with [string operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_String). **Default:** `StringLike` */ ifAwsTagKeys(value: string | string[], operator?: Operator | string): this; /** * Statement provider for service [schemas](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazoneventbridgeschemas.html). * */ constructor(props?: iam.PolicyStatementProps); }