class DateTimeExpression(Element): schema = Leaf(type=text_type)
class OperationTimeoutRecoverable(Element): schema = Leaf(type=bool)
class ImportLoader(Element): schema = Leaf(type=str)
class Metadata(Element): schema = Leaf(type=dict)
class WorkflowMapping(Element): required = True schema = Leaf(type=str)
class PluginSource(Element): schema = Leaf(type=str)
class OutputDescription(Element): schema = Leaf(type=str)
class ScheduledWorkflowWaitAfterFail(Element): schema = Leaf(type=int)
class ScheduledWorkflowAllowCustomParameters(Element): schema = Leaf(type=bool)
class ScheduledWorkflowForce(Element): schema = Leaf(type=bool)
class ScheduledWorkflowDryRun(Element): schema = Leaf(type=bool)
class ScheduledWorkflowId(Element): required = True schema = Leaf(type=text_type)
class TimeZoneExpression(Element): schema = Leaf(type=text_type)
class TimeDelta(Element): schema = Leaf(type=text_type) def validate(self): if self.initial_value: unpack_timedelta_string(self.initial_value)
class Imported(Element): schema = Leaf(type=basestring)
class PolicyTypeSource(Element): required = True schema = Leaf(type=str)
class WorkflowAvailable(Element): schema = Leaf(type=bool) add_namespace_to_schema_elements = False
class NodeTemplateOperationInputs(Element): schema = Leaf(type=dict) def parse(self): return self.initial_value if self.initial_value is not None else {}
class PolicyTypeSource(Element): required = True schema = Leaf(type=basestring) add_namespace_to_schema_elements = False
class NodeTemplateRelationshipProperties(Element): schema = Leaf(type=dict) requires = { NodeTemplateRelationshipType: [], NodeTemplateRelationshipTarget: [], _relationships.Relationships: [Value('relationships')], _data_types.DataTypes: [Value('data_types')] } def parse(self, relationships, data_types): relationship_type_name = self.sibling( NodeTemplateRelationshipType).value properties = self.initial_value or {} return utils.merge_schema_and_instance_properties( instance_properties=properties, schema_properties=relationships[relationship_type_name][ 'properties'], data_types=data_types, undefined_property_error_message=( "'{0}' node relationship '{1}' property is not part of " "the derived relationship type properties schema"), missing_property_error_message=( "'{0}' node relationship does not provide a " "value for mandatory " "'{1}' property which is " 'part of its relationship type schema'), node_name=self.ancestor(NodeTemplate).name) def validate(self, relationships, **kwargs): relationship_type = self.sibling(NodeTemplateRelationshipType).value node_name = self.ancestor(NodeTemplate).name if (relationship_type == 'cloudify.relationships.depends_on_lifecycle_operation'): target_node = self.sibling( NodeTemplateRelationshipTarget).value properties = self.initial_value or {} node_templates = self.ancestor(NodeTemplates).initial_value_holder operation_input = properties.get('operation', None) if not operation_input: raise exceptions.DSLParsingLogicException( 215, 'For "{1}" node, please supply "{0}" with a defined ' 'lifecycle operation target '.format(relationship_type, node_name)) _, target_node_interfaces = node_templates[target_node].get_item( 'interfaces') if (not target_node_interfaces or operation_input not in target_node_interfaces['cloudify.interfaces.lifecycle']): raise exceptions.DSLParsingLogicException( 216, 'Please define "{0}" operation in the target node "{1}" ' 'for "{3}" node\'s "{2}" relationship'.format( operation_input, target_node, relationship_type, node_name))
class OutputValue(Element): required = True schema = Leaf(type=elements.PRIMITIVE_TYPES)
class NamespaceMapping(Element): schema = Leaf(type=basestring) add_namespace_to_schema_elements = False
class ImportLoader(Element): schema = Leaf(type=text_type)
class OutputDescription(Element): schema = Leaf(type=str) add_namespace_to_schema_elements = False
class WorkflowIsCascading(Element): schema = Leaf(type=bool) add_namespace_to_schema_elements = False
class CapabilityDescription(Element): schema = Leaf(type=str) add_namespace_to_schema_elements = False
class OperationImplementation(Element): schema = Leaf(type=text_type) def parse(self): return self.initial_value if self.initial_value is not None else ''
class CapabilityValue(Element): required = True schema = Leaf(type=elements.PRIMITIVE_TYPES)
class Import(Element): schema = Leaf(type=str)
class ScheduleName(Element): required = True schema = Leaf(type=text_type)