Source code for troposphere.iam

# Copyright (c) 2012-2022, Mark Peek <mark@peek.org>
# All rights reserved.
#
# See LICENSE file for full license.
#
# *** Do not modify - this file is autogenerated ***


from . import AWSObject, AWSProperty, PropsDictType, Tags
from .validators import boolean, integer
from .validators.iam import Active  # noqa: F401
from .validators.iam import Inactive  # noqa: F401
from .validators.iam import (
    iam_group_name,
    iam_path,
    iam_role_name,
    iam_user_name,
    policytypes,
    status,
    validate_tags_or_list,
)


[docs]class AccessKey(AWSObject): """ `AccessKey <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-accesskey.html>`__ """ resource_type = "AWS::IAM::AccessKey" props: PropsDictType = { "Serial": (integer, False), "Status": (status, False), "UserName": (str, True), }
[docs]class Policy(AWSProperty): """ `Policy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-policy.html>`__ """ props: PropsDictType = { "PolicyDocument": (policytypes, True), "PolicyName": (str, True), }
[docs]class Group(AWSObject): """ `Group <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-group.html>`__ """ resource_type = "AWS::IAM::Group" props: PropsDictType = { "GroupName": (iam_group_name, False), "ManagedPolicyArns": ([str], False), "Path": (iam_path, False), "Policies": ([Policy], False), }
[docs]class GroupPolicy(AWSObject): """ `GroupPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-grouppolicy.html>`__ """ resource_type = "AWS::IAM::GroupPolicy" props: PropsDictType = { "GroupName": (str, True), "PolicyDocument": (dict, False), "PolicyName": (str, True), }
[docs]class InstanceProfile(AWSObject): """ `InstanceProfile <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html>`__ """ resource_type = "AWS::IAM::InstanceProfile" props: PropsDictType = { "InstanceProfileName": (str, False), "Path": (iam_path, False), "Roles": ([str], True), }
[docs]class ManagedPolicy(AWSObject): """ `ManagedPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-managedpolicy.html>`__ """ resource_type = "AWS::IAM::ManagedPolicy" props: PropsDictType = { "Description": (str, False), "Groups": ([str], False), "ManagedPolicyName": (str, False), "Path": (iam_path, False), "PolicyDocument": (policytypes, True), "Roles": ([str], False), "Users": ([str], False), }
[docs]class OIDCProvider(AWSObject): """ `OIDCProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-oidcprovider.html>`__ """ resource_type = "AWS::IAM::OIDCProvider" props: PropsDictType = { "ClientIdList": ([str], False), "Tags": (Tags, False), "ThumbprintList": ([str], True), "Url": (str, False), }
[docs]class PolicyType(AWSObject): """ `PolicyType <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-policy.html>`__ """ resource_type = "AWS::IAM::Policy" props: PropsDictType = { "Groups": ([str], False), "PolicyDocument": (policytypes, True), "PolicyName": (str, True), "Roles": ([str], False), "Users": ([str], False), }
[docs]class Role(AWSObject): """ `Role <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-role.html>`__ """ resource_type = "AWS::IAM::Role" props: PropsDictType = { "AssumeRolePolicyDocument": (policytypes, True), "Description": (str, False), "ManagedPolicyArns": ([str], False), "MaxSessionDuration": (integer, False), "Path": (iam_path, False), "PermissionsBoundary": (str, False), "Policies": ([Policy], False), "RoleName": (iam_role_name, False), "Tags": (validate_tags_or_list, False), }
[docs]class RolePolicy(AWSObject): """ `RolePolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-rolepolicy.html>`__ """ resource_type = "AWS::IAM::RolePolicy" props: PropsDictType = { "PolicyDocument": (dict, False), "PolicyName": (str, True), "RoleName": (str, True), }
[docs]class SAMLProvider(AWSObject): """ `SAMLProvider <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-samlprovider.html>`__ """ resource_type = "AWS::IAM::SAMLProvider" props: PropsDictType = { "Name": (str, False), "SamlMetadataDocument": (str, True), "Tags": (Tags, False), }
[docs]class ServerCertificate(AWSObject): """ `ServerCertificate <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servercertificate.html>`__ """ resource_type = "AWS::IAM::ServerCertificate" props: PropsDictType = { "CertificateBody": (str, False), "CertificateChain": (str, False), "Path": (str, False), "PrivateKey": (str, False), "ServerCertificateName": (str, False), "Tags": (Tags, False), }
[docs]class ServiceLinkedRole(AWSObject): """ `ServiceLinkedRole <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-servicelinkedrole.html>`__ """ resource_type = "AWS::IAM::ServiceLinkedRole" props: PropsDictType = { "AWSServiceName": (str, False), "CustomSuffix": (str, False), "Description": (str, False), }
[docs]class LoginProfile(AWSProperty): """ `LoginProfile <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-user-loginprofile.html>`__ """ props: PropsDictType = { "Password": (str, True), "PasswordResetRequired": (boolean, False), }
[docs]class User(AWSObject): """ `User <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-user.html>`__ """ resource_type = "AWS::IAM::User" props: PropsDictType = { "Groups": ([str], False), "LoginProfile": (LoginProfile, False), "ManagedPolicyArns": ([str], False), "Path": (iam_path, False), "PermissionsBoundary": (str, False), "Policies": ([Policy], False), "Tags": (Tags, False), "UserName": (iam_user_name, False), }
[docs]class UserPolicy(AWSObject): """ `UserPolicy <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-userpolicy.html>`__ """ resource_type = "AWS::IAM::UserPolicy" props: PropsDictType = { "PolicyDocument": (dict, False), "PolicyName": (str, True), "UserName": (str, True), }
[docs]class UserToGroupAddition(AWSObject): """ `UserToGroupAddition <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iam-addusertogroup.html>`__ """ resource_type = "AWS::IAM::UserToGroupAddition" props: PropsDictType = { "GroupName": (str, True), "Users": ([str], True), }
[docs]class VirtualMFADevice(AWSObject): """ `VirtualMFADevice <http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-virtualmfadevice.html>`__ """ resource_type = "AWS::IAM::VirtualMFADevice" props: PropsDictType = { "Path": (str, False), "Tags": (Tags, False), "Users": ([str], True), "VirtualMfaDeviceName": (str, False), }