
from . import AWSObject


class CostCategory(AWSObject):
    resource_type = "AWS::CE::CostCategory"

    props = {
        'Name': (basestring, True),
        'Rules': (basestring, True),
        'RuleVersion': (basestring, True),
    }



from . import AWSObject
from . import AWSProperty
from .validators import double


class AnomalyMonitor(AWSObject):
    resource_type = "AWS::CE::AnomalyMonitor"

    props = {
        'MonitorDimension': (basestring, False),
        'MonitorName': (basestring, True),
        'MonitorSpecification': (basestring, False),
        'MonitorType': (basestring, True),
    }


class Subscriber(AWSProperty):
    props = {
        'Address': (basestring, True),
        'Status': (basestring, False),
        'Type': (basestring, True),
    }


class AnomalySubscription(AWSObject):
    resource_type = "AWS::CE::AnomalySubscription"

    props = {
        'Frequency': (basestring, True),
        'MonitorArnList': ([basestring], True),
        'Subscribers': ([Subscriber], True),
        'SubscriptionName': (basestring, True),
        'Threshold': (double, True),
    }


class CostCategory(AWSObject):
    resource_type = "AWS::CE::CostCategory"

    props = {
        'Name': (basestring, True),
        'RuleVersion': (basestring, True),
        'Rules': (basestring, True),
    }

Update CE per 2021-03-11 changes
Update CE per 2021-03-11 changes

+ 
  
  from . import AWSObject
+ from . import AWSProperty
+ from .validators import double
+ 
+ 
+ class AnomalyMonitor(AWSObject):
+     resource_type = "AWS::CE::AnomalyMonitor"
+ 
+     props = {
+         'MonitorDimension': (basestring, False),
+         'MonitorName': (basestring, True),
+         'MonitorSpecification': (basestring, False),
+         'MonitorType': (basestring, True),
+     }
+ 
+ 
+ class Subscriber(AWSProperty):
+     props = {
+         'Address': (basestring, True),
+         'Status': (basestring, False),
+         'Type': (basestring, True),
+     }
+ 
+ 
+ class AnomalySubscription(AWSObject):
+     resource_type = "AWS::CE::AnomalySubscription"
+ 
+     props = {
+         'Frequency': (basestring, True),
+         'MonitorArnList': ([basestring], True),
+         'Subscribers': ([Subscriber], True),
+         'SubscriptionName': (basestring, True),
+         'Threshold': (double, True),
+     }
  
  
  class CostCategory(AWSObject):
      resource_type = "AWS::CE::CostCategory"
  
      props = {
          'Name': (basestring, True),
+         'RuleVersion': (basestring, True),
          'Rules': (basestring, True),
-         'RuleVersion': (basestring, True),
      }
  
Update CE per 2021-03-11 changes
## Code Before:

from . import AWSObject


class CostCategory(AWSObject):
    resource_type = "AWS::CE::CostCategory"

    props = {
        'Name': (basestring, True),
        'Rules': (basestring, True),
        'RuleVersion': (basestring, True),
    }

## Instruction:
Update CE per 2021-03-11 changes
## Code After:


from . import AWSObject
from . import AWSProperty
from .validators import double


class AnomalyMonitor(AWSObject):
    resource_type = "AWS::CE::AnomalyMonitor"

    props = {
        'MonitorDimension': (basestring, False),
        'MonitorName': (basestring, True),
        'MonitorSpecification': (basestring, False),
        'MonitorType': (basestring, True),
    }


class Subscriber(AWSProperty):
    props = {
        'Address': (basestring, True),
        'Status': (basestring, False),
        'Type': (basestring, True),
    }


class AnomalySubscription(AWSObject):
    resource_type = "AWS::CE::AnomalySubscription"

    props = {
        'Frequency': (basestring, True),
        'MonitorArnList': ([basestring], True),
        'Subscribers': ([Subscriber], True),
        'SubscriptionName': (basestring, True),
        'Threshold': (double, True),
    }


class CostCategory(AWSObject):
    resource_type = "AWS::CE::CostCategory"

    props = {
        'Name': (basestring, True),
        'RuleVersion': (basestring, True),
        'Rules': (basestring, True),
    }
