eslint-plugin-json-schema-validator
Version:
ESLint plugin that validates data using JSON Schema Validator.
1 lines • 189 kB
JSON
{"$schema":"http://json-schema.org/draft-07/schema#","title":"Blueprint","type":"object","properties":{"tosca_definitions_version":{"type":"string","enum":["cloudify_dsl_1_0","cloudify_dsl_1_1","cloudify_dsl_1_2","cloudify_dsl_1_3"],"default":"cloudify_dsl_1_3"},"imports":{"type":"array","items":{"anyOf":[{"type":"string"},{"type":"string","enum":["http://www.getcloudify.org/spec/cloudify/4.5/types.yaml","plugin:cloudify-ansible-plugin","plugin:cloudify-aws-plugin","plugin:cloudify-azure-plugin","plugin:cloudify-cloudstack-plugin","plugin:cloudify-diamond-plugin","plugin:cloudify-fabric-plugin","plugin:cloudify-gcp-plugin","plugin:cloudify-host-pool-plugin","plugin:cloudify-kubernetes-plugin","plugin:cloudify-openstack-plugin","plugin:cloudify-utilities-plugin","plugin:cloudify-vsphere-plugin","plugin:cloudify-terraform-plugin","plugin:cloudify-helm-plugin"]}],"default":"http://www.getcloudify.org/spec/cloudify/4.5/types.yaml"}},"data_types":{"$ref":"#/definitions/dataTypes"},"inputs":{"type":"object","properties":{"aws_access_key_id":{"$ref":"#/definitions/inputProperty"},"aws_secret_access_key":{"$ref":"#/definitions/inputProperty"},"aws_region_name":{"$ref":"#/definitions/inputProperty"},"aws_account_id":{"$ref":"#/definitions/inputProperty"},"aws_region_zone1":{"$ref":"#/definitions/inputProperty"},"aws_region_zone2":{"$ref":"#/definitions/inputProperty"},"aws_cloudwatch_log_arn":{"$ref":"#/definitions/inputProperty"}},"patternProperties":{"":{"$ref":"#/definitions/inputProperty"}}},"dsl_definitions":{"type":"object"},"node_type":{"$ref":"#/definitions/nodeTypes"},"node_templates":{"$ref":"#/definitions/nodeTemplates"}},"definitions":{"dataTypes":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/dataType"}}},"dataType":{"type":"object","properties":{"description":{"type":"string"},"properties":{"type":"object"},"derived_from":{"type":"string"}},"additionalProperties":false},"inputProperty":{"type":"object","properties":{"description":{"type":"string"},"type":{"anyOf":[{"type":"string"},{"type":"string","enum":["string","integer","float","boolean","list","dict","regex"]}]},"default":{"type":["number","string","array","boolean","integer","object"]},"constraints":{"$ref":"#/definitions/inputPropertyConstraints"},"required":{"type":"boolean"}},"additionalProperties":false},"inputPropertyConstraints":{"anyOf":[{"type":"object","properties":{"equal":{"type":["number","string","boolean","integer"]},"greater_than":{"type":["number","string","boolean","integer"]},"greater_or_equal":{"type":["number","string","boolean","integer"]},"less_than":{"type":["number","string","boolean","integer"]},"less_or_equal":{"type":["number","string","boolean","integer"]}}},{"valid_values":{"type":"array","items":{"type":["number","string","boolean","integer"]}}}]},"nodeTemplates":{"type":"object","patternProperties":{"":{"$ref":"#/definitions/nodeTemplate"}}},"nodeTemplate":{"type":"object","properties":{"type":{"type":"string","anyOf":[{"type":"string"},{"type":"string","enum":["cloudify.nodes.Root","cloudify.nodes.Tier","cloudify.nodes.Compute","cloudify.nodes.Container","cloudify.nodes.Network","cloudify.nodes.Subnet","cloudify.nodes.Router","cloudify.nodes.Port","cloudify.nodes.VirtualIP","cloudify.nodes.SecurityGroup","cloudify.nodes.LoadBalancer","cloudify.nodes.Volume","cloudify.nodes.FileSystem","cloudify.nodes.ObjectStorage","cloudify.nodes.SoftwareComponent","cloudify.nodes.WebServer","cloudify.nodes.ApplicationServer","cloudify.nodes.DBMS","cloudify.nodes.MessageBugServer","cloudify.nodes.ApplicationModule","cloudify.nodes.Component","cloudify.nodes.ServiceComponent","cloudify.nodes.SharedResource","cloudify.nodes.aws.dynamodb.Table","cloudify.nodes.aws.iam.Group","cloudify.nodes.aws.iam.AccessKey","cloudify.nodes.aws.iam.LoginProfile","cloudify.nodes.aws.iam.User","cloudify.nodes.aws.iam.Role","cloudify.nodes.aws.iam.RolePolicy","cloudify.nodes.aws.iam.InstanceProfile","cloudify.nodes.aws.iam.Policy","cloudify.nodes.aws.lambda.Function","cloudify.nodes.aws.lambda.Invoke","cloudify.nodes.aws.lambda.Permission","cloudify.nodes.aws.rds.Instance","cloudify.nodes.aws.rds.InstanceReadReplica","cloudify.nodes.aws.rds.SubnetGroup","cloudify.nodes.aws.rds.OptionGroup","cloudify.nodes.aws.rds.Option","cloudify.nodes.aws.rds.ParameterGroup","cloudify.nodes.aws.rds.Parameter","cloudify.nodes.aws.route53.HostedZone","cloudify.nodes.aws.route53.RecordSet","cloudify.nodes.aws.SQS.Queue","cloudify.nodes.aws.SNS.Topic","cloudify.nodes.aws.SNS.Subscription","cloudify.nodes.aws.elb.LoadBalancer","cloudify.nodes.aws.elb.Classic.LoadBalancer","cloudify.nodes.aws.elb.Classic.HealthCheck","cloudify.nodes.aws.elb.Listener","cloudify.nodes.aws.elb.Classic.Listener","cloudify.nodes.aws.elb.Rule","cloudify.nodes.aws.elb.TargetGroup","cloudify.nodes.aws.elb.Classic.Policy","cloudify.nodes.aws.elb.Classic.Policy.Stickiness","cloudify.nodes.aws.s3.BaseBucket","cloudify.nodes.aws.s3.BaseBucketObject","cloudify.nodes.aws.s3.Bucket","cloudify.nodes.aws.s3.BucketPolicy","cloudify.nodes.aws.s3.BucketLifecycleConfiguration","cloudify.nodes.aws.s3.BucketTagging","cloudify.nodes.aws.s3.BucketObject","cloudify.nodes.aws.ec2.BaseType","cloudify.nodes.aws.ec2.Vpc","cloudify.nodes.aws.ec2.VpcPeering","cloudify.nodes.aws.ec2.VpcPeeringRequest","cloudify.nodes.aws.ec2.VpcPeeringAcceptRequest","cloudify.nodes.aws.ec2.VpcPeeringRejectRequest","cloudify.nodes.aws.ec2.Subnet","cloudify.nodes.aws.ec2.SecurityGroup","cloudify.nodes.aws.ec2.SecurityGroupRuleIngress","cloudify.nodes.aws.ec2.SecurityGroupRuleEgress","cloudify.nodes.aws.ec2.NATGateway","cloudify.nodes.aws.ec2.Interface","cloudify.nodes.aws.ec2.Instances","cloudify.nodes.aws.ec2.Keypair","cloudify.nodes.aws.ec2.ElasticIP","cloudify.nodes.aws.ec2.NetworkACL","cloudify.nodes.aws.ec2.NetworkAclEntry","cloudify.nodes.aws.ec2.DHCPOptions","cloudify.nodes.aws.ec2.VPNGateway","cloudify.nodes.aws.ec2.VPNConnection","cloudify.nodes.aws.ec2.VPNConnectionRoute","cloudify.nodes.aws.ec2.CustomerGateway","cloudify.nodes.aws.ec2.InternetGateway","cloudify.nodes.aws.ec2.RouteTable","cloudify.nodes.aws.ec2.Route","cloudify.nodes.aws.ec2.Image","cloudify.nodes.aws.ec2.Tags","cloudify.nodes.aws.ec2.EBSVolume","cloudify.nodes.aws.ec2.EBSAttachment","cloudify.nodes.aws.autoscaling.Group","cloudify.nodes.aws.autoscaling.LaunchConfiguration","cloudify.nodes.aws.autoscaling.Policy","cloudify.nodes.aws.autoscaling.LifecycleHook","cloudify.nodes.aws.autoscaling.NotificationConfiguration","cloudify.nodes.aws.cloudwatch.Alarm","cloudify.nodes.aws.cloudwatch.Rule","cloudify.nodes.aws.cloudwatch.Event","cloudify.nodes.aws.cloudwatch.Target","cloudify.nodes.aws.efs.FileSystem","cloudify.nodes.aws.efs.MountTarget","cloudify.nodes.aws.efs.FileSystemTags","cloudify.nodes.aws.kms.CustomerMasterKey","cloudify.nodes.aws.kms.Alias","cloudify.nodes.aws.kms.Grant","cloudify.nodes.aws.CloudFormation.Stack","cloudify.nodes.aws.ecs.Cluster","cloudify.nodes.aws.ecs.Service","cloudify.nodes.aws.ecs.TaskDefinition","cloudify.nodes.swift.s3.Bucket","cloudify.nodes.swift.s3.BucketObject","cloudify.nodes.aws.eks.Cluster","cloudify.nodes.aws.eks.NodeGroup","cloudify.azure.nodes.storage.StorageAccount","cloudify.azure.nodes.storage.DataDisk","cloudify.azure.nodes.storage.FileShare","cloudify.azure.nodes.network.VirtualNetwork","cloudify.azure.nodes.network.NetworkSecurityGroup","cloudify.azure.nodes.network.NetworkSecurityRule","cloudify.azure.nodes.network.Subnet","cloudify.azure.nodes.network.RouteTable","cloudify.azure.nodes.network.Route","cloudify.azure.nodes.network.NetworkInterfaceCard","cloudify.azure.nodes.network.IPConfiguration","cloudify.azure.nodes.network.PublicIPAddress","cloudify.azure.nodes.compute.AvailabilitySet","cloudify.azure.nodes.compute.VirtualMachine","cloudify.azure.nodes.compute.WindowsVirtualMachine","cloudify.azure.nodes.compute.VirtualMachineExtension","cloudify.azure.nodes.network.LoadBalancer","cloudify.azure.nodes.network.LoadBalancer.BackendAddressPool","cloudify.azure.nodes.network.LoadBalancer.Probe","cloudify.azure.nodes.network.LoadBalancer.IncomingNATRule","cloudify.azure.nodes.network.LoadBalancer.Rule","cloudify.azure.Deployment","cloudify.azure.nodes.compute.ContainerService","cloudify.azure.nodes.Plan","cloudify.azure.nodes.WebApp","cloudify.azure.nodes.PublishingUser","cloudify.azure.nodes.compute.ManagedCluster","cloudify.gcp.project","cloudify.gcp.nodes.Instance","cloudify.gcp.nodes.InstanceGroup","cloudify.gcp.nodes.Volume","cloudify.gcp.nodes.Snapshot","cloudify.gcp.nodes.Network","cloudify.gcp.nodes.SubNetwork","cloudify.gcp.nodes.VPCNetworkPeering","cloudify.gcp.nodes.Route","cloudify.gcp.nodes.FirewallRule","cloudify.gcp.nodes.SecurityGroup","cloudify.gcp.nodes.Access","cloudify.gcp.nodes.KeyPair","cloudify.gcp.nodes.ExternalIP","cloudify.gcp.nodes.GlobalAddress","cloudify.gcp.nodes.StaticIP","cloudify.gcp.nodes.Address","cloudify.gcp.nodes.Image","cloudify.gcp.nodes.HealthCheck","cloudify.gcp.nodes.BackendService","cloudify.gcp.nodes.RegionBackendService","cloudify.gcp.nodes.UrlMap","cloudify.gcp.nodes.TargetProxy","cloudify.gcp.nodes.SslCertificate","cloudify.gcp.nodes.ForwardingRule","cloudify.gcp.nodes.GlobalForwardingRule","cloudify.gcp.nodes.DNSZone","cloudify.gcp.nodes.DNSRecord","cloudify.gcp.nodes.DNSAAAARecord","cloudify.gcp.nodes.DNSMXRecord","cloudify.gcp.nodes.DNSNSRecord","cloudify.gcp.nodes.DNSTXTRecord","cloudify.gcp.nodes.KubernetesCluster","cloudify.gcp.nodes.KubernetesNodePool","cloudify.gcp.nodes.KubernetesClusterMonitoring","cloudify.gcp.nodes.KubernetesClusterlegacyAbac","cloudify.gcp.nodes.KubernetesClusterNetworkPolicy","cloudify.gcp.nodes.Topic","cloudify.gcp.nodes.TopicPolicy","cloudify.gcp.nodes.TopicMessage","cloudify.gcp.nodes.Subscription","cloudify.gcp.nodes.SubscriptionPolicy","cloudify.gcp.nodes.Acknowledge","cloudify.gcp.nodes.PullRequest","cloudify.gcp.nodes.StackDriverGroup","cloudify.gcp.nodes.StackDriverTimeSeries","cloudify.gcp.nodes.StackDriverUpTimeCheckConfig","cloudify.gcp.nodes.LoggingSink","cloudify.gcp.nodes.LoggingExclusion","cloudify.gcp.nodes.Logging.BillingAccounts.sinks","cloudify.gcp.nodes.Logging.Folders.sinks","cloudify.gcp.nodes.Logging.Organizations.sinks","cloudify.gcp.nodes.Logging.Projects.sinks","cloudify.gcp.nodes.Logging.BillingAccounts.exclusions","cloudify.gcp.nodes.Logging.Folders.exclusions","cloudify.gcp.nodes.Logging.Organizatios.exclusions","cloudify.gcp.nodes.Logging.Projects.exclusions","cloudify.gcp.nodes.Logging.Projects.metrics","cloudify.kubernetes.resources.StatefulSet","cloudify.nodes.helm.Binary","cloudify.nodes.helm.Release","cloudify.nodes.helm.Repo"]}]},"properties":{"type":"object"},"instances":{"type":"object"},"interfaces":{"$ref":"#/definitions/nodeTemplateInterfaces"},"relationships":{"$ref":"#/definitions/nodeTemplateRelationships"},"capabilities":{"type":"object"}},"allOf":[{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.Vpc"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2VPC"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.InternetGateway"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSInternetGateway"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.Subnet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2Subnet"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.RouteTable"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2RouteTable"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.Route"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2Route"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.ElasticIP"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2ElasticIP"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.NATGateway"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2NATGateway"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.SecurityGroup"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2SecurityGroup"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.SecurityGroupRuleIngress"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2SecurityGroupRuleIngress"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.Interface"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2Interface"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.Image"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2Image"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.Instances"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2Instances"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.EBSVolume"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2EBSVolume"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.aws.ec2.EBSAttachment"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAWSEC2EBSAttachment"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.images"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerImagesProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerImagesInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.containers"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerContainersProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerContainersInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.host"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerHostProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerHostInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.host_details"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerHostDetailsProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerHostDetailsInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.image"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerImageProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerImageInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.container"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerContainerProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerContainerInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.container_files"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerContainerFilesProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerContainerFilesInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.ansible_playbook"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerAnsiblePlaybookProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerAnsiblePlaybookInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.docker.terraform_module"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeDockerTerraformModuleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeDockerTerraformModuleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.nodes.Master"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesNodesMasterProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ResourceBase"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesResourceBase"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ResourceWithValidateStatus"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesResourceWithValidateStatus"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.BlueprintDefinedResource"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResource"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ClusterRoleBinding"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesClusterRoleBindingProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.RoleBinding"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesRoleBinding"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Role"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesRoleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ClusterRole"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesClusterRoleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Secret"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesSecretProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ServiceAccount"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesServiceAccountProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Deployment"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesDeploymentProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Node"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesNodeProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Namespace"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesNamespaceProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Pod"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesPodProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ReplicaSet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesReplicaSetProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ReplicationController"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesReplicationControllerProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.DaemonSet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesDaemonSetProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.CustomResourceDefinition"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesCustomResourceDefinitionProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Service"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesServiceProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.PersistentVolume"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesPersistentVolumeProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.ConfigMap"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesConfigMapProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.StorageClass"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesStorageClassProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.StatefulSet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesStatefulSetProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.PodSecurityPolicy"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesPodSecurityPolicyProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.NetworkPolicy"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesNetworkPolicyroperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.Ingress"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesIngressProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.PersistentVolumeClaim"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesPersistentVolumeClaimProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.CustomBlueprintDefinedResource"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesCustomBlueprintDefinedResourceProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesCustomBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.CustomBlueprintDefinedResource"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesCustomBlueprintDefinedResourceProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesCustomBlueprintDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.FileDefinedResource"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesFileDefinedResourceProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesFileDefinedResourceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.kubernetes.resources.MultipleFileDefinedResources"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeKubernetesResourcesMultipleFileDefinedResourcesProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeKubernetesResourcesMultipleFileDefinedResourcesInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.terraform"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeTerraformProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeTerraformInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.terraform.Module"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeTerraformModuleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeTerraformModuleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.terraform.Module"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeTerraformModuleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeTerraformModuleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.ansible.Executor"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeAnsibleExecutorProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeAnsibleExecutorInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.NetworkBase"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackNetworkBaseProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Network"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackNetworkProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackNetworkInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Subnet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackSubnetProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackSubnetInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Port"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackPortProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackPortInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Router"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackRouterProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackRouterInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.FloatingIP"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackFloatingIPProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackFloatingIPInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.SecurityGroup"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackSecurityGroupProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackSecurityGroupInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.SecurityGroupRule"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackSecurityGroupRuleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackSecurityGroupRuleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.RBACPolicy"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackRBACPolicyProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Server"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackServerProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.WindowsServer"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackWindowsServerProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.KeyPair"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackKeyPairProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackKeyPairInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.HostAggregate"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackHostAggregateProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackHostAggregateInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Image"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackImageProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackImageInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Flavor"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackFlavorProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackFlavorInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.User"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackUserProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackUserInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Group"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackGroupProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackGroupInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Role"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackRoleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackRoleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Project"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackProjectProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackProjectInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Volume"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackVolumeProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackVolumeInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.VolumeType"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackVolumeTypeProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackVolumeTypeInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.Zone"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackZoneProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackZoneInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.openstack.RecordSet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeOpenstackRecordSetProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeOpenstackRecordSetInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.DeploymentProxy"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesDeploymentProxyProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyNodesDeploymentProxyInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.NodeInstanceProxy"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesNodeInstanceProxyProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.CloudInit.CloudConfig"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesCloudInitCloudConfigProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyNodesCloudInitCloudConfigInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.keys.nodes.RSAKey"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesRSAKeyProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyNodesRSAKeyInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.terminal.raw"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyTerminalRawProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyTerminalRawInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.File"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesFileProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyNodesFileInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.ftp"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesFTPProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyNodesFTPInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.rest.Requests"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyRestRequestsProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyRestRequestsInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.rest.BunchRequests"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyRestBunchRequestsProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyRestBunchRequestsInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.secrets.Writer"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesSecretsWriterProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyNodesSecretsWriterInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.secrets.Reader"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyNodesSecretsReaderProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyNodesSecretsReaderInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.ResourceGroup"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesResourceGroupProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesResourceGroupInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.storage.StorageAccount"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesStorageStorageAccountProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesStorageStorageAccountInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.storage.DataDisk"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesStorageDataDiskProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesStorageDataDisktInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.storage.FileShare"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesStorageFileShareProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesStorageFileShareInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.VirtualNetwork"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkVirtualNetworkProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkVirtualNetworkInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.NetworkSecurityGroup"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkNetworkSecurityGroupProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkNetworkSecurityGroupInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.NetworkSecurityRule"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkNetworkSecurityRuleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkNetworkSecurityRuleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.Subnet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkSubnetProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkSubnetInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.RouteTable"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkRouteTableProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkRouteTableInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.Route"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkRouteProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkRouteInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.NetworkInterfaceCard"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkNetworkInterfaceCardProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkNetworkInterfaceCardInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.IPConfiguration"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkIPConfigurationProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.PublicIPAddress"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkPublicIPAddressProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkPublicIPAddressInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.compute.AvailabilitySet"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeAvailabilitySetProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeAvailabilitySetInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.compute.VirtualMachine"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeVirtualMachineProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeVirtualMachineInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.compute.WindowsVirtualMachine"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeWindowsVirtualMachineProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeWindowsVirtualMachineInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.compute.VirtualMachineExtension"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeVirtualMachineExtensionProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeVirtualMachineExtensionInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.LoadBalancer"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.LoadBalancer.BackendAddressPool"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerBackendAddressPoolProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerBackendAddressPoolInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.LoadBalancer.Probe"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerProbeProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerProbeInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.LoadBalancer.IncomingNATRule"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerIncomingNATRuleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerIncomingNATRuleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.network.LoadBalancer.Rule"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerRuleProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesNetworkLoadBalancerRuleInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.Deployment"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureDeploymentProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureDeploymentInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.compute.ContainerService"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeContainerServiceProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeContainerServiceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.Plan"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesPlanProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesPlanInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.WebApp"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesWebAppProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesWebAppInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.PublishingUser"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesPublishingUserProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesPublishingUserInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.azure.nodes.compute.ManagedCluster"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeManagedClusterProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyAzureNodesComputeManagedClusterInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.gcp.project"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyGCPProjectProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyGCPProjectInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.gcp.nodes.Instance"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeCloudifyGCPNodesInstanceProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeCloudifyGCPNodesInstanceInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.helm.Binary"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeHelmBinaryProperties"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.helm.Release"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeHelmReleaseProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeHelmReleaseInterfaces"}}}},{"if":{"properties":{"type":{"const":"cloudify.nodes.helm.Repo"}}},"then":{"properties":{"properties":{"$ref":"#/definitions/nodeTypeHelmRepoProperties"},"interfaces":{"$ref":"#/definitions/nodeTypeHelmRepoInterfaces"}}}}],"required":["type"],"additionalProperties":false},"gcpExternalResource":{"type":"object","properties":{"use_external_resource":{"type":"boolean","default":false}}},"gcpResourceId":{"type":"object","properties":{"resource_id":{"type":"string"}}},"nodeTypeCloudifyGCPProjectProperties":{"type":"object","allOf":[{"$ref":"#/definitions/gcpExternalResource"},{"$ref":"#/definitions/gcpResourceId"},{"properties":{"gcp_config":{"type":"object"},"name":{"type":"string"}}}]},"nodeTypeCloudifyGCPProjectInterfaces":{"type":"object","properties":{"cloudify.interfaces.lifecycle":{"type":"object","properties":{"create":{"type":"object","properties":{"implementation":{"type":"string","enum":["gcp_plugin.cloudify_gcp.admin.projects.create"]}}},"delete":{"type":"object","properties":{"implementation":{"type":"string","enum":["gcp_plugin.cloudify_gcp.admin.projects.delete"]}}}}}}},"nodeTypeCloudifyGCPNodesInstanceProperties":{"type":"object","allOf":[{"$ref":"#/definitions/gcpExternalResource"},{"$ref":"#/definitions/gcpResourceId"},{"properties":{"gcp_config":{"type":"object"},"use_public_ip":{"type":"boolean","default":false},"image_id":{"type":"string"},"instance_type":{"type":"string","default":"n1-standard-1"},"name":{"type":"string"},"zone":{"type":"string"},"tags":{"type":"string"},"block_project_ssh_keys":{"type":"boolean","default":false},"can_ip_forward":{"type":"boolean","default":false},"scopes":{"type":"array","items":{"type":"string"}},"startup_script":{"type":"string"},"external_ip":{"type":"boolean","default":false},"additional_settings":{"type":"object"}}}]},"nodeTypeCloudifyGCPNodesInstanceInterfaces":{"type":"object","properties":{"cloudify.interfaces.lifecycle":{"type":"object","properties":{"configure":{"type":"object","properties":{"implementation":{"type":"string","enum":["gcp_plugin.cloudify_gcp.compute.instance.create"]},"inputs":{"type":"object","properties":{"startup_script":{"type":"string","default":{"get_property":["SELF","startup_script"]}},"external_ip":{"type":"boolean","default":{"get_property":["SELF","external_ip"]}},"instance_type":{"type":"string","default":{"get_property":["SELF","instance_type"]}},"image_id":{"type":"string","default":{"get_property":["SELF","image_id"]}},"name":{"type":"string","default":{"get_property":["SELF","name"]}},"zone":{"type":"string","default":{"get_property":["SELF","zone"]}},"scopes":{"type":"array","items":{"type":"string"},"default":{"get_property":["SELF","scopes"]}},"tags":{"type":"string","default":{"get_property":["SELF","tags"]}},"can_ip_forward":{"type":"boolean","default":{"get_property":["SELF","can_ip_forward"]}},"additional_settings":{"type":"object","default":{"get_property":["SELF","additional_settings"]}}}}}},"start":{"type":"object","properties":{"implementation":{"type":"string","enum":["gcp_plugin.cloudify_gcp.compute.instance.start"]},"inputs":{"type":"object","properties":{"name":{"type":"string","default":{"get_attribute":["SELF","name"]}}}}}},"delete":{"type":"object","properties":{"implementation":{"type":"string","enum":["gcp_plugin.cloudify_gcp.compute.instance.delete"]},"inputs":{"type":"object","properties":{"name":{"type":"string","default":{"get_attribute":["SELF","name"]}},"zone":{"type":"string","default":{"get_attribute":["SELF","zone"]}}}}}}}}}},"cloudifyDatatypesAzureConfig":{"type":"object","properties":{"endpoints_active_directory":{"$ref":"#/definitions/cloudifyStringOrGetInput","default":"https://login.microsoftonline.com"},"endpoints_resource_manager":{"$ref":"#/definitions/cloudifyStringOrGetInput","default":"https://management.azure.com"},"endpoint_resource":{"$ref":"#/definitions/cloudifyStringOrGetInput","default":"https://management.core.windows.net/"},"endpoint_verify":{"$ref":"#/definitions/cloudifyBooleanOrGetInput","default":true},"subscription_id":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"tenant_id":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"client_id":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"client_secret":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"scale_name_separator":{"$ref":"#/definitions/cloudifyStringOrGetInput","default":"_"},"scale_name_suffix_chars":{"$ref":"#/definitions/cloudifyStringOrGetInput","default":"1234567890"},"certificate":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"thumbprint":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"cloud_environment":{"$ref":"#/definitions/cloudifyStringOrGetInput"}}},"cloudifyDatatypesAzureStorageStorageAccountConfig":{"type":"object","properties":{"accountType":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"networkAcls":{"type":"object"},"supportsHttpsTrafficOnly":{"type":"object"},"encryption":{"type":"object"},"keySource":{"type":"object"}}},"cloudifyDatatypesAzureStorageDataDiskConfig":{"type":"object","properties":{"container_name":{"$ref":"#/definitions/cloudifyStringOrGetInput","default":"vhds"},"size":{"$ref":"#/definitions/cloudifyIntegerOrGetInput","default":20},"force_delete":{"$ref":"#/definitions/cloudifyBooleanOrGetInput","default":false}},"required":["size"]},"cloudifyDatatypesAzureNetworkVirtualNetworkConfig":{"type":"string","properties":{"addressSpace":{"type":"object"},"dhcpOptions":{"type":"object"},"subnets":{"type":"object"}},"required":["addressSpace"]},"cloudifyDatatypesAzureNetworkNetworkSecurityRuleConfig":{"type":"object","properties":{"description":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"protocol":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"sourcePortRange":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"destinationPortRange":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"sourceAddressPrefix":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"destinationAddressPrefix":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"access":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"priority":{"$ref":"#/definitions/cloudifyIntegerOrGetInput"},"direction":{"$ref":"#/definitions/cloudifyStringOrGetInput"}},"required":["protocol","sourceAddressPrefix","destinationAddressPrefix","access","priority","direction"]},"cloudifyDatatypesAzureNetworkNetworkSecurityGroupConfig":{"type":"object","properties":{"securityRules":{"type":"object"}}},"cloudifyDatatypesAzureNetworkSubnetConfig":{"type":"object","properties":{"addressPrefix":{"$ref":"#/definitions/cloudifyIntegerOrGetInput"},"networkSecurityGroup":{"$ref":"#/definitions/cloudifyIntegerOrGetInput"},"routeTable":{"$ref":"#/definitions/cloudifyIntegerOrGetInput"}}},"cloudifyDatatypesAzureNetworkRouteTableConfig":{"type":"object","properties":{"routes":{"$ref":"#/definitions/cloudifyStringOrGetInput"}}},"cloudifyDatatypesAzureNetworkIPConfigurationConfig":{"type":"object","properties":{"privateIPAddress":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"privateIPAllocationMethod":{"$ref":"#/definitions/cloudifyStringOrGetInput"}},"required":["privateIPAllocationMethod"]},"cloudifyDatatypesAzureNetworkPublicIPAddressConfig":{"type":"object","properties":{"publicIPAllocationMethod":{"$ref":"#/definitions/cloudifyStringOrGetInput"},"idle