

from . import AWSProperty, AWSObject, Tags
from .validators import json_checker, boolean


class IEMap(AWSProperty):
    props = {
        'ACCOUNT': ([basestring], False),
    }


class Policy(AWSObject):
    resource_type = "AWS::FMS::Policy"

    props = {
        'DeleteAllPolicyResources': (boolean, False),
        'ExcludeMap': (IEMap, False),
        'ExcludeResourceTags': (boolean, True),
        'IncludeMap': (IEMap, False),
        'PolicyName': (basestring, True),
        'RemediationEnabled': (boolean, True),
        'ResourceTags': (Tags, False),
        'ResourceType': (basestring, True),
        'ResourceTypeList': ([basestring], True),
        'SecurityServicePolicyData': (json_checker, True),
        'Tags': (Tags, False),
    }


class NotificationChannel(AWSObject):
    resource_type = "AWS::FMS::NotificationChannel"

    props = {
        'SnsRoleName': (basestring, True),
        'SnsTopicArn': (basestring, True),
    }



from . import AWSProperty, AWSObject, Tags
from .validators import json_checker, boolean


class IEMap(AWSProperty):
    props = {
        'ACCOUNT': ([basestring], False),
        'ORGUNIT': ([basestring], False),
    }


class Policy(AWSObject):
    resource_type = "AWS::FMS::Policy"

    props = {
        'DeleteAllPolicyResources': (boolean, False),
        'ExcludeMap': (IEMap, False),
        'ExcludeResourceTags': (boolean, True),
        'IncludeMap': (IEMap, False),
        'PolicyName': (basestring, True),
        'RemediationEnabled': (boolean, True),
        'ResourceTags': (Tags, False),
        'ResourceType': (basestring, True),
        'ResourceTypeList': ([basestring], True),
        'SecurityServicePolicyData': (json_checker, True),
        'Tags': (Tags, False),
    }


class NotificationChannel(AWSObject):
    resource_type = "AWS::FMS::NotificationChannel"

    props = {
        'SnsRoleName': (basestring, True),
        'SnsTopicArn': (basestring, True),
    }

Update AWS::FMS::Policy per 2020-06-18 changes
Update AWS::FMS::Policy per 2020-06-18 changes

  
  
  from . import AWSProperty, AWSObject, Tags
  from .validators import json_checker, boolean
  
  
  class IEMap(AWSProperty):
      props = {
          'ACCOUNT': ([basestring], False),
+         'ORGUNIT': ([basestring], False),
      }
  
  
  class Policy(AWSObject):
      resource_type = "AWS::FMS::Policy"
  
      props = {
          'DeleteAllPolicyResources': (boolean, False),
          'ExcludeMap': (IEMap, False),
          'ExcludeResourceTags': (boolean, True),
          'IncludeMap': (IEMap, False),
          'PolicyName': (basestring, True),
          'RemediationEnabled': (boolean, True),
          'ResourceTags': (Tags, False),
          'ResourceType': (basestring, True),
          'ResourceTypeList': ([basestring], True),
          'SecurityServicePolicyData': (json_checker, True),
          'Tags': (Tags, False),
      }
  
  
  class NotificationChannel(AWSObject):
      resource_type = "AWS::FMS::NotificationChannel"
  
      props = {
          'SnsRoleName': (basestring, True),
          'SnsTopicArn': (basestring, True),
      }
  
Update AWS::FMS::Policy per 2020-06-18 changes
## Code Before:


from . import AWSProperty, AWSObject, Tags
from .validators import json_checker, boolean


class IEMap(AWSProperty):
    props = {
        'ACCOUNT': ([basestring], False),
    }


class Policy(AWSObject):
    resource_type = "AWS::FMS::Policy"

    props = {
        'DeleteAllPolicyResources': (boolean, False),
        'ExcludeMap': (IEMap, False),
        'ExcludeResourceTags': (boolean, True),
        'IncludeMap': (IEMap, False),
        'PolicyName': (basestring, True),
        'RemediationEnabled': (boolean, True),
        'ResourceTags': (Tags, False),
        'ResourceType': (basestring, True),
        'ResourceTypeList': ([basestring], True),
        'SecurityServicePolicyData': (json_checker, True),
        'Tags': (Tags, False),
    }


class NotificationChannel(AWSObject):
    resource_type = "AWS::FMS::NotificationChannel"

    props = {
        'SnsRoleName': (basestring, True),
        'SnsTopicArn': (basestring, True),
    }

## Instruction:
Update AWS::FMS::Policy per 2020-06-18 changes
## Code After:


from . import AWSProperty, AWSObject, Tags
from .validators import json_checker, boolean


class IEMap(AWSProperty):
    props = {
        'ACCOUNT': ([basestring], False),
        'ORGUNIT': ([basestring], False),
    }


class Policy(AWSObject):
    resource_type = "AWS::FMS::Policy"

    props = {
        'DeleteAllPolicyResources': (boolean, False),
        'ExcludeMap': (IEMap, False),
        'ExcludeResourceTags': (boolean, True),
        'IncludeMap': (IEMap, False),
        'PolicyName': (basestring, True),
        'RemediationEnabled': (boolean, True),
        'ResourceTags': (Tags, False),
        'ResourceType': (basestring, True),
        'ResourceTypeList': ([basestring], True),
        'SecurityServicePolicyData': (json_checker, True),
        'Tags': (Tags, False),
    }


class NotificationChannel(AWSObject):
    resource_type = "AWS::FMS::NotificationChannel"

    props = {
        'SnsRoleName': (basestring, True),
        'SnsTopicArn': (basestring, True),
    }
