Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
"""
Properties:
- AssumeRolePolicyDocument: A [policy document][pycfmodel.model.resources.properties.policy_document.PolicyDocument] object.
- ManagedPolicyArns: List of ARNs of the IAM managed policies to attach.
- MaxSessionDuration: Maximum session duration (in seconds).
- Path: Path to the role.
- PermissionsBoundary: ARN of the policy used to set the permissions boundary.
- Policies: A list of [policy][pycfmodel.model.resources.properties.policy.Policy] objects.
- RoleName: Name of the role.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
"""
AssumeRolePolicyDocument: Resolvable[PolicyDocument]
ManagedPolicyArns: Optional[Resolvable[List[ResolvableStr]]] = None
MaxSessionDuration: Optional[ResolvableIntOrStr] = None
Path: Optional[ResolvableStr] = None
PermissionsBoundary: Optional[ResolvableStr] = None
Policies: Optional[Resolvable[List[Resolvable[Policy]]]] = None
RoleName: Optional[ResolvableStr] = None
class IAMRole(Resource):
"""
Properties:
- Properties: A [IAM Role properties][pycfmodel.model.resources.iam_role.IAMRoleProperties] object.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html)
"""
- Parameters: Parameters to the template.
- Resources: Stack resources and their properties.
- Rules
- Transform: For serverless applications, specifies the version of the AWS Serverless Application Model (AWS SAM) to use.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/template-anatomy.html)
"""
AWSTemplateFormatVersion: Optional[date]
Conditions: Optional[Dict] = {}
Description: Optional[str] = None
Mappings: Optional[Dict[str, Dict[str, Dict[str, Any]]]] = {}
Metadata: Optional[Dict[str, Dict]] = None
Outputs: Optional[Dict[str, Dict[str, Union[str, Dict]]]] = {}
Parameters: Optional[Dict[str, Parameter]] = {}
Resources: Dict[str, Resolvable[Union[ResourceModels, GenericResource]]] = {}
Rules: Optional[Dict] = {}
Transform: Optional[List]
PSEUDO_PARAMETERS: ClassVar[Dict[str, Union[str, List[str]]]] = {
# default pseudo parameters
"AWS::AccountId": "123456789012",
"AWS::NotificationARNs": [],
"AWS::NoValue": AWS_NOVALUE,
"AWS::Partition": "aws",
"AWS::Region": "eu-west-1",
"AWS::StackId": "",
"AWS::StackName": "",
"AWS::URLSuffix": "amazonaws.com",
}
def resolve(self, extra_params=None) -> "CFModel":
- GroupName: Name of the security group.
- SecurityGroupEgress: Outbound rules associated with the security group.
- SecurityGroupIngress: Inbound rules associated with the security group.
- Tags: Array of key-value pairs.
- VpcId: ID of the VPC for the security group.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)
"""
GroupDescription: ResolvableStr
GroupName: Optional[ResolvableStr] = None
SecurityGroupEgress: Optional[
Resolvable[Union[SecurityGroupEgressProp, List[Resolvable[SecurityGroupEgressProp]]]]
] = None
SecurityGroupIngress: Optional[
Resolvable[Union[SecurityGroupIngressProp, List[Resolvable[SecurityGroupIngressProp]]]]
] = None
Tags: Optional[Resolvable[List[Dict]]] = None
VpcId: Optional[ResolvableStr] = None
class SecurityGroup(Resource):
"""
Properties:
- Properties: A [Security Group Properties][pycfmodel.model.resources.security_group.SecurityGroupProperties] object.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-security-group.html)
"""
TYPE_VALUE: ClassVar = "AWS::EC2::SecurityGroup"
Type: str = TYPE_VALUE
from pycfmodel.model.resources.properties.property import Property
from pycfmodel.model.types import Resolvable, ResolvableStr
class Policy(Property):
"""
Contains information about an attached policy.
Properties:
- PolicyDocument: A [policy document][pycfmodel.model.resources.properties.policy_document.PolicyDocument] object.
- PolicyName: The friendly name (not ARN) identifying the policy.
"""
PolicyName: ResolvableStr
PolicyDocument: Resolvable[PolicyDocument]
class PolicyDocument(Property):
"""
Contains information about an attached policy.
Properties:
- Statement: A [statement][pycfmodel.model.resources.properties.statement.Statement] object.
- Version
"""
class Config(Property.Config):
extra = Extra.allow
Statement: Resolvable[Union[Statement, List[Resolvable[Statement]]]]
Version: Optional[ResolvableDate] = None
def _statement_as_list(self) -> List[Statement]:
if isinstance(self.Statement, Statement):
return [self.Statement]
return self.Statement
def statements_with(self, pattern: Pattern) -> List[Statement]:
"""
Finds all statements which have at least one resource with the pattern.
Arguments:
pattern: Pattern to match.
Returns:
List of [statements][pycfmodel.model.resources.properties.statement.Statement].
Bucket: ResolvableStr
PolicyDocument: Resolvable[PolicyDocument]
class S3BucketPolicy(Resource):
"""
Properties:
- Properties: A [S3 Bucket Policy Properties][pycfmodel.model.resources.s3_bucket_policy.S3BucketPolicyProperties] object.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-s3-policy.html)
"""
TYPE_VALUE: ClassVar = "AWS::S3::BucketPolicy"
Type: str = TYPE_VALUE
Properties: Resolvable[S3BucketPolicyProperties]
- Enabled: Specifies whether the customer master key (CMK) is enabled.
- KeyPolicy: A [policy document][pycfmodel.model.resources.properties.policy_document.PolicyDocument] object.
- KeyUsage: Determines the cryptographic operations.
- PendingWindowInDays: Number of days in the waiting period before AWS KMS deletes a CMK that has been removed from a CloudFormation stack.
- Tags: Array of key-value pairs.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)
"""
Description: Optional[ResolvableStr] = None
EnableKeyRotation: Optional[ResolvableBool] = None
Enabled: Optional[ResolvableBool] = None
KeyPolicy: Resolvable[PolicyDocument]
KeyUsage: Optional[ResolvableStr] = None
PendingWindowInDays: Optional[ResolvableInt] = None
Tags: Optional[Resolvable[List[Dict]]] = None
class KMSKey(Resource):
"""
Properties:
- Properties: A [KMS Key properties][pycfmodel.model.resources.kms_key.KMSKeyProperties] object.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-kms-key.html)
"""
TYPE_VALUE: ClassVar = "AWS::KMS::Key"
Type: str = TYPE_VALUE
Properties: Resolvable[KMSKeyProperties]
- Description: Description of the policy.
- Groups: Friendly name of the IAM groups to attach the policy to.
- ManagedPolicyName: Name of the policy.
- Path: Path to the policy.
- PolicyDocument: A [policy document][pycfmodel.model.resources.properties.policy_document.PolicyDocument] object.
- Roles: Friendly name of the IAM roles to attach the policy to.
- Users: Friendly name of the IAM users to attach the policy to.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html)
"""
Description: Optional[ResolvableStr] = None
Groups: Optional[Resolvable[List[ResolvableStr]]] = None
ManagedPolicyName: Optional[ResolvableStr] = None
Path: Optional[ResolvableStr] = None
PolicyDocument: Resolvable[PolicyDocument]
Roles: Optional[Resolvable[List[ResolvableStr]]] = None
Users: Optional[Resolvable[List[ResolvableStr]]] = None
class IAMManagedPolicy(Resource):
"""
Properties:
- Properties: A [IAM Managed Policy properties][pycfmodel.model.resources.iam_managed_policy.IAMManagedPolicyProperties] object.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html)
"""
TYPE_VALUE: ClassVar = "AWS::IAM::ManagedPolicy"
Type: str = TYPE_VALUE
Properties: Resolvable[IAMManagedPolicyProperties]
class IAMPolicyProperties(CustomModel):
"""
Properties:
- Groups: Friendly name of the IAM groups to attach the policy to.
- PolicyDocument: A [policy document][pycfmodel.model.resources.properties.policy_document.PolicyDocument] object.
- PolicyName: Name of the policy.
- Roles: Friendly name of the IAM roles to attach the policy to.
- Users: Friendly name of the IAM users to attach the policy to.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)
"""
Groups: Optional[ResolvableStrOrList] = None
PolicyDocument: Resolvable[PolicyDocument]
PolicyName: ResolvableStr
Roles: Optional[ResolvableStrOrList] = None
Users: Optional[ResolvableStrOrList] = None
class IAMPolicy(Resource):
"""
Properties:
- Properties: A [IAM Policy properties][pycfmodel.model.resources.iam_policy.IAMPolicyProperties] object.
More info at [AWS Docs](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html)
"""
TYPE_VALUE: ClassVar = "AWS::IAM::Policy"
Type: str = TYPE_VALUE