{
  "Description": "(SO0241-CMS.3) connected-mobility-solution-on-aws - cms-connect-store. Version v2.1.5",
  "Mappings": {
    "Solution": {
      "AssetsConfig": {
        "S3AssetBucketBaseName": "solutions",
        "S3AssetKeyPrefix": "connected-mobility-solution-on-aws/v2.1.5/cms-connect-store"
      }
    }
  },
  "Resources": {
    "appregistryconstructappregistryapplicationAC1A319B": {
      "Type": "AWS::ServiceCatalogAppRegistry::Application",
      "Properties": {
        "Name": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AWS::StackName"
              },
              "-",
              {
                "Ref": "AWS::Region"
              },
              "-",
              {
                "Ref": "AWS::AccountId"
              }
            ]
          ]
        },
        "Tags": {
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/app-registry-construct/app-registry-application"
      }
    },
    "appregistryconstructdefaultapplicationattributes8FF6B3DB": {
      "Type": "AWS::ServiceCatalogAppRegistry::AttributeGroup",
      "Properties": {
        "Attributes": {
          "ApplicationType": "AWS-Solutions",
          "Version": "v2.1.5",
          "SolutionID": "SO0241",
          "SolutionName": "connected-mobility-solution-on-aws"
        },
        "Description": "Attribute group for solution information",
        "Name": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AWS::StackName"
              },
              "-",
              {
                "Ref": "AWS::Region"
              },
              "-",
              {
                "Ref": "AWS::AccountId"
              }
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/app-registry-construct/default-application-attributes"
      }
    },
    "appregistryconstructappregistryapplicationattributeassociation802A10B5": {
      "Type": "AWS::ServiceCatalogAppRegistry::AttributeGroupAssociation",
      "Properties": {
        "Application": {
          "Fn::GetAtt": [
            "appregistryconstructappregistryapplicationAC1A319B",
            "Id"
          ]
        },
        "AttributeGroup": {
          "Fn::GetAtt": [
            "appregistryconstructdefaultapplicationattributes8FF6B3DB",
            "Id"
          ]
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/app-registry-construct/app-registry-application-attribute-association"
      }
    },
    "moduleinputsconstructidentityprovideridcustomresourceFE878685": {
      "Type": "Custom::SsmParameters",
      "Properties": {
        "ServiceToken": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/config/aws-resource-lookup-lambda/arn}}"
            ]
          ]
        },
        "Resource": "SsmParameters",
        "ParameterName": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/config/auth/identity-provider-id"
            ]
          ]
        }
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/module-inputs-construct/identity-provider-id-custom-resource/Default"
      }
    },
    "moduleinputsconstructvpcnamecustomresource12726E51": {
      "Type": "Custom::SsmParameters",
      "Properties": {
        "ServiceToken": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/config/aws-resource-lookup-lambda/arn}}"
            ]
          ]
        },
        "Resource": "SsmParameters",
        "ParameterName": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/config/vpc/name"
            ]
          ]
        }
      },
      "UpdateReplacePolicy": "Delete",
      "DeletionPolicy": "Delete",
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/module-inputs-construct/vpc-name-custom-resource/Default"
      }
    },
    "ssmappuniqueidregistermodule9C5C2C5D": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "SSM parameter to register a module with an app unique ID.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "}}"
            ]
          ]
        }
      },
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/ssm-app-unique-id-register-module/Resource"
      }
    },
    "connectstorecdklambdasvpcconstructsecuritygroup60C317C7": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "cms-connect-store/connect-store/cdk-lambdas-vpc-construct/security-group",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "Allow all outbound traffic by default",
            "IpProtocol": "-1"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsconstructvpcnamecustomresource12726E51",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/cdk-lambdas-vpc-construct/security-group/Resource"
      }
    },
    "connectstoreroots3constructlogbucket7F2AE2BB": {
      "Type": "AWS::S3::Bucket",
      "Properties": {
        "BucketEncryption": {
          "ServerSideEncryptionConfiguration": [
            {
              "ServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
              }
            }
          ]
        },
        "LifecycleConfiguration": {
          "Rules": [
            {
              "Id": "expire-current-version-and-delete-old-objects",
              "Status": "Enabled",
              "ExpirationInDays": {
                "Ref": "S3LogExpirationDays"
              },
              "NoncurrentVersionExpirationInDays": {
                "Ref": "S3LogNoncurrentVersionExpirationDays"
              },
              "AbortIncompleteMultipartUpload": {
                "DaysAfterInitiation": 1
              }
            }
          ]
        },
        "PublicAccessBlockConfiguration": {
          "BlockPublicAcls": true,
          "BlockPublicPolicy": true,
          "IgnorePublicAcls": true,
          "RestrictPublicBuckets": true
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VersioningConfiguration": {
          "Status": "Enabled"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain",
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/root-s3-construct/log-bucket/Resource"
      }
    },
    "connectstoreroots3constructlogbucketPolicy81B09BD5": {
      "Type": "AWS::S3::BucketPolicy",
      "Properties": {
        "Bucket": {
          "Ref": "connectstoreroots3constructlogbucket7F2AE2BB"
        },
        "PolicyDocument": {
          "Statement": [
            {
              "Action": "s3:*",
              "Condition": {
                "Bool": {
                  "aws:SecureTransport": "false"
                }
              },
              "Effect": "Deny",
              "Principal": {
                "AWS": "*"
              },
              "Resource": [
                {
                  "Fn::GetAtt": [
                    "connectstoreroots3constructlogbucket7F2AE2BB",
                    "Arn"
                  ]
                },
                {
                  "Fn::Join": [
                    "",
                    [
                      {
                        "Fn::GetAtt": [
                          "connectstoreroots3constructlogbucket7F2AE2BB",
                          "Arn"
                        ]
                      },
                      "/*"
                    ]
                  ]
                }
              ]
            },
            {
              "Action": "s3:PutObject",
              "Condition": {
                "ArnLike": {
                  "aws:SourceArn": {
                    "Fn::GetAtt": [
                      "connectstoreroots3constructencryptedbucket39CFDB23",
                      "Arn"
                    ]
                  }
                },
                "StringEquals": {
                  "aws:SourceAccount": {
                    "Ref": "AWS::AccountId"
                  }
                }
              },
              "Effect": "Allow",
              "Principal": {
                "Service": "logging.s3.amazonaws.com"
              },
              "Resource": {
                "Fn::Join": [
                  "",
                  [
                    {
                      "Fn::GetAtt": [
                        "connectstoreroots3constructlogbucket7F2AE2BB",
                        "Arn"
                      ]
                    },
                    "/*"
                  ]
                ]
              }
            }
          ],
          "Version": "2012-10-17"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/root-s3-construct/log-bucket/Policy/Resource"
      }
    },
    "connectstoreroots3constructencryptedbucket39CFDB23": {
      "Type": "AWS::S3::Bucket",
      "Properties": {
        "BucketEncryption": {
          "ServerSideEncryptionConfiguration": [
            {
              "ServerSideEncryptionByDefault": {
                "SSEAlgorithm": "AES256"
              }
            }
          ]
        },
        "LoggingConfiguration": {
          "DestinationBucketName": {
            "Ref": "connectstoreroots3constructlogbucket7F2AE2BB"
          }
        },
        "PublicAccessBlockConfiguration": {
          "BlockPublicAcls": true,
          "BlockPublicPolicy": true,
          "IgnorePublicAcls": true,
          "RestrictPublicBuckets": true
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VersioningConfiguration": {
          "Status": "Enabled"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain",
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/root-s3-construct/encrypted-bucket/Resource"
      }
    },
    "connectstoreroots3constructencryptedbucketPolicy74D27917": {
      "Type": "AWS::S3::BucketPolicy",
      "Properties": {
        "Bucket": {
          "Ref": "connectstoreroots3constructencryptedbucket39CFDB23"
        },
        "PolicyDocument": {
          "Statement": [
            {
              "Action": "s3:*",
              "Condition": {
                "Bool": {
                  "aws:SecureTransport": "false"
                }
              },
              "Effect": "Deny",
              "Principal": {
                "AWS": "*"
              },
              "Resource": [
                {
                  "Fn::GetAtt": [
                    "connectstoreroots3constructencryptedbucket39CFDB23",
                    "Arn"
                  ]
                },
                {
                  "Fn::Join": [
                    "",
                    [
                      {
                        "Fn::GetAtt": [
                          "connectstoreroots3constructencryptedbucket39CFDB23",
                          "Arn"
                        ]
                      },
                      "/*"
                    ]
                  ]
                }
              ]
            }
          ],
          "Version": "2012-10-17"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/root-s3-construct/encrypted-bucket/Policy/Resource"
      }
    },
    "connectstoredependencylayerconstructlambdadependencylayerversionC961CA5A": {
      "Type": "AWS::Lambda::LayerVersion",
      "Properties": {
        "CompatibleArchitectures": [
          "x86_64",
          "arm64"
        ],
        "CompatibleRuntimes": [
          "python3.12"
        ],
        "Content": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "asset49a5fb8dc1b5cc96a9aacf675be3418163a756c3c93519c587cfd7a6748826c0.zip"
              ]
            ]
          }
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/dependency-layer-construct/lambda-dependency-layer-version/Resource",
        "aws:asset:path": "asset.49a5fb8dc1b5cc96a9aacf675be3418163a756c3c93519c587cfd7a6748826c0",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Content"
      }
    },
    "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A": {
      "Type": "AWS::Glue::Schema",
      "Properties": {
        "CheckpointVersion": {
          "IsLatest": true,
          "VersionNumber": 1
        },
        "Compatibility": "NONE",
        "DataFormat": "JSON",
        "Description": "JSON schema for vehicle signal specification data. Vin is required for partitioning.",
        "Name": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-connect-store-glue-schema"
            ]
          ]
        },
        "Registry": {
          "Name": "default-registry"
        },
        "SchemaDefinition": "{\"type\": \"object\", \"properties\": {\"adas\": {\"type\": \"object\", \"properties\": {\"abs\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"isengaged\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}}}, \"activeautonomylevel\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"SAE_0\", \"SAE_1\", \"SAE_2_DISENGAGING\", \"SAE_2\", \"SAE_3_DISENGAGING\", \"SAE_3\", \"SAE_4_DISENGAGING\", \"SAE_4\", \"SAE_5\"]}, \"cruisecontrol\": {\"type\": \"object\", \"properties\": {\"isactive\": {\"type\": \"boolean\"}, \"isenabled\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}, \"speedset\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"dms\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}, \"iswarning\": {\"type\": \"boolean\"}}}, \"eba\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"isengaged\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}}}, \"ebd\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"isengaged\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}}}, \"esc\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"isengaged\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}, \"isstrongcrosswinddetected\": {\"type\": \"boolean\"}, \"roadfriction\": {\"type\": \"object\", \"properties\": {\"lowerbound\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"mostprobable\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"upperbound\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"lanedeparturedetection\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}, \"iswarning\": {\"type\": \"boolean\"}}}, \"obstacledetection\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}, \"iswarning\": {\"type\": \"boolean\"}}}, \"poweroptimizelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"supportedautonomylevel\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"SAE_0\", \"SAE_1\", \"SAE_2\", \"SAE_3\", \"SAE_4\", \"SAE_5\"]}, \"tcs\": {\"type\": \"object\", \"properties\": {\"isenabled\": {\"type\": \"boolean\"}, \"isengaged\": {\"type\": \"boolean\"}, \"iserror\": {\"type\": \"boolean\"}}}}}, \"acceleration\": {\"type\": \"object\", \"properties\": {\"lateral\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"longitudinal\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"vertical\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"angularvelocity\": {\"type\": \"object\", \"properties\": {\"pitch\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"roll\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"yaw\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"averagespeed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"body\": {\"type\": \"object\", \"properties\": {\"bodytype\": {\"type\": \"string\", \"length\": 20}, \"hood\": {\"type\": \"object\", \"properties\": {\"isopen\": {\"type\": \"boolean\"}}}, \"horn\": {\"type\": \"object\", \"properties\": {\"isactive\": {\"type\": \"boolean\"}}}, \"lights\": {\"type\": \"object\", \"properties\": {\"backup\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}, \"beam\": {\"type\": \"object\", \"properties\": {\"high\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}, \"low\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}}}, \"brake\": {\"type\": \"object\", \"properties\": {\"isactive\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"ACTIVE\", \"ADAPTIVE\"]}, \"isdefect\": {\"type\": \"boolean\"}}}, \"directionindicator\": {\"type\": \"object\", \"properties\": {\"left\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"issignaling\": {\"type\": \"boolean\"}}}, \"right\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"issignaling\": {\"type\": \"boolean\"}}}}}, \"fog\": {\"type\": \"object\", \"properties\": {\"front\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}, \"rear\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}}}, \"hazard\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"issignaling\": {\"type\": \"boolean\"}}}, \"ishighbeamswitchon\": {\"type\": \"boolean\"}, \"licenseplate\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}, \"lightswitch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"OFF\", \"POSITION\", \"DAYTIME_RUNNING_LIGHTS\", \"AUTO\", \"BEAM\"]}, \"parking\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}, \"running\": {\"type\": \"object\", \"properties\": {\"isdefect\": {\"type\": \"boolean\"}, \"ison\": {\"type\": \"boolean\"}}}}}, \"mirrors\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"isheatingon\": {\"type\": \"boolean\"}, \"pan\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"tilt\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"isheatingon\": {\"type\": \"boolean\"}, \"pan\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"tilt\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}}}}}, \"poweroptimizelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"raindetection\": {\"type\": \"object\", \"properties\": {\"intensity\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"rearmainspoilerposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"refuelposition\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"FRONT_LEFT\", \"FRONT_RIGHT\", \"MIDDLE_LEFT\", \"MIDDLE_RIGHT\", \"REAR_LEFT\", \"REAR_RIGHT\"]}, \"trunk\": {\"type\": \"object\", \"properties\": {\"front\": {\"type\": \"object\", \"properties\": {\"islighton\": {\"type\": \"boolean\"}, \"islocked\": {\"type\": \"boolean\"}, \"isopen\": {\"type\": \"boolean\"}}}, \"rear\": {\"type\": \"object\", \"properties\": {\"islighton\": {\"type\": \"boolean\"}, \"islocked\": {\"type\": \"boolean\"}, \"isopen\": {\"type\": \"boolean\"}}}}}, \"windshield\": {\"type\": \"object\", \"properties\": {\"front\": {\"type\": \"object\", \"properties\": {\"isheatingon\": {\"type\": \"boolean\"}, \"washerfluid\": {\"type\": \"object\", \"properties\": {\"islevellow\": {\"type\": \"boolean\"}, \"level\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"wiping\": {\"type\": \"object\", \"properties\": {\"intensity\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"iswipersworn\": {\"type\": \"boolean\"}, \"mode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"OFF\", \"SLOW\", \"MEDIUM\", \"FAST\", \"INTERVAL\", \"RAIN_SENSOR\"]}, \"system\": {\"type\": \"object\", \"properties\": {\"actualposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"drivecurrent\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"frequency\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isblocked\": {\"type\": \"boolean\"}, \"isendingwipecycle\": {\"type\": \"boolean\"}, \"isoverheated\": {\"type\": \"boolean\"}, \"ispositionreached\": {\"type\": \"boolean\"}, \"iswipererror\": {\"type\": \"boolean\"}, \"iswiping\": {\"type\": \"boolean\"}, \"mode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"STOP_HOLD\", \"WIPE\", \"PLANT_MODE\", \"EMERGENCY_STOP\"]}, \"targetposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"wiperwear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}}}, \"rear\": {\"type\": \"object\", \"properties\": {\"isheatingon\": {\"type\": \"boolean\"}, \"washerfluid\": {\"type\": \"object\", \"properties\": {\"islevellow\": {\"type\": \"boolean\"}, \"level\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"wiping\": {\"type\": \"object\", \"properties\": {\"intensity\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"iswipersworn\": {\"type\": \"boolean\"}, \"mode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"OFF\", \"SLOW\", \"MEDIUM\", \"FAST\", \"INTERVAL\", \"RAIN_SENSOR\"]}, \"system\": {\"type\": \"object\", \"properties\": {\"actualposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"drivecurrent\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"frequency\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isblocked\": {\"type\": \"boolean\"}, \"isendingwipecycle\": {\"type\": \"boolean\"}, \"isoverheated\": {\"type\": \"boolean\"}, \"ispositionreached\": {\"type\": \"boolean\"}, \"iswipererror\": {\"type\": \"boolean\"}, \"iswiping\": {\"type\": \"boolean\"}, \"mode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"STOP_HOLD\", \"WIPE\", \"PLANT_MODE\", \"EMERGENCY_STOP\"]}, \"targetposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"wiperwear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}}}}}}}, \"cabin\": {\"type\": \"object\", \"properties\": {\"convertible\": {\"type\": \"object\", \"properties\": {\"status\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UNDEFINED\", \"CLOSED\", \"OPEN\", \"CLOSING\", \"OPENING\", \"STALLED\"]}}}, \"door\": {\"type\": \"object\", \"properties\": {\"row1\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"ischildlockactive\": {\"type\": \"boolean\"}, \"islocked\": {\"type\": \"boolean\"}, \"isopen\": {\"type\": \"boolean\"}, \"shade\": {\"type\": \"object\", \"properties\": {\"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}, \"window\": {\"type\": \"object\", \"properties\": {\"isopen\": {\"type\": \"boolean\"}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"ischildlockactive\": {\"type\": \"boolean\"}, \"islocked\": {\"type\": \"boolean\"}, \"isopen\": {\"type\": \"boolean\"}, \"shade\": {\"type\": \"object\", \"properties\": {\"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}, \"window\": {\"type\": \"object\", \"properties\": {\"isopen\": {\"type\": \"boolean\"}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}}}}}, \"row2\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"ischildlockactive\": {\"type\": \"boolean\"}, \"islocked\": {\"type\": \"boolean\"}, \"isopen\": {\"type\": \"boolean\"}, \"shade\": {\"type\": \"object\", \"properties\": {\"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}, \"window\": {\"type\": \"object\", \"properties\": {\"isopen\": {\"type\": \"boolean\"}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"ischildlockactive\": {\"type\": \"boolean\"}, \"islocked\": {\"type\": \"boolean\"}, \"isopen\": {\"type\": \"boolean\"}, \"shade\": {\"type\": \"object\", \"properties\": {\"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}, \"window\": {\"type\": \"object\", \"properties\": {\"isopen\": {\"type\": \"boolean\"}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}}}}}}}, \"doorcount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10, \"default\": 4}, \"driverposition\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"LEFT\", \"MIDDLE\", \"RIGHT\"]}, \"hvac\": {\"type\": \"object\", \"properties\": {\"ambientairtemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"isairconditioningactive\": {\"type\": \"boolean\"}, \"isfrontdefrosteractive\": {\"type\": \"boolean\"}, \"isreardefrosteractive\": {\"type\": \"boolean\"}, \"isrecirculationactive\": {\"type\": \"boolean\"}, \"poweroptimizelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"station\": {\"type\": \"object\", \"properties\": {\"row1\": {\"type\": \"object\", \"properties\": {\"driver\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"passenger\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}}}, \"row2\": {\"type\": \"object\", \"properties\": {\"driver\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"passenger\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}}}, \"row3\": {\"type\": \"object\", \"properties\": {\"driver\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"passenger\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}}}, \"row4\": {\"type\": \"object\", \"properties\": {\"driver\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"passenger\": {\"type\": \"object\", \"properties\": {\"airdistribution\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UP\", \"MIDDLE\", \"DOWN\"]}, \"fanspeed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}}}}}}}, \"infotainment\": {\"type\": \"object\", \"properties\": {\"hmi\": {\"type\": \"object\", \"properties\": {\"brightness\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"currentlanguage\": {\"type\": \"string\", \"length\": 20}, \"dateformat\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"YYYY_MM_DD\", \"DD_MM_YYYY\", \"MM_DD_YYYY\", \"YY_MM_DD\", \"DD_MM_YY\", \"MM_DD_YY\"]}, \"daynightmode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"DAY\", \"NIGHT\"]}, \"displayoffduration\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"distanceunit\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"MILES\", \"KILOMETERS\"]}, \"eveconomyunits\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"MILES_PER_KILOWATT_HOUR\", \"KILOMETERS_PER_KILOWATT_HOUR\", \"KILOWATT_HOURS_PER_100_MILES\", \"KILOWATT_HOURS_PER_100_KILOMETERS\", \"WATT_HOURS_PER_MILE\", \"WATT_HOURS_PER_KILOMETER\"]}, \"evenergyunits\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"WATT_HOURS\", \"AMPERE_HOURS\", \"KILOWATT_HOURS\"]}, \"fontsize\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"STANDARD\", \"LARGE\", \"EXTRA_LARGE\"]}, \"fueleconomyunits\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"MPG_UK\", \"MPG_US\", \"MILES_PER_LITER\", \"KILOMETERS_PER_LITER\", \"LITERS_PER_100_KILOMETERS\"]}, \"fuelvolumeunit\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"LITER\", \"GALLON_US\", \"GALLON_UK\"]}, \"isscreenalwayson\": {\"type\": \"boolean\"}, \"lastactiontime\": {\"type\": \"string\", \"length\": 20}, \"speedunit\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"METERS_PER_SECOND\", \"MILES_PER_HOUR\", \"KILOMETERS_PER_HOUR\"]}, \"temperatureunit\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"C\", \"F\"]}, \"timeformat\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"HR_12\", \"HR_24\"]}, \"tirepressureunit\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"PSI\", \"KPA\", \"BAR\"]}}}, \"media\": {\"type\": \"object\", \"properties\": {\"action\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UNKNOWN\", \"STOP\", \"PLAY\", \"FAST_FORWARD\", \"FAST_BACKWARD\", \"SKIP_FORWARD\", \"SKIP_BACKWARD\"]}, \"declineduri\": {\"type\": \"string\", \"length\": 20}, \"played\": {\"type\": \"object\", \"properties\": {\"album\": {\"type\": \"string\", \"length\": 20}, \"artist\": {\"type\": \"string\", \"length\": 20}, \"playbackrate\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"source\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UNKNOWN\", \"SIRIUS_XM\", \"AM\", \"FM\", \"DAB\", \"TV\", \"CD\", \"DVD\", \"AUX\", \"USB\", \"DISK\", \"BLUETOOTH\", \"INTERNET\", \"VOICE\", \"BEEP\"]}, \"track\": {\"type\": \"string\", \"length\": 20}, \"uri\": {\"type\": \"string\", \"length\": 20}}}, \"selecteduri\": {\"type\": \"string\", \"length\": 20}, \"volume\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"navigation\": {\"type\": \"object\", \"properties\": {\"destinationset\": {\"type\": \"object\", \"properties\": {\"latitude\": {\"type\": \"number\", \"minimum\": -90, \"maximum\": 90, \"precision\": 0.0001}, \"longitude\": {\"type\": \"number\", \"minimum\": -180, \"maximum\": 180, \"precision\": 0.0001}}}, \"guidancevoice\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"STANDARD_MALE\", \"STANDARD_FEMALE\", \"ETC\"]}, \"mute\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"MUTED\", \"ALERT_ONLY\", \"UNMUTED\"]}, \"volume\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"poweroptimizelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"smartphoneprojection\": {\"type\": \"object\", \"properties\": {\"active\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"NONE\", \"ACTIVE\", \"INACTIVE\"]}, \"source\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"USB\", \"BLUETOOTH\", \"WIFI\"]}, \"supportedmode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"ANDROID_AUTO\", \"APPLE_CARPLAY\", \"MIRROR_LINK\", \"OTHER\"]}}}}}, \"iswindowchildlockengaged\": {\"type\": \"boolean\"}, \"light\": {\"type\": \"object\", \"properties\": {\"ambientlight\": {\"type\": \"object\", \"properties\": {\"row1\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}}}, \"row2\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}}}}}, \"interactivelightbar\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"effect\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}, \"isdomeon\": {\"type\": \"boolean\"}, \"isgloveboxon\": {\"type\": \"boolean\"}, \"perceivedambientlight\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"spotlight\": {\"type\": \"object\", \"properties\": {\"row1\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}}}, \"row2\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}}}, \"row3\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}}}, \"row4\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"color\": {\"type\": \"string\", \"length\": 20}, \"intensity\": {\"type\": \"integer\", \"minimum\": 1, \"maximum\": 100}, \"islighton\": {\"type\": \"boolean\"}}}}}}}}}, \"poweroptimizelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"rearshade\": {\"type\": \"object\", \"properties\": {\"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}, \"rearviewmirror\": {\"type\": \"object\", \"properties\": {\"dimminglevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"seat\": {\"type\": \"object\", \"properties\": {\"row1\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"airbag\": {\"type\": \"object\", \"properties\": {\"isdeployed\": {\"type\": \"boolean\"}}}, \"backrest\": {\"type\": \"object\", \"properties\": {\"lumbar\": {\"type\": \"object\", \"properties\": {\"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"recline\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"angle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"heating\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isbelted\": {\"type\": \"boolean\"}, \"isoccupied\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"occupant\": {\"type\": \"object\", \"properties\": {\"identifier\": {\"type\": \"object\", \"properties\": {\"issuer\": {\"type\": \"string\", \"length\": 20}, \"subject\": {\"type\": \"string\", \"length\": 20}}}}}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"seating\": {\"type\": \"object\", \"properties\": {\"length\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"switch\": {\"type\": \"object\", \"properties\": {\"backrest\": {\"type\": \"object\", \"properties\": {\"isreclinebackwardengaged\": {\"type\": \"boolean\"}, \"isreclineforwardengaged\": {\"type\": \"boolean\"}, \"lumbar\": {\"type\": \"object\", \"properties\": {\"isdownengaged\": {\"type\": \"boolean\"}, \"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"isbackwardengaged\": {\"type\": \"boolean\"}, \"iscoolerengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"istiltbackwardengaged\": {\"type\": \"boolean\"}, \"istiltforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}, \"iswarmerengaged\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"object\", \"properties\": {\"isdecreaseengaged\": {\"type\": \"boolean\"}, \"isincreaseengaged\": {\"type\": \"boolean\"}}}, \"seating\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}}}}}, \"tilt\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"middle\": {\"type\": \"object\", \"properties\": {\"airbag\": {\"type\": \"object\", \"properties\": {\"isdeployed\": {\"type\": \"boolean\"}}}, \"backrest\": {\"type\": \"object\", \"properties\": {\"lumbar\": {\"type\": \"object\", \"properties\": {\"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"recline\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"angle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"heating\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isbelted\": {\"type\": \"boolean\"}, \"isoccupied\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"occupant\": {\"type\": \"object\", \"properties\": {\"identifier\": {\"type\": \"object\", \"properties\": {\"issuer\": {\"type\": \"string\", \"length\": 20}, \"subject\": {\"type\": \"string\", \"length\": 20}}}}}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"seating\": {\"type\": \"object\", \"properties\": {\"length\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"switch\": {\"type\": \"object\", \"properties\": {\"backrest\": {\"type\": \"object\", \"properties\": {\"isreclinebackwardengaged\": {\"type\": \"boolean\"}, \"isreclineforwardengaged\": {\"type\": \"boolean\"}, \"lumbar\": {\"type\": \"object\", \"properties\": {\"isdownengaged\": {\"type\": \"boolean\"}, \"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"isbackwardengaged\": {\"type\": \"boolean\"}, \"iscoolerengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"istiltbackwardengaged\": {\"type\": \"boolean\"}, \"istiltforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}, \"iswarmerengaged\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"object\", \"properties\": {\"isdecreaseengaged\": {\"type\": \"boolean\"}, \"isincreaseengaged\": {\"type\": \"boolean\"}}}, \"seating\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}}}}}, \"tilt\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"airbag\": {\"type\": \"object\", \"properties\": {\"isdeployed\": {\"type\": \"boolean\"}}}, \"backrest\": {\"type\": \"object\", \"properties\": {\"lumbar\": {\"type\": \"object\", \"properties\": {\"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"recline\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"angle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"heating\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isbelted\": {\"type\": \"boolean\"}, \"isoccupied\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"occupant\": {\"type\": \"object\", \"properties\": {\"identifier\": {\"type\": \"object\", \"properties\": {\"issuer\": {\"type\": \"string\", \"length\": 20}, \"subject\": {\"type\": \"string\", \"length\": 20}}}}}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"seating\": {\"type\": \"object\", \"properties\": {\"length\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"switch\": {\"type\": \"object\", \"properties\": {\"backrest\": {\"type\": \"object\", \"properties\": {\"isreclinebackwardengaged\": {\"type\": \"boolean\"}, \"isreclineforwardengaged\": {\"type\": \"boolean\"}, \"lumbar\": {\"type\": \"object\", \"properties\": {\"isdownengaged\": {\"type\": \"boolean\"}, \"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"isbackwardengaged\": {\"type\": \"boolean\"}, \"iscoolerengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"istiltbackwardengaged\": {\"type\": \"boolean\"}, \"istiltforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}, \"iswarmerengaged\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"object\", \"properties\": {\"isdecreaseengaged\": {\"type\": \"boolean\"}, \"isincreaseengaged\": {\"type\": \"boolean\"}}}, \"seating\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}}}}}, \"tilt\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"row2\": {\"type\": \"object\", \"properties\": {\"driverside\": {\"type\": \"object\", \"properties\": {\"airbag\": {\"type\": \"object\", \"properties\": {\"isdeployed\": {\"type\": \"boolean\"}}}, \"backrest\": {\"type\": \"object\", \"properties\": {\"lumbar\": {\"type\": \"object\", \"properties\": {\"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"recline\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"angle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"heating\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isbelted\": {\"type\": \"boolean\"}, \"isoccupied\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"occupant\": {\"type\": \"object\", \"properties\": {\"identifier\": {\"type\": \"object\", \"properties\": {\"issuer\": {\"type\": \"string\", \"length\": 20}, \"subject\": {\"type\": \"string\", \"length\": 20}}}}}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"seating\": {\"type\": \"object\", \"properties\": {\"length\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"switch\": {\"type\": \"object\", \"properties\": {\"backrest\": {\"type\": \"object\", \"properties\": {\"isreclinebackwardengaged\": {\"type\": \"boolean\"}, \"isreclineforwardengaged\": {\"type\": \"boolean\"}, \"lumbar\": {\"type\": \"object\", \"properties\": {\"isdownengaged\": {\"type\": \"boolean\"}, \"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"isbackwardengaged\": {\"type\": \"boolean\"}, \"iscoolerengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"istiltbackwardengaged\": {\"type\": \"boolean\"}, \"istiltforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}, \"iswarmerengaged\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"object\", \"properties\": {\"isdecreaseengaged\": {\"type\": \"boolean\"}, \"isincreaseengaged\": {\"type\": \"boolean\"}}}, \"seating\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}}}}}, \"tilt\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"middle\": {\"type\": \"object\", \"properties\": {\"airbag\": {\"type\": \"object\", \"properties\": {\"isdeployed\": {\"type\": \"boolean\"}}}, \"backrest\": {\"type\": \"object\", \"properties\": {\"lumbar\": {\"type\": \"object\", \"properties\": {\"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"recline\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"angle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"heating\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isbelted\": {\"type\": \"boolean\"}, \"isoccupied\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"occupant\": {\"type\": \"object\", \"properties\": {\"identifier\": {\"type\": \"object\", \"properties\": {\"issuer\": {\"type\": \"string\", \"length\": 20}, \"subject\": {\"type\": \"string\", \"length\": 20}}}}}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"seating\": {\"type\": \"object\", \"properties\": {\"length\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"switch\": {\"type\": \"object\", \"properties\": {\"backrest\": {\"type\": \"object\", \"properties\": {\"isreclinebackwardengaged\": {\"type\": \"boolean\"}, \"isreclineforwardengaged\": {\"type\": \"boolean\"}, \"lumbar\": {\"type\": \"object\", \"properties\": {\"isdownengaged\": {\"type\": \"boolean\"}, \"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"isbackwardengaged\": {\"type\": \"boolean\"}, \"iscoolerengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"istiltbackwardengaged\": {\"type\": \"boolean\"}, \"istiltforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}, \"iswarmerengaged\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"object\", \"properties\": {\"isdecreaseengaged\": {\"type\": \"boolean\"}, \"isincreaseengaged\": {\"type\": \"boolean\"}}}, \"seating\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}}}}}, \"tilt\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"passengerside\": {\"type\": \"object\", \"properties\": {\"airbag\": {\"type\": \"object\", \"properties\": {\"isdeployed\": {\"type\": \"boolean\"}}}, \"backrest\": {\"type\": \"object\", \"properties\": {\"lumbar\": {\"type\": \"object\", \"properties\": {\"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"recline\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"support\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"angle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"heating\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isbelted\": {\"type\": \"boolean\"}, \"isoccupied\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"occupant\": {\"type\": \"object\", \"properties\": {\"identifier\": {\"type\": \"object\", \"properties\": {\"issuer\": {\"type\": \"string\", \"length\": 20}, \"subject\": {\"type\": \"string\", \"length\": 20}}}}}, \"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"seating\": {\"type\": \"object\", \"properties\": {\"length\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"switch\": {\"type\": \"object\", \"properties\": {\"backrest\": {\"type\": \"object\", \"properties\": {\"isreclinebackwardengaged\": {\"type\": \"boolean\"}, \"isreclineforwardengaged\": {\"type\": \"boolean\"}, \"lumbar\": {\"type\": \"object\", \"properties\": {\"isdownengaged\": {\"type\": \"boolean\"}, \"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"sidebolster\": {\"type\": \"object\", \"properties\": {\"islesssupportengaged\": {\"type\": \"boolean\"}, \"ismoresupportengaged\": {\"type\": \"boolean\"}}}}}, \"headrest\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}}}, \"isbackwardengaged\": {\"type\": \"boolean\"}, \"iscoolerengaged\": {\"type\": \"boolean\"}, \"isdownengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}, \"istiltbackwardengaged\": {\"type\": \"boolean\"}, \"istiltforwardengaged\": {\"type\": \"boolean\"}, \"isupengaged\": {\"type\": \"boolean\"}, \"iswarmerengaged\": {\"type\": \"boolean\"}, \"massage\": {\"type\": \"object\", \"properties\": {\"isdecreaseengaged\": {\"type\": \"boolean\"}, \"isincreaseengaged\": {\"type\": \"boolean\"}}}, \"seating\": {\"type\": \"object\", \"properties\": {\"isbackwardengaged\": {\"type\": \"boolean\"}, \"isforwardengaged\": {\"type\": \"boolean\"}}}}}, \"tilt\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}}}, \"seatposcount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10, \"default\": [2, 3]}, \"seatrowcount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10, \"default\": 2}, \"sunroof\": {\"type\": \"object\", \"properties\": {\"position\": {\"type\": \"integer\", \"minimum\": -100, \"maximum\": 100}, \"shade\": {\"type\": \"object\", \"properties\": {\"position\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\"]}}}, \"switch\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"CLOSE\", \"OPEN\", \"ONE_SHOT_CLOSE\", \"ONE_SHOT_OPEN\", \"TILT_UP\", \"TILT_DOWN\"]}}}}}, \"cargovolume\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"chassis\": {\"type\": \"object\", \"properties\": {\"accelerator\": {\"type\": \"object\", \"properties\": {\"pedalposition\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"axle\": {\"type\": \"object\", \"properties\": {\"row1\": {\"type\": \"object\", \"properties\": {\"axlewidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"steeringangle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tireaspectratio\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"tirediameter\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tirewidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"trackwidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"treadwidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"wheel\": {\"type\": \"object\", \"properties\": {\"left\": {\"type\": \"object\", \"properties\": {\"brake\": {\"type\": \"object\", \"properties\": {\"fluidlevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"isbrakesworn\": {\"type\": \"boolean\"}, \"isfluidlevellow\": {\"type\": \"boolean\"}, \"padwear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"speed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tire\": {\"type\": \"object\", \"properties\": {\"ispressurelow\": {\"type\": \"boolean\"}, \"pressure\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"temperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"right\": {\"type\": \"object\", \"properties\": {\"brake\": {\"type\": \"object\", \"properties\": {\"fluidlevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"isbrakesworn\": {\"type\": \"boolean\"}, \"isfluidlevellow\": {\"type\": \"boolean\"}, \"padwear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"speed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tire\": {\"type\": \"object\", \"properties\": {\"ispressurelow\": {\"type\": \"boolean\"}, \"pressure\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"temperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}}}, \"wheelcount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"wheeldiameter\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"wheelwidth\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"row2\": {\"type\": \"object\", \"properties\": {\"axlewidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"steeringangle\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tireaspectratio\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"tirediameter\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tirewidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"trackwidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"treadwidth\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"wheel\": {\"type\": \"object\", \"properties\": {\"left\": {\"type\": \"object\", \"properties\": {\"brake\": {\"type\": \"object\", \"properties\": {\"fluidlevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"isbrakesworn\": {\"type\": \"boolean\"}, \"isfluidlevellow\": {\"type\": \"boolean\"}, \"padwear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"speed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tire\": {\"type\": \"object\", \"properties\": {\"ispressurelow\": {\"type\": \"boolean\"}, \"pressure\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"temperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"right\": {\"type\": \"object\", \"properties\": {\"brake\": {\"type\": \"object\", \"properties\": {\"fluidlevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"isbrakesworn\": {\"type\": \"boolean\"}, \"isfluidlevellow\": {\"type\": \"boolean\"}, \"padwear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"speed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tire\": {\"type\": \"object\", \"properties\": {\"ispressurelow\": {\"type\": \"boolean\"}, \"pressure\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"temperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}}}, \"wheelcount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"wheeldiameter\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"wheelwidth\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"axlecount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10, \"default\": 2}, \"brake\": {\"type\": \"object\", \"properties\": {\"isdriveremergencybrakingdetected\": {\"type\": \"boolean\"}, \"pedalposition\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"parkingbrake\": {\"type\": \"object\", \"properties\": {\"isautoapplyenabled\": {\"type\": \"boolean\"}, \"isengaged\": {\"type\": \"boolean\"}}}, \"steeringwheel\": {\"type\": \"object\", \"properties\": {\"angle\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"extension\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"tilt\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}}}, \"wheelbase\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"connectivity\": {\"type\": \"object\", \"properties\": {\"isconnectivityavailable\": {\"type\": \"boolean\"}}}, \"curbweight\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"currentlocation\": {\"type\": \"object\", \"properties\": {\"altitude\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"gnssreceiver\": {\"type\": \"object\", \"properties\": {\"fixtype\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"NONE\", \"TWO_D\", \"TWO_D_SATELLITE_BASED_AUGMENTATION\", \"TWO_D_GROUND_BASED_AUGMENTATION\", \"TWO_D_SATELLITE_AND_GROUND_BASED_AUGMENTATION\", \"THREE_D\", \"THREE_D_SATELLITE_BASED_AUGMENTATION\", \"THREE_D_GROUND_BASED_AUGMENTATION\", \"THREE_D_SATELLITE_AND_GROUND_BASED_AUGMENTATION\"]}, \"mountingposition\": {\"type\": \"object\", \"properties\": {\"x\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"y\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"z\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}}}, \"heading\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 360, \"precision\": 0.0001}, \"horizontalaccuracy\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"latitude\": {\"type\": \"number\", \"minimum\": -90, \"maximum\": 90, \"precision\": 0.0001}, \"longitude\": {\"type\": \"number\", \"minimum\": -180, \"maximum\": 180, \"precision\": 0.0001}, \"timestamp\": {\"type\": \"string\", \"length\": 20}, \"verticalaccuracy\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"currentoverallweight\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"driver\": {\"type\": \"object\", \"properties\": {\"attentiveprobability\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"distractionlevel\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fatiguelevel\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"heartrate\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"identifier\": {\"type\": \"object\", \"properties\": {\"issuer\": {\"type\": \"string\", \"length\": 20}, \"subject\": {\"type\": \"string\", \"length\": 20}}}, \"iseyesonroad\": {\"type\": \"boolean\"}, \"ishandsonwheel\": {\"type\": \"boolean\"}}}, \"emissionsco2\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"exterior\": {\"type\": \"object\", \"properties\": {\"airtemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"humidity\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lightintensity\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"grossweight\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"height\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"isbrokendown\": {\"type\": \"boolean\"}, \"ismoving\": {\"type\": \"boolean\"}, \"length\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"lowvoltagebattery\": {\"type\": \"object\", \"properties\": {\"currentcurrent\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"currentvoltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"nominalcapacity\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"nominalvoltage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"lowvoltagesystemstate\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"UNDEFINED\", \"LOCK\", \"OFF\", \"ACC\", \"ON\", \"START\"]}, \"maxtowballweight\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"maxtowweight\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"obd\": {\"type\": \"object\", \"properties\": {\"absoluteload\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"acceleratorpositiond\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"acceleratorpositione\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"acceleratorpositionf\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"airstatus\": {\"type\": \"string\", \"length\": 20}, \"ambientairtemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"barometricpressure\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"catalyst\": {\"type\": \"object\", \"properties\": {\"bank1\": {\"type\": \"object\", \"properties\": {\"temperature1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"temperature2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"bank2\": {\"type\": \"object\", \"properties\": {\"temperature1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"temperature2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"commandedegr\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"commandedevap\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"commandedequivalenceratio\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"controlmodulevoltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"coolanttemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"dtclist\": {\"type\": \"string\", \"length\": 20}, \"distancesincedtcclear\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"distancewithmil\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"drivecyclestatus\": {\"type\": \"object\", \"properties\": {\"dtccount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"ignitiontype\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"SPARK\", \"COMPRESSION\"]}, \"ismilon\": {\"type\": \"boolean\"}}}, \"egrerror\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"evapvaporpressure\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"evapvaporpressureabsolute\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"evapvaporpressurealternate\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"engineload\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"enginespeed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"ethanolpercent\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"freezedtc\": {\"type\": \"string\", \"length\": 20}, \"fuelinjectiontiming\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fuellevel\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fuelpressure\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fuelrailpressureabsolute\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fuelrailpressuredirect\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fuelrailpressurevac\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fuelrate\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"fuelstatus\": {\"type\": \"string\", \"length\": 20}, \"fueltype\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 23}, \"hybridbatteryremaining\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"intaketemp\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"isptoactive\": {\"type\": \"boolean\"}, \"longtermfueltrim1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"longtermfueltrim2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"longtermo2trim1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"longtermo2trim2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"longtermo2trim3\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"longtermo2trim4\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"maf\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"map\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"maxmaf\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"o2\": {\"type\": \"object\", \"properties\": {\"sensor1\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor2\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor3\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor4\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor5\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor6\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor7\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor8\": {\"type\": \"object\", \"properties\": {\"shorttermfueltrim\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"o2wr\": {\"type\": \"object\", \"properties\": {\"sensor1\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor2\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor3\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor4\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor5\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor6\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor7\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"sensor8\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"lambda\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"voltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}}}, \"obdstandards\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"oiltemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"oxygensensorsin2banks\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"oxygensensorsin4banks\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"pidsa\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"01\", \"02\", \"03\", \"04\", \"05\", \"06\", \"07\", \"08\", \"09\", \"0A\", \"0B\", \"0C\", \"0D\", \"0E\", \"0F\", \"10\", \"11\", \"12\", \"13\", \"14\", \"15\", \"16\", \"17\", \"18\", \"19\", \"1A\", \"1B\", \"1C\", \"1D\", \"1E\", \"1F\", \"20\"]}, \"pidsb\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"21\", \"22\", \"23\", \"24\", \"25\", \"26\", \"27\", \"28\", \"29\", \"2A\", \"2B\", \"2C\", \"2D\", \"2E\", \"2F\", \"30\", \"31\", \"32\", \"33\", \"34\", \"35\", \"36\", \"37\", \"38\", \"39\", \"3A\", \"3B\", \"3C\", \"3D\", \"3E\", \"3F\", \"40\"]}, \"pidsc\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"41\", \"42\", \"43\", \"44\", \"45\", \"46\", \"47\", \"48\", \"49\", \"4A\", \"4B\", \"4C\", \"4D\", \"4E\", \"4F\", \"50\", \"51\", \"52\", \"53\", \"54\", \"55\", \"56\", \"57\", \"58\", \"59\", \"5A\", \"5B\", \"5C\", \"5D\", \"5E\", \"5F\", \"60\"]}, \"relativeacceleratorposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"relativethrottleposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"runtime\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"runtimemil\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"shorttermfueltrim1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"shorttermfueltrim2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"shorttermo2trim1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"shorttermo2trim2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"shorttermo2trim3\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"shorttermo2trim4\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"speed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"status\": {\"type\": \"object\", \"properties\": {\"dtccount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"ignitiontype\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"SPARK\", \"COMPRESSION\"]}, \"ismilon\": {\"type\": \"boolean\"}}}, \"throttleactuator\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"throttleposition\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"throttlepositionb\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"throttlepositionc\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"timesincedtccleared\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"timingadvance\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"warmupssincedtcclear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"poweroptimizelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"powertrain\": {\"type\": \"object\", \"properties\": {\"accumulatedbrakingenergy\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"combustionengine\": {\"type\": \"object\", \"properties\": {\"aspirationtype\": {\"type\": \"string\", \"length\": 20, \"default\": \"UNKNOWN\", \"enum\": [\"UNKNOWN\", \"NATURAL\", \"SUPERCHARGER\", \"TURBOCHARGER\"]}, \"bore\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"compressionratio\": {\"type\": \"string\", \"length\": 20}, \"configuration\": {\"type\": \"string\", \"length\": 20, \"default\": \"UNKNOWN\", \"enum\": [\"UNKNOWN\", \"STRAIGHT\", \"V\", \"BOXER\", \"W\", \"ROTARY\", \"RADIAL\", \"SQUARE\", \"H\", \"U\", \"OPPOSED\", \"X\"]}, \"dieselexhaustfluid\": {\"type\": \"object\", \"properties\": {\"capacity\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"islevellow\": {\"type\": \"boolean\"}, \"level\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"range\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"dieselparticulatefilter\": {\"type\": \"object\", \"properties\": {\"deltapressure\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"inlettemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"outlettemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"displacement\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"ect\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"eop\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"eot\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"enginecode\": {\"type\": \"string\", \"length\": 20}, \"enginecoolantcapacity\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"enginehours\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"engineoilcapacity\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"engineoillevel\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"CRITICALLY_LOW\", \"LOW\", \"NORMAL\", \"HIGH\", \"CRITICALLY_HIGH\"]}, \"idlehours\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"isrunning\": {\"type\": \"boolean\"}, \"maf\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"map\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"maxpower\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"maxtorque\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"numberofcylinders\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"numberofvalvespercylinder\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"oilliferemaining\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"power\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"speed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"strokelength\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tps\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"torque\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"electricmotor\": {\"type\": \"object\", \"properties\": {\"coolanttemperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"enginecode\": {\"type\": \"string\", \"length\": 20}, \"maxpower\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"maxregenpower\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"maxregentorque\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"maxtorque\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"power\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"speed\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"torque\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"fuelsystem\": {\"type\": \"object\", \"properties\": {\"absolutelevel\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"averageconsumption\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"consumptionsincestart\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"hybridtype\": {\"type\": \"string\", \"length\": 20, \"default\": \"UNKNOWN\", \"enum\": [\"UNKNOWN\", \"NOT_APPLICABLE\", \"STOP_START\", \"BELT_ISG\", \"CIMG\", \"PHEV\"]}, \"instantconsumption\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"isenginestopstartenabled\": {\"type\": \"boolean\"}, \"isfuellevellow\": {\"type\": \"boolean\"}, \"isfuelportflapopen\": {\"type\": \"boolean\"}, \"range\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"refuelportposition\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"FRONT_LEFT\", \"FRONT_MIDDLE\", \"FRONT_RIGHT\", \"REAR_LEFT\", \"REAR_MIDDLE\", \"REAR_RIGHT\", \"LEFT_FRONT\", \"LEFT_MIDDLE\", \"LEFT_REAR\", \"RIGHT_FRONT\", \"RIGHT_MIDDLE\", \"RIGHT_REAR\"]}, \"relativelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"supportedfuel\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"E5_95\", \"E5_98\", \"E10_95\", \"E10_98\", \"E85\", \"B7\", \"B10\", \"B20\", \"B30\", \"B100\", \"XTL\", \"LPG\", \"CNG\", \"LNG\", \"H2\", \"OTHER\"]}, \"supportedfueltypes\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"GASOLINE\", \"DIESEL\", \"E85\", \"LPG\", \"CNG\", \"LNG\", \"H2\", \"OTHER\"]}, \"tankcapacity\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"timeremaining\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"poweroptimizelevel\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"range\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"timeremaining\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"tractionbattery\": {\"type\": \"object\", \"properties\": {\"accumulatedchargedenergy\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"accumulatedchargedthroughput\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"accumulatedconsumedenergy\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"accumulatedconsumedthroughput\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"cellvoltage\": {\"type\": \"object\", \"properties\": {\"cellvoltages\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"idmax\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"idmin\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"max\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"min\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"charging\": {\"type\": \"object\", \"properties\": {\"averagepower\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"chargecurrent\": {\"type\": \"object\", \"properties\": {\"dc\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase3\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"chargelimit\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100, \"default\": 100}, \"chargeplugtype\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"IEC_TYPE_1_AC\", \"IEC_TYPE_2_AC\", \"IEC_TYPE_3_AC\", \"IEC_TYPE_4_DC\", \"IEC_TYPE_1_CCS_DC\", \"IEC_TYPE_2_CCS_DC\", \"TESLA_ROADSTER\", \"TESLA_HPWC\", \"TESLA_SUPERCHARGER\", \"GBT_AC\", \"GBT_DC\", \"OTHER\"]}, \"chargeportflap\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"OPEN\", \"CLOSED\"]}, \"chargeportposition\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"FRONT_LEFT\", \"FRONT_MIDDLE\", \"FRONT_RIGHT\", \"REAR_LEFT\", \"REAR_MIDDLE\", \"REAR_RIGHT\", \"LEFT_FRONT\", \"LEFT_MIDDLE\", \"LEFT_REAR\", \"RIGHT_FRONT\", \"RIGHT_MIDDLE\", \"RIGHT_REAR\"]}, \"chargeporttype\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"IEC_TYPE_1_AC\", \"IEC_TYPE_2_AC\", \"IEC_TYPE_3_AC\", \"IEC_TYPE_4_DC\", \"IEC_TYPE_1_CCS_DC\", \"IEC_TYPE_2_CCS_DC\", \"TESLA_ROADSTER\", \"TESLA_HPWC\", \"TESLA_SUPERCHARGER\", \"GBT_AC\", \"GBT_DC\", \"OTHER\"]}, \"chargerate\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"chargevoltage\": {\"type\": \"object\", \"properties\": {\"dc\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase3\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"evseid\": {\"type\": \"string\", \"length\": 20}, \"ischargeportflapopen\": {\"type\": \"boolean\"}, \"ischarging\": {\"type\": \"boolean\"}, \"ischargingcableconnected\": {\"type\": \"boolean\"}, \"ischargingcablelocked\": {\"type\": \"boolean\"}, \"isdischarging\": {\"type\": \"boolean\"}, \"location\": {\"type\": \"object\", \"properties\": {\"altitude\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"latitude\": {\"type\": \"number\", \"minimum\": -90, \"maximum\": 90, \"precision\": 0.0001}, \"longitude\": {\"type\": \"number\", \"minimum\": -180, \"maximum\": 180, \"precision\": 0.0001}}}, \"maxpower\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"maximumchargingcurrent\": {\"type\": \"object\", \"properties\": {\"dc\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase1\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase2\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"phase3\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"mode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"DEACTIVATED\", \"AUTOMATIC\", \"TRIGGERED\", \"TIMER\", \"PROFILE\", \"EXTERNAL_ENTITY\", \"MANUAL\", \"GRID\"]}, \"powerloss\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"startstopcharging\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"START\", \"STOP\"]}, \"temperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"timetocomplete\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"timer\": {\"type\": \"object\", \"properties\": {\"mode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"INACTIVE\", \"START_TIME\", \"END_TIME\"]}, \"time\": {\"type\": \"string\", \"length\": 20}}}}}, \"currentcurrent\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"currentpower\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"currentvoltage\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"dcdc\": {\"type\": \"object\", \"properties\": {\"powerloss\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"temperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"errorcodes\": {\"type\": \"string\", \"length\": 20}, \"grosscapacity\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"id\": {\"type\": \"string\", \"length\": 20}, \"isgroundconnected\": {\"type\": \"boolean\"}, \"ispowerconnected\": {\"type\": \"boolean\"}, \"maxvoltage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"netcapacity\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"nominalvoltage\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"powerloss\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"productiondate\": {\"type\": \"string\", \"length\": 20}, \"range\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"stateofcharge\": {\"type\": \"object\", \"properties\": {\"current\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100.0, \"precision\": 0.0001}, \"currentenergy\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"displayed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100.0, \"precision\": 0.0001}}}, \"stateofhealth\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"temperature\": {\"type\": \"object\", \"properties\": {\"average\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"celltemperature\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"max\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"min\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}}}, \"timeremaining\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"transmission\": {\"type\": \"object\", \"properties\": {\"clutchengagement\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"clutchwear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 100}, \"currentgear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"difflockfrontengagement\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"difflockrearengagement\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"drivetype\": {\"type\": \"string\", \"length\": 20, \"default\": \"UNKNOWN\", \"enum\": [\"UNKNOWN\", \"FORWARD_WHEEL_DRIVE\", \"REAR_WHEEL_DRIVE\", \"ALL_WHEEL_DRIVE\"]}, \"gearchangemode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"MANUAL\", \"AUTOMATIC\"]}, \"gearcount\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"iselectricalpowertrainengaged\": {\"type\": \"boolean\"}, \"islowrangeengaged\": {\"type\": \"boolean\"}, \"isparklockengaged\": {\"type\": \"boolean\"}, \"performancemode\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"NORMAL\", \"SPORT\", \"ECONOMY\", \"SNOW\", \"RAIN\"]}, \"selectedgear\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"temperature\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"torquedistribution\": {\"type\": \"number\", \"minimum\": -100, \"maximum\": 100, \"precision\": 0.0001}, \"travelleddistance\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"type\": {\"type\": \"string\", \"length\": 20, \"default\": \"UNKNOWN\", \"enum\": [\"UNKNOWN\", \"SEQUENTIAL\", \"H\", \"AUTOMATIC\", \"DSG\", \"CVT\"]}}}, \"type\": {\"type\": \"string\", \"length\": 20, \"enum\": [\"COMBUSTION\", \"HYBRID\", \"ELECTRIC\"]}}}, \"roofload\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"service\": {\"type\": \"object\", \"properties\": {\"distancetoservice\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"isservicedue\": {\"type\": \"boolean\"}, \"timetoservice\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"speed\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"starttime\": {\"type\": \"string\", \"length\": 20, \"default\": \"0000-01-01T00:00Z\"}, \"trailer\": {\"type\": \"object\", \"properties\": {\"isconnected\": {\"type\": \"boolean\"}}}, \"traveleddistance\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"traveleddistancesincestart\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tripduration\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"tripmeterreading\": {\"type\": \"number\", \"minimum\": 0, \"maximum\": 100, \"precision\": 0.0001}, \"vehicleidentification\": {\"type\": \"object\", \"properties\": {\"acrisscode\": {\"type\": \"string\", \"length\": 20}, \"bodytype\": {\"type\": \"string\", \"length\": 20}, \"brand\": {\"type\": \"string\", \"length\": 20}, \"datevehiclefirstregistered\": {\"type\": \"string\", \"length\": 20}, \"knownvehicledamages\": {\"type\": \"string\", \"length\": 20}, \"licenseplate\": {\"type\": \"string\", \"length\": 20}, \"meetsemissionstandard\": {\"type\": \"string\", \"length\": 20}, \"model\": {\"type\": \"string\", \"length\": 20}, \"optionalextras\": {\"type\": \"string\", \"length\": 20}, \"productiondate\": {\"type\": \"string\", \"length\": 20}, \"purchasedate\": {\"type\": \"string\", \"length\": 20}, \"vin\": {\"type\": \"string\", \"length\": 17}, \"vehicleconfiguration\": {\"type\": \"string\", \"length\": 20}, \"vehicleexteriorcolor\": {\"type\": \"string\", \"length\": 20}, \"vehicleinteriorcolor\": {\"type\": \"string\", \"length\": 20}, \"vehicleinteriortype\": {\"type\": \"string\", \"length\": 20}, \"vehiclemodeldate\": {\"type\": \"string\", \"length\": 20}, \"vehicleseatingcapacity\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}, \"vehiclespecialusage\": {\"type\": \"string\", \"length\": 20}, \"wmi\": {\"type\": \"string\", \"length\": 3}, \"year\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"versionvss\": {\"type\": \"object\", \"properties\": {\"label\": {\"type\": \"string\", \"length\": 20, \"default\": \"dev\"}, \"major\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10, \"default\": 4}, \"minor\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10, \"default\": 1}, \"patch\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}, \"width\": {\"type\": \"integer\", \"minimum\": 0, \"maximum\": 10}}}",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/glue-resources-construct/vehicle-signal-specification-json-schema"
      }
    },
    "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE": {
      "Type": "AWS::Glue::Database",
      "Properties": {
        "CatalogId": {
          "Ref": "AWS::AccountId"
        },
        "DatabaseInput": {
          "Description": "This database holds reference table(s) for Kinesis Firehose",
          "Name": {
            "Fn::Join": [
              "",
              [
                {
                  "Ref": "AppUniqueId"
                },
                "-connect-store-iot-data-conversion-glue-database"
              ]
            ]
          }
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/glue-resources-construct/iot-data-conversion-glue-database"
      }
    },
    "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5": {
      "Type": "AWS::Glue::Table",
      "Properties": {
        "CatalogId": {
          "Ref": "AWS::AccountId"
        },
        "DatabaseName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-connect-store-iot-data-conversion-glue-database"
            ]
          ]
        },
        "TableInput": {
          "Description": "Main data stream for IoT Core reference table",
          "Name": "iot-main-stream-glue-schema-table",
          "StorageDescriptor": {
            "InputFormat": "org.apache.hadoop.mapred.TextInputFormat",
            "Location": {
              "Fn::Join": [
                "",
                [
                  "s3://",
                  {
                    "Ref": "connectstoreroots3constructencryptedbucket39CFDB23"
                  },
                  "/cms/data"
                ]
              ]
            },
            "OutputFormat": "org.apache.hadoop.hive.ql.io.HiveIgnoreKeyTextOutputFormat",
            "SchemaReference": {
              "SchemaId": {
                "RegistryName": "default-registry",
                "SchemaName": {
                  "Fn::Join": [
                    "",
                    [
                      {
                        "Ref": "AppUniqueId"
                      },
                      "-connect-store-glue-schema"
                    ]
                  ]
                }
              },
              "SchemaVersionNumber": 1
            },
            "SerdeInfo": {
              "SerializationLibrary": "org.openx.data.jsonserde.JsonSerDe"
            }
          }
        }
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/glue-resources-construct/iot-main-stream-glue-schema-table"
      }
    },
    "connectstoreiotcoretos3jsonconstructiotcoretos3roleF8D957AE": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "iot.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "s3:Abort",
                    "s3:DeleteObject",
                    "s3:GetBucket",
                    "s3:GetObject",
                    "s3:List",
                    "s3:PutObject"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::GetAtt": [
                        "connectstoreroots3constructencryptedbucket39CFDB23",
                        "Arn"
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          {
                            "Fn::GetAtt": [
                              "connectstoreroots3constructencryptedbucket39CFDB23",
                              "Arn"
                            ]
                          },
                          "/*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "s3-read-write-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-json-construct/iot-core-to-s3-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::<connectstoreroots3constructcmkencryptedbucketB398B73B.Arn>/*"
              ],
              "reason": "Wildcard permissions required to get/put all objects in the given bucket."
            }
          ]
        }
      }
    },
    "connectstoreiotcoretos3jsonconstructiotsavetos3jsonCBD4C99E": {
      "Type": "AWS::IoT::TopicRule",
      "Properties": {
        "RuleName": {
          "Fn::Join": [
            "",
            [
              {
                "Fn::Join": [
                  "_",
                  {
                    "Fn::Split": [
                      "-",
                      {
                        "Fn::Join": [
                          "",
                          [
                            {
                              "Ref": "AppUniqueId"
                            },
                            "_connect-store"
                          ]
                        ]
                      }
                    ]
                  }
                ]
              },
              "_iot_save_to_s3_json"
            ]
          ]
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "TopicRulePayload": {
          "Actions": [
            {
              "S3": {
                "BucketName": {
                  "Ref": "connectstoreroots3constructencryptedbucket39CFDB23"
                },
                "Key": "${topic()}/${timestamp()}",
                "RoleArn": {
                  "Fn::GetAtt": [
                    "connectstoreiotcoretos3jsonconstructiotcoretos3roleF8D957AE",
                    "Arn"
                  ]
                }
              }
            }
          ],
          "Description": "Save raw vss data in JSON format to S3 bucket.",
          "Sql": "SELECT * FROM 'cms/data/#'"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-json-construct/iot-save-to-s3-json"
      }
    },
    "connectstoreiotcoretos3parquetconstructiotkinesisloggroup3181DFF1": {
      "Type": "AWS::Logs::LogGroup",
      "Properties": {
        "RetentionInDays": 90,
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain",
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-parquet-construct/iot-kinesis-log-group/log-group/Resource"
      }
    },
    "connectstoreiotcoretos3parquetconstructiotkinesislogstreamF3CAC841": {
      "Type": "AWS::Logs::LogStream",
      "Properties": {
        "LogGroupName": {
          "Ref": "connectstoreiotcoretos3parquetconstructiotkinesisloggroup3181DFF1"
        },
        "LogStreamName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-connect-store-iot-connectivity-stream"
            ]
          ]
        }
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain",
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-parquet-construct/iot-kinesis-log-stream/Resource"
      }
    },
    "connectstoreiotcoretos3parquetconstructkinesisroleE74298AA": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "firehose.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Description": "Service role for kinesis firehose",
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "connectstoreiotcoretos3parquetconstructiotkinesisloggroup3181DFF1",
                      "Arn"
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "kinesis-cloudwatch-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "glue:GetDatabase",
                    "glue:GetTable",
                    "glue:GetTableVersion",
                    "glue:GetTableVersions"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":catalog"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":database/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-connect-store-iot-data-conversion-glue-database"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":table/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-connect-store-iot-data-conversion-glue-database/iot-main-stream-glue-schema-table"
                        ]
                      ]
                    }
                  ]
                },
                {
                  "Action": [
                    "glue:GetRegistry",
                    "glue:GetSchema",
                    "glue:GetSchemaVersion"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::GetAtt": [
                        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
                        "Arn"
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":glue:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":registry/default-registry"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "glue-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "s3:AbortMultipartUpload",
                    "s3:GetBucketLocation",
                    "s3:GetObject",
                    "s3:ListBucket",
                    "s3:ListBucketMultipartUploads",
                    "s3:PutObject"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::GetAtt": [
                        "connectstoreroots3constructencryptedbucket39CFDB23",
                        "Arn"
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          {
                            "Fn::GetAtt": [
                              "connectstoreroots3constructencryptedbucket39CFDB23",
                              "Arn"
                            ]
                          },
                          "/*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "s3-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-parquet-construct/kinesis-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::<connectstoreroots3constructcmkencryptedbucketB398B73B.Arn>/*"
              ],
              "reason": "Wildcard permissions required to get/put all objects in the given bucket."
            }
          ]
        }
      }
    },
    "connectstoreiotcoretos3parquetconstructkinesisfirehosekey8A3936D2": {
      "Type": "AWS::KMS::Key",
      "Properties": {
        "EnableKeyRotation": true,
        "KeyPolicy": {
          "Statement": [
            {
              "Action": "kms:*",
              "Effect": "Allow",
              "Principal": {
                "AWS": {
                  "Fn::Join": [
                    "",
                    [
                      "arn:",
                      {
                        "Ref": "AWS::Partition"
                      },
                      ":iam::",
                      {
                        "Ref": "AWS::AccountId"
                      },
                      ":root"
                    ]
                  ]
                }
              },
              "Resource": "*"
            }
          ],
          "Version": "2012-10-17"
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "UpdateReplacePolicy": "Retain",
      "DeletionPolicy": "Retain",
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-parquet-construct/kinesis-firehose-key/Resource"
      }
    },
    "connectstoreiotcoretos3parquetconstructiotcoretos3withpartitioningstream335EA379": {
      "Type": "AWS::KinesisFirehose::DeliveryStream",
      "Properties": {
        "DeliveryStreamEncryptionConfigurationInput": {
          "KeyARN": {
            "Fn::GetAtt": [
              "connectstoreiotcoretos3parquetconstructkinesisfirehosekey8A3936D2",
              "Arn"
            ]
          },
          "KeyType": "CUSTOMER_MANAGED_CMK"
        },
        "DeliveryStreamName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-connect-store-iot-to-s3-with-partitioning"
            ]
          ]
        },
        "DeliveryStreamType": "DirectPut",
        "ExtendedS3DestinationConfiguration": {
          "BucketARN": {
            "Fn::GetAtt": [
              "connectstoreroots3constructencryptedbucket39CFDB23",
              "Arn"
            ]
          },
          "BufferingHints": {
            "IntervalInSeconds": 60,
            "SizeInMBs": 128
          },
          "CloudWatchLoggingOptions": {
            "Enabled": true,
            "LogGroupName": {
              "Ref": "connectstoreiotcoretos3parquetconstructiotkinesisloggroup3181DFF1"
            },
            "LogStreamName": {
              "Ref": "connectstoreiotcoretos3parquetconstructiotkinesislogstreamF3CAC841"
            }
          },
          "DataFormatConversionConfiguration": {
            "Enabled": true,
            "InputFormatConfiguration": {
              "Deserializer": {
                "OpenXJsonSerDe": {
                  "CaseInsensitive": false,
                  "ConvertDotsInJsonKeysToUnderscores": false
                }
              }
            },
            "OutputFormatConfiguration": {
              "Serializer": {
                "ParquetSerDe": {
                  "EnableDictionaryCompression": false
                }
              }
            },
            "SchemaConfiguration": {
              "DatabaseName": {
                "Fn::Join": [
                  "",
                  [
                    {
                      "Ref": "AppUniqueId"
                    },
                    "-connect-store-iot-data-conversion-glue-database"
                  ]
                ]
              },
              "Region": {
                "Ref": "AWS::Region"
              },
              "RoleARN": {
                "Fn::GetAtt": [
                  "connectstoreiotcoretos3parquetconstructkinesisroleE74298AA",
                  "Arn"
                ]
              },
              "TableName": "iot-main-stream-glue-schema-table"
            }
          },
          "DynamicPartitioningConfiguration": {
            "Enabled": true
          },
          "ErrorOutputPrefix": "DataError/",
          "Prefix": "Parquet/!{partitionKeyFromQuery:vin}/!{timestamp:DDD}_!{timestamp:yyyy}/!{timestamp:HH}",
          "ProcessingConfiguration": {
            "Enabled": true,
            "Processors": [
              {
                "Parameters": [
                  {
                    "ParameterName": "MetadataExtractionQuery",
                    "ParameterValue": "{vin: .vehicleidentification.vin}"
                  },
                  {
                    "ParameterName": "JsonParsingEngine",
                    "ParameterValue": "JQ-1.6"
                  }
                ],
                "Type": "MetadataExtraction"
              },
              {
                "Parameters": [
                  {
                    "ParameterName": "Delimiter",
                    "ParameterValue": "\\n"
                  }
                ],
                "Type": "AppendDelimiterToRecord"
              }
            ]
          },
          "RoleARN": {
            "Fn::GetAtt": [
              "connectstoreiotcoretos3parquetconstructkinesisroleE74298AA",
              "Arn"
            ]
          }
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-parquet-construct/iotcore-to-s3-with-partitioning-stream"
      }
    },
    "connectstoreiotcoretos3parquetconstructiotcoretokinesisrole34326AEE": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "iot.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "firehose:PutRecord",
                    "firehose:PutRecords"
                  ],
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::GetAtt": [
                      "connectstoreiotcoretos3parquetconstructiotcoretos3withpartitioningstream335EA379",
                      "Arn"
                    ]
                  }
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "firehose-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-parquet-construct/iot-core-to-kinesis-role/Resource"
      }
    },
    "connectstoreiotcoretos3parquetconstructiotsendtokinesis8918AB75": {
      "Type": "AWS::IoT::TopicRule",
      "Properties": {
        "RuleName": {
          "Fn::Join": [
            "",
            [
              {
                "Fn::Join": [
                  "_",
                  {
                    "Fn::Split": [
                      "-",
                      {
                        "Fn::Join": [
                          "",
                          [
                            {
                              "Ref": "AppUniqueId"
                            },
                            "_connect-store"
                          ]
                        ]
                      }
                    ]
                  }
                ]
              },
              "_iot_send_to_kinesis"
            ]
          ]
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "TopicRulePayload": {
          "Actions": [
            {
              "Firehose": {
                "DeliveryStreamName": {
                  "Fn::Join": [
                    "",
                    [
                      {
                        "Ref": "AppUniqueId"
                      },
                      "-connect-store-iot-to-s3-with-partitioning"
                    ]
                  ]
                },
                "RoleArn": {
                  "Fn::GetAtt": [
                    "connectstoreiotcoretos3parquetconstructiotcoretokinesisrole34326AEE",
                    "Arn"
                  ]
                }
              }
            }
          ],
          "Description": "Send payload to Kinesis Firehose stream for processing.",
          "Sql": "SELECT * FROM 'cms/data/#'"
        }
      },
      "DependsOn": [
        "connectstoreglueresourcesconstructiotdataconversiongluedatabase53316BBE",
        "connectstoreglueresourcesconstructiotmainstreamglueschematableCE0ADAE5",
        "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/iot-core-to-s3-parquet-construct/iot-send-to-kinesis"
      }
    },
    "connectstorealertsconstructlambdaroleB7D4C8F8": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "Path": "/",
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "logs:CreateLogGroup",
                    "logs:CreateLogStream",
                    "logs:PutLogEvents"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-connect-store-vehicle-alarm"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":logs:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":log-group:/aws/lambda/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "-connect-store-vehicle-alarm:log-stream:*"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "cloudwatch-logs-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "secretsmanager:GetSecretValue",
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "{{resolve:ssm:/solution/auth/",
                          {
                            "Fn::GetAtt": [
                              "moduleinputsconstructidentityprovideridcustomresourceFE878685",
                              "parameter_value"
                            ]
                          },
                          "/idp-config/secret/arn}}"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "{{resolve:ssm:/solution/auth/",
                          {
                            "Fn::GetAtt": [
                              "moduleinputsconstructidentityprovideridcustomresourceFE878685",
                              "parameter_value"
                            ]
                          },
                          "/service-client-config/default/secret/arn}}"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "secretsmanager-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "ssm:GetParameter",
                    "ssm:GetParameters"
                  ],
                  "Effect": "Allow",
                  "Resource": [
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":ssm:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":parameter/solution/",
                          {
                            "Ref": "AppUniqueId"
                          },
                          "/alerts/publish-api/endpoint"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":ssm:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":parameter/solution/auth/",
                          {
                            "Fn::GetAtt": [
                              "moduleinputsconstructidentityprovideridcustomresourceFE878685",
                              "parameter_value"
                            ]
                          },
                          "/idp-config/secret/arn"
                        ]
                      ]
                    },
                    {
                      "Fn::Join": [
                        "",
                        [
                          "arn:",
                          {
                            "Ref": "AWS::Partition"
                          },
                          ":ssm:",
                          {
                            "Ref": "AWS::Region"
                          },
                          ":",
                          {
                            "Ref": "AWS::AccountId"
                          },
                          ":parameter/solution/auth/",
                          {
                            "Fn::GetAtt": [
                              "moduleinputsconstructidentityprovideridcustomresourceFE878685",
                              "parameter_value"
                            ]
                          },
                          "/service-client-config/default/secret/arn"
                        ]
                      ]
                    }
                  ]
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ssm-policy"
          },
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": "ec2:CreateNetworkInterfacePermission",
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsconstructvpcnamecustomresource12726E51",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/1}}"
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/{{resolve:ssm:/solution/vpc/",
                              {
                                "Fn::GetAtt": [
                                  "moduleinputsconstructvpcnamecustomresource12726E51",
                                  "parameter_value"
                                ]
                              },
                              "/subnets/private/2}}"
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "lambda.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface",
                    "ec2:DescribeNetworkInterfaces"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-vpc-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/alerts-construct/lambda-role/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:logs:<AWS::Region>:<AWS::AccountId>:log-group:/aws/lambda/<AppUniqueId>-connect-store-vehicle-alarm:log-stream:*"
              ],
              "reason": "Log stream has to be a wildcard, ssm and secrets manager is least privilege"
            },
            {
              "id": "AwsSolutions-IAM5",
              "reason": "ec2 Network Interfaces permissions need to be wildcard",
              "appliesTo": [
                "Resource::arn:<AWS::Partition>:ec2:<AWS::Region>:<AWS::AccountId>:network-interface/*",
                "Resource::*"
              ]
            }
          ]
        }
      }
    },
    "connectstorealertsconstructsecuritygroupE12F31EB": {
      "Type": "AWS::EC2::SecurityGroup",
      "Properties": {
        "GroupDescription": "cms-connect-store/connect-store/alerts-construct/security-group",
        "SecurityGroupEgress": [
          {
            "CidrIp": "0.0.0.0/0",
            "Description": "Allow all outbound traffic by default",
            "IpProtocol": "-1"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcId": {
          "Fn::Join": [
            "",
            [
              "{{resolve:ssm:/solution/vpc/",
              {
                "Fn::GetAtt": [
                  "moduleinputsconstructvpcnamecustomresource12726E51",
                  "parameter_value"
                ]
              },
              "/vpcid}}"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/alerts-construct/security-group/Resource"
      }
    },
    "connectstorealertsconstructlambdafunction0927E3C6": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Code": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "asset524c300a97352cfd72c266f1a873a417de960fcb2ee71238cefbdc5927c3d912.zip"
              ]
            ]
          }
        },
        "Description": "Vehicle Trigger Alarm Function",
        "Environment": {
          "Variables": {
            "USER_AGENT_STRING": "AWSSOLUTION/SO0241/v2.1.5 AWSSOLUTION-CAPABILITY/CMS.3/v2.1.5",
            "IDENTITY_PROVIDER_ID": {
              "Fn::GetAtt": [
                "moduleinputsconstructidentityprovideridcustomresourceFE878685",
                "parameter_value"
              ]
            },
            "ALERTS_PUBLISH_ENDPOINT_URL_PARAMETER": {
              "Fn::Join": [
                "",
                [
                  "/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/alerts/publish-api/endpoint"
                ]
              ]
            }
          }
        },
        "FunctionName": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-connect-store-vehicle-alarm"
            ]
          ]
        },
        "Handler": "function.main.handler",
        "Layers": [
          {
            "Ref": "connectstoredependencylayerconstructlambdadependencylayerversionC961CA5A"
          }
        ],
        "Role": {
          "Fn::GetAtt": [
            "connectstorealertsconstructlambdaroleB7D4C8F8",
            "Arn"
          ]
        },
        "Runtime": "python3.12",
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "Timeout": 60,
        "VpcConfig": {
          "SecurityGroupIds": [
            {
              "Fn::GetAtt": [
                "connectstorealertsconstructsecuritygroupE12F31EB",
                "GroupId"
              ]
            }
          ],
          "SubnetIds": [
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsconstructvpcnamecustomresource12726E51",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            },
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsconstructvpcnamecustomresource12726E51",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/2}}"
                ]
              ]
            }
          ]
        }
      },
      "DependsOn": [
        "connectstorealertsconstructlambdaroleB7D4C8F8",
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/alerts-construct/lambda-function/Resource",
        "aws:asset:path": "asset.524c300a97352cfd72c266f1a873a417de960fcb2ee71238cefbdc5927c3d912.zip",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Code",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-L1",
              "reason": "The non-container Lambda function is not configured to use the latest runtime version."
            }
          ]
        }
      }
    },
    "connectstorealertsconstructlambdafunctionLogRetention0C7A64B2": {
      "Type": "Custom::LogRetention",
      "Properties": {
        "ServiceToken": {
          "Fn::GetAtt": [
            "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A",
            "Arn"
          ]
        },
        "LogGroupName": {
          "Fn::Join": [
            "",
            [
              "/aws/lambda/",
              {
                "Ref": "connectstorealertsconstructlambdafunction0927E3C6"
              }
            ]
          ]
        },
        "RetentionInDays": 90
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/alerts-construct/lambda-function/LogRetention/Resource"
      }
    },
    "connectstorealertsconstructlambdafunctioniotinvokevehicletriggeralarmpermission3F459DE6": {
      "Type": "AWS::Lambda::Permission",
      "Properties": {
        "Action": "lambda:InvokeFunction",
        "FunctionName": {
          "Fn::GetAtt": [
            "connectstorealertsconstructlambdafunction0927E3C6",
            "Arn"
          ]
        },
        "Principal": "iot.amazonaws.com",
        "SourceAccount": {
          "Ref": "AWS::AccountId"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/alerts-construct/lambda-function/iot-invoke-vehicle-trigger-alarm-permission"
      }
    },
    "connectstorealertsconstructiotsendtoalarmlambda5A273D3A": {
      "Type": "AWS::IoT::TopicRule",
      "Properties": {
        "RuleName": {
          "Fn::Join": [
            "",
            [
              {
                "Fn::Join": [
                  "_",
                  {
                    "Fn::Split": [
                      "-",
                      {
                        "Fn::Join": [
                          "",
                          [
                            {
                              "Ref": "AppUniqueId"
                            },
                            "_connect-store"
                          ]
                        ]
                      }
                    ]
                  }
                ]
              },
              "_iot_send_to_alarm_lambda"
            ]
          ]
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:DeploymentUUID",
            "Value": {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/",
                  {
                    "Ref": "AppUniqueId"
                  },
                  "/config/deployment-uuid}}"
                ]
              ]
            }
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "TopicRulePayload": {
          "Actions": [
            {
              "Lambda": {
                "FunctionArn": {
                  "Fn::GetAtt": [
                    "connectstorealertsconstructlambdafunction0927E3C6",
                    "Arn"
                  ]
                }
              }
            }
          ],
          "Description": "Send payload to vehicle_trigger_alarm lambda",
          "Sql": "SELECT * from 'cms/notification/#'"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/alerts-construct/iot-send-to-alarm-lambda"
      }
    },
    "connectstoremoduleoutputsconstructssmtelemetrygluedatacatalog150C86BF": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "The Glue data catalog in which the table is to be created.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/glue-data-catalog/name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": "AwsDataCatalog"
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-telemetry-glue-data-catalog/Resource"
      }
    },
    "connectstoremoduleoutputsconstructssmtelemetrygluedatabaseEF90F856": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "The Glue database in which the telemetry table is stored.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/glue-database/name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::Join": [
            "",
            [
              {
                "Ref": "AppUniqueId"
              },
              "-connect-store-iot-data-conversion-glue-database"
            ]
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-telemetry-glue-database/Resource"
      }
    },
    "connectstoremoduleoutputsconstructssmtelemetrygluetableC9216089": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "The Glue table which references to the stored telemetry data.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/glue-table/name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": "iot-main-stream-glue-schema-table"
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-telemetry-glue-table/Resource"
      }
    },
    "connectstoremoduleoutputsconstructssmglueschemaarn3E57AFE2": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "CMS Connect and Store AWS Glue Schema Arn",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/glue-schema/arn"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::GetAtt": [
            "connectstoreglueresourcesconstructvehiclesignalspecificationjsonschema277B1F8A",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-glue-schema-arn/Resource"
      }
    },
    "connectstoremoduleoutputsconstructssmglueregistryname0DC3E676": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "CMS Connect and Store AWS Glue Registry Name",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/glue-registry/name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": "default-registry"
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-glue-registry-name/Resource"
      }
    },
    "connectstoremoduleoutputsconstructssmtelemetrystoragebucketregionF24D0DE4": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "The region of the S3 bucket in which the telemetry data is stored.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/s3-storage-bucket/region"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Ref": "AWS::Region"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-telemetry-storage-bucket-region/Resource"
      }
    },
    "connectstoremoduleoutputsconstructssmtelemetrystoragebucketname9E314400": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "The name of the S3 bucket in which the telemetry data is stored.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/s3-storage-bucket/name"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Ref": "connectstoreroots3constructencryptedbucket39CFDB23"
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-telemetry-storage-bucket-name/Resource"
      }
    },
    "connectstoremoduleoutputsconstructssmtelemetrystoragebucketarnF10C371D": {
      "Type": "AWS::SSM::Parameter",
      "Properties": {
        "Description": "The ARN of the S3 bucket in which the telemetry data is stored.",
        "Name": {
          "Fn::Join": [
            "",
            [
              "/solution/",
              {
                "Ref": "AppUniqueId"
              },
              "/connect-store/s3-storage-bucket/arn"
            ]
          ]
        },
        "Tags": {
          "awsApplication": {
            "Fn::GetAtt": [
              "appregistryconstructappregistryapplicationAC1A319B",
              "ApplicationTagValue"
            ]
          },
          "Solutions:ApplicationType": "AWS-Solutions",
          "Solutions:DeploymentUUID": {
            "Fn::Join": [
              "",
              [
                "{{resolve:ssm:/solution/",
                {
                  "Ref": "AppUniqueId"
                },
                "/config/deployment-uuid}}"
              ]
            ]
          },
          "Solutions:ModuleName": "cms-connect-store",
          "Solutions:SolutionID": "SO0241",
          "Solutions:SolutionName": "connected-mobility-solution-on-aws",
          "Solutions:SolutionVersion": "v2.1.5"
        },
        "Type": "String",
        "Value": {
          "Fn::GetAtt": [
            "connectstoreroots3constructencryptedbucket39CFDB23",
            "Arn"
          ]
        }
      },
      "DependsOn": [
        "ssmappuniqueidregistermodule9C5C2C5D"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/connect-store/module-outputs-construct/ssm-telemetry-storage-bucket-arn/Resource"
      }
    },
    "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB": {
      "Type": "AWS::IAM::Role",
      "Properties": {
        "AssumeRolePolicyDocument": {
          "Statement": [
            {
              "Action": "sts:AssumeRole",
              "Effect": "Allow",
              "Principal": {
                "Service": "lambda.amazonaws.com"
              }
            }
          ],
          "Version": "2012-10-17"
        },
        "ManagedPolicyArns": [
          {
            "Fn::Join": [
              "",
              [
                "arn:",
                {
                  "Ref": "AWS::Partition"
                },
                ":iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
              ]
            ]
          }
        ],
        "Policies": [
          {
            "PolicyDocument": {
              "Statement": [
                {
                  "Action": [
                    "ec2:CreateNetworkInterfacePermission"
                  ],
                  "Condition": {
                    "StringEquals": {
                      "ec2:Subnet": [
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/",
                              {
                                "Fn::Join": [
                                  "",
                                  [
                                    "{{resolve:ssm:/solution/vpc/",
                                    {
                                      "Fn::GetAtt": [
                                        "moduleinputsconstructvpcnamecustomresource12726E51",
                                        "parameter_value"
                                      ]
                                    },
                                    "/subnets/private/1}}"
                                  ]
                                ]
                              }
                            ]
                          ]
                        },
                        {
                          "Fn::Join": [
                            "",
                            [
                              "arn:",
                              {
                                "Ref": "AWS::Partition"
                              },
                              ":ec2:",
                              {
                                "Ref": "AWS::Region"
                              },
                              ":",
                              {
                                "Ref": "AWS::AccountId"
                              },
                              ":subnet/",
                              {
                                "Fn::Join": [
                                  "",
                                  [
                                    "{{resolve:ssm:/solution/vpc/",
                                    {
                                      "Fn::GetAtt": [
                                        "moduleinputsconstructvpcnamecustomresource12726E51",
                                        "parameter_value"
                                      ]
                                    },
                                    "/subnets/private/2}}"
                                  ]
                                ]
                              }
                            ]
                          ]
                        }
                      ],
                      "ec2:AuthorizedService": "lambda.amazonaws.com"
                    }
                  },
                  "Effect": "Allow",
                  "Resource": {
                    "Fn::Join": [
                      "",
                      [
                        "arn:",
                        {
                          "Ref": "AWS::Partition"
                        },
                        ":ec2:",
                        {
                          "Ref": "AWS::Region"
                        },
                        ":",
                        {
                          "Ref": "AWS::AccountId"
                        },
                        ":network-interface/*"
                      ]
                    ]
                  }
                },
                {
                  "Action": [
                    "ec2:DescribeNetworkInterfaces",
                    "ec2:CreateNetworkInterface",
                    "ec2:DeleteNetworkInterface"
                  ],
                  "Effect": "Allow",
                  "Resource": "*"
                }
              ],
              "Version": "2012-10-17"
            },
            "PolicyName": "ec2-policy"
          }
        ],
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM4",
              "appliesTo": [
                "Policy::arn:<AWS::Partition>:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole"
              ],
              "reason": "Log retention lambda uses managed policies"
            }
          ]
        }
      }
    },
    "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB": {
      "Type": "AWS::IAM::Policy",
      "Properties": {
        "PolicyDocument": {
          "Statement": [
            {
              "Action": [
                "logs:DeleteRetentionPolicy",
                "logs:PutRetentionPolicy"
              ],
              "Effect": "Allow",
              "Resource": "*"
            }
          ],
          "Version": "2012-10-17"
        },
        "PolicyName": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB",
        "Roles": [
          {
            "Ref": "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB"
          }
        ]
      },
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/ServiceRole/DefaultPolicy/Resource",
        "cdk_nag": {
          "rules_to_suppress": [
            {
              "id": "AwsSolutions-IAM5",
              "appliesTo": [
                "Resource::*"
              ],
              "reason": "Log retention lambda uses managed policies"
            }
          ]
        }
      }
    },
    "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aFD4BFC8A": {
      "Type": "AWS::Lambda::Function",
      "Properties": {
        "Handler": "index.handler",
        "Runtime": "nodejs22.x",
        "Timeout": 900,
        "Code": {
          "S3Bucket": {
            "Fn::Join": [
              "-",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetBucketBaseName"
                  ]
                },
                {
                  "Fn::Sub": "${AWS::Region}"
                }
              ]
            ]
          },
          "S3Key": {
            "Fn::Join": [
              "/",
              [
                {
                  "Fn::FindInMap": [
                    "Solution",
                    "AssetsConfig",
                    "S3AssetKeyPrefix"
                  ]
                },
                "asset2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d.zip"
              ]
            ]
          }
        },
        "Role": {
          "Fn::GetAtt": [
            "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB",
            "Arn"
          ]
        },
        "Tags": [
          {
            "Key": "awsApplication",
            "Value": {
              "Fn::GetAtt": [
                "appregistryconstructappregistryapplicationAC1A319B",
                "ApplicationTagValue"
              ]
            }
          },
          {
            "Key": "Solutions:ApplicationType",
            "Value": "AWS-Solutions"
          },
          {
            "Key": "Solutions:ModuleName",
            "Value": "cms-connect-store"
          },
          {
            "Key": "Solutions:SolutionID",
            "Value": "SO0241"
          },
          {
            "Key": "Solutions:SolutionName",
            "Value": "connected-mobility-solution-on-aws"
          },
          {
            "Key": "Solutions:SolutionVersion",
            "Value": "v2.1.5"
          }
        ],
        "VpcConfig": {
          "SecurityGroupIds": [
            {
              "Fn::GetAtt": [
                "connectstorecdklambdasvpcconstructsecuritygroup60C317C7",
                "GroupId"
              ]
            }
          ],
          "SubnetIds": [
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsconstructvpcnamecustomresource12726E51",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/1}}"
                ]
              ]
            },
            {
              "Fn::Join": [
                "",
                [
                  "{{resolve:ssm:/solution/vpc/",
                  {
                    "Fn::GetAtt": [
                      "moduleinputsconstructvpcnamecustomresource12726E51",
                      "parameter_value"
                    ]
                  },
                  "/subnets/private/2}}"
                ]
              ]
            }
          ]
        }
      },
      "DependsOn": [
        "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRoleDefaultPolicyADDA7DEB",
        "LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8aServiceRole9741ECFB"
      ],
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/LogRetentionaae0aa3c5b4d4f87b02d85b201efdd8a/Resource",
        "aws:asset:path": "asset.2819175352ad1ce0dae768e83fc328fb70fb5f10b4a8ff0ccbcb791f02b0716d",
        "aws:asset:is-bundled": false,
        "aws:asset:property": "Code"
      }
    },
    "CDKMetadata": {
      "Type": "AWS::CDK::Metadata",
      "Properties": {
        "Analytics": "v2:deflate64:H4sIAAAAAAAA/2VRy27bMBD8ltxpNpa/wHHQHuIChlT0GqyYNb0VHwJ3mUAQ9O8FJVVO0NPODPc5rHT1WOnHB/jgnXnrdo5aPTYCplOna/gJfU/BKvjg15ExvZNBAwIuWuj7hJZY0qDH0zUc+96RAaEYSuVRJFGbBX+kmPv/lSNzNDSnT4rZl6GJgr1AAo+CqZRsZFJoKj02aHIiGbaeX4RJ8UGPT9l0KOVxRUu4REdmuMsrX8gTME7KgW/fQI9nGDD9xsTrKV/49xzMvxs/4wsmT8zLOYdXYEZhfSxBWZdx9qgxN/RQ0p9BoAXGgn9B63BSBF6PdXSzNsf7zguaFEXRpSL2ZOrsULloWY/naDdLNnyOtpGE4Fd1JedoaxQMi/OdZz2+4DzkBYdJdRSQia+U8BYZy7RndPSOaVgaTOqUWaKvkWNOZtn2E75/4KbOLjQCloKd1GWQWwzfDnpf6f3+4Q8T7VIOQh51vcS/Fdmw/JUCAAA="
      },
      "Metadata": {
        "aws:cdk:path": "cms-connect-store/CDKMetadata/Default"
      },
      "Condition": "CDKMetadataAvailable"
    }
  },
  "Parameters": {
    "AppUniqueId": {
      "Type": "String",
      "AllowedPattern": "^(?!-)[a-z0-9-]+(?<!-)$",
      "ConstraintDescription": "AppUniqueId must contain min 3 and max 10 characters, and contain only lowercase alphanumeric characters and dashes.",
      "Description": "Application unique identifier used to uniquely name resources within the stack.",
      "MaxLength": 10,
      "MinLength": 3
    },
    "S3LogExpirationDays": {
      "Type": "Number",
      "Default": 90,
      "Description": "The number of days before log bucket objects expire."
    },
    "S3LogNoncurrentVersionExpirationDays": {
      "Type": "Number",
      "Default": 1,
      "Description": "The number of days before log bucket non-current versions are deleted after they've expired."
    }
  },
  "Conditions": {
    "CDKMetadataAvailable": {
      "Fn::Or": [
        {
          "Fn::Or": [
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "af-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-east-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-northeast-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-northeast-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-northeast-3"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-south-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-southeast-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-southeast-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-southeast-3"
              ]
            }
          ]
        },
        {
          "Fn::Or": [
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ap-southeast-4"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ca-central-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "ca-west-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "cn-north-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "cn-northwest-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-central-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-central-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-north-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-south-2"
              ]
            }
          ]
        },
        {
          "Fn::Or": [
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-west-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-west-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "eu-west-3"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "il-central-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "me-central-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "me-south-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "sa-east-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "us-east-1"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "us-east-2"
              ]
            },
            {
              "Fn::Equals": [
                {
                  "Ref": "AWS::Region"
                },
                "us-west-1"
              ]
            }
          ]
        },
        {
          "Fn::Equals": [
            {
              "Ref": "AWS::Region"
            },
            "us-west-2"
          ]
        }
      ]
    }
  }
}