All Products
Search
Document Center

Resource Orchestration Service:ALIYUN::Aligreen::OssStockTask

Last Updated:May 29, 2025

ALIYUN::Aligreen::OssStockTask is used to create a full scan task for Object Storage Service (OSS) buckets.

Syntax

{
  "Type": "ALIYUN::Aligreen::OssStockTask",
  "Properties": {
    "Buckets": List,
    "StartDate": String,
    "AudioAntispamFreezeConfig": Map,
    "AudioOpened": Boolean,
    "AutoFreezeType": String,
    "AudioMaxSize": Integer,
    "AudioScenes": List,
    "AudioAutoFreezeOpened": Boolean,
    "AudioScanLimit": Integer,
    "BizType": String,
    "CallbackId": Integer,
    "EndDate": String,
    "ImageOpened": Boolean,
    "ImageLiveFreezeConfig": Map,
    "ImageAutoFreezeOpened": Boolean,
    "ImageScenes": List,
    "ImageTerrorismFreezeConfig": Map,
    "ImageScanLimit": Integer,
    "ImageAdFreezeConfig": Map,
    "ImagePornFreezeConfig": Map,
    "OssStockTaskName": String,
    "ScanImageNoFileType": Boolean,
    "VideoTerrorismFreezeConfig": Map,
    "VideoOpened": Boolean,
    "VideoFrameInterval": Integer,
    "VideoLiveFreezeConfig": Map,
    "VideoScanLimit": Integer,
    "VideoPornFreezeConfig": Map,
    "VideoAutoFreezeOpened": Boolean,
    "VideoVoiceAntispamFreezeConfig": Map,
    "VideoScenes": List,
    "VideoAdFreezeConfig": Map,
    "VideoMaxFrames": Integer,
    "VideoMaxSize": Integer
  }
}

Properties

Property

Type

Required

Editable

Description

Constraint

Buckets

List

Yes

No

The configurations of the OSS buckets for which you want to create the task.

You can configure up to 20 buckets. Example:

[{"Bucket":"bucket_01","Selected":true,"Prefixes":["img/test_"],"Type":"exclude"}]

StartDate

String

Yes

No

The start time of the query.

Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.

AudioAntispamFreezeConfig

Map

No

No

The configurations of audio automatic freezing.

The system freezes audio detection results based on the suggestions contained in the results. Example:

{"Type": "suggestion", "Value" : "block" }

AudioOpened

Boolean

No

No

Specifies whether the task can scan audios.

Valid values:

  • true

  • false

AutoFreezeType

String

No

No

The automatic freezing type.

Valid values:

  • acl: modifies permissions.

  • copy: moves files.

AudioMaxSize

Integer

No

No

The maximum size of an audio.

Valid values: 1 to 2048. Default value: 200. Unit: MB. An audio size larger than the specified maximum size cannot be detected.

AudioScenes

List

No

No

The audio detection scenarios of the task.

Set the value to antispam.

AudioAutoFreezeOpened

Boolean

No

No

Specifies whether to enable audio automatic freezing.

Valid values:

  • true

  • false

AudioScanLimit

Integer

No

No

The maximum number of audios that the task can scan.

By default, the task can scan up to 1,000 audios in a bucket.

BizType

String

No

No

The business scenario of the task.

None.

CallbackId

Integer

No

No

The ID of the callback associated with the task.

None.

EndDate

String

No

No

The end time of the query.

Specify the time in the ISO 8601 standard in the yyyy-MM-ddTHH:mm:ssZ format. The time must be in UTC.

ImageOpened

Boolean

No

No

Specifies whether the task can scan images.

Valid values:

  • true

  • false

ImageLiveFreezeConfig

Map

No

No

The configurations of image automatic freezing for real-time scenarios.

The system freezes image detection results based on the suggestions contained in the results. Example:

{"Type":"suggestion","Value":"block,review"}

ImageAutoFreezeOpened

Boolean

No

No

Specifies whether to enable image automatic freezing.

Valid values:

  • true

  • false

ImageScenes

List

No

No

The image detection scenarios of the task.

Valid values:

  • porn: pornographic content.

  • terrorism: terrorist content.

  • ad: advertisement violation.

  • live: undesirable scene.

ImageTerrorismFreezeConfig

Map

No

No

The configurations of image automatic freezing for terrorist content scenarios.

The system freezes image detection results based on the suggestions contained in the results. Example:

 {"Type": "suggestion", "Value": "block,review"}

ImageScanLimit

Integer

No

No

The maximum number of images that the task can scan.

None.

ImageAdFreezeConfig

Map

No

No

The configurations of image automatic freezing for advertisement violation scenarios.

The system freezes image detection results based on the suggestions contained in the results. Example:

{"Type": "suggestion", "Value": "block,review"}

ImagePornFreezeConfig

Map

No

No

The configurations of image automatic freezing for pornographic content scenarios.

The system freezes image detection results based on the suggestions contained in the results. Example:

{"Type": "suggestion", "Value": "block,review"}

OssStockTaskName

String

No

No

The name of the task.

None.

ScanImageNoFileType

Boolean

No

No

Specifies whether the task can scan images whose file names do not have suffixes.

Valid values:

  • true

  • false

VideoTerrorismFreezeConfig

Map

No

No

The configurations of video automatic freezing for terrorist content scenarios.

The system freezes video detection results based on the suggestions contained in the results. Example:

{"Type": "suggestion","Value":"block,review"}

VideoOpened

Boolean

No

No

Specifies whether the task can scan videos.

Valid values:

  • true

  • false

VideoFrameInterval

Integer

No

No

The frame rate.

Valid values: 1 to 60. Default value: 1. Unit: frames per second (FPS).

VideoLiveFreezeConfig

Map

No

No

The configurations of video automatic freezing for real-time scenarios.

The system freezes video detection results based on the suggestions contained in the results. Example:

{"Type" : "suggestion", "Value" : "block" }

VideoScanLimit

Integer

No

No

The maximum number of videos that the task can scan.

None.

VideoPornFreezeConfig

Map

No

No

The configurations of video automatic freezing for pornographic content scenarios.

The system freezes video detection results based on the suggestions contained in the results. Example:

{"Type": "suggestion", "Value": "block,review"}

VideoAutoFreezeOpened

Boolean

No

No

Specifies whether to enable video automatic freezing.

Valid values:

  • true

  • false

VideoVoiceAntispamFreezeConfig

Map

No

No

The configurations of audio automatic freezing for videos.

The system freezes video detection results based on the suggestions contained in the results. Example:

{"Type": "suggestion", "Value" : "block" }

VideoScenes

List

No

No

The video detection scenarios of the task.

Valid values:

  • porn: pornographic content.

  • terrorism: terrorist content.

  • ad: advertisement violation.

  • live: undesirable scene.

  • antispam: anti-spam and audio anti-spam.

VideoAdFreezeConfig

Map

No

No

The configurations of video automatic freezing for advertisement violation scenarios.

The system freezes video detection results based on the suggestions contained in the results. Example:

{"Type":"suggestion","Value":"block,review"}

VideoMaxFrames

Integer

No

No

The maximum number of frames captured from a video.

Valid values: 5 to 20000. Default value: 200.

VideoMaxSize

Integer

No

No

The maximum size of a video.

Valid values: 1 to 2048. Default value: 500. Unit: MB. A video size larger than the specified maximum size cannot be detected.

Return values

Fn::GetAtt

  • ImageOpened: indicates whether the task can scan images.

  • AudioAntispamFreezeConfig: the configurations of audio automatic freezing.

  • ScanImageNoFileType: indicates whether the task can scan images whose file names do not have suffixes.

  • AudioOpened: indicates whether the task can scan audios.

  • Buckets: the configurations of the OSS buckets for which the task is created.

  • StartDate: the start time of the query.

  • ImageLiveFreezeConfig: the configurations of image automatic freezing for real-time scenarios.

  • ImageAutoFreezeOpened: indicates whether image automatic freezing is enabled.

  • AutoFreezeType: the automatic freezing type.

  • ImageScenes: the image detection scenarios of the task.

  • AudioMaxSize: the maximum size of an audio.

  • VideoTerrorismFreezeConfig: the configurations of video automatic freezing for terrorist content scenarios.

  • VideoOpened: indicates whether the task can scan videos.

  • ImageTerrorismFreezeConfig: the configurations of image automatic freezing for terrorist content scenarios.

  • CallbackId: the ID of the callback associated with the task.

  • ImageScanLimit: the maximum number of images that the task can scan.

  • BizType: the business scenario of the task.

  • ImageAdFreezeConfig: the configurations of image automatic freezing for advertisement violation scenarios.

  • AudioScenes: the audio detection scenarios of the task.

  • VideoFrameInterval: the frame rate.

  • EndDate: the end time of the query.

  • ImagePornFreezeConfig: the configurations of image automatic freezing for pornographic content scenarios.

  • VideoLiveFreezeConfig: the configurations of video automatic freezing for real-time scenarios

  • AudioAutoFreezeOpened: indicates whether audio automatic freezing is enabled.

  • VideoScanLimit: the maximum number of videos that the task can scan.

  • VideoPornFreezeConfig: the configurations of video automatic freezing for pornographic content scenarios.

  • VideoAutoFreezeOpened: indicates whether video automatic freezing is enabled.

  • VideoVoiceAntispamFreezeConfig: the configurations of audio automatic freezing for videos.

  • AudioScanLimit: the maximum number of audios that the task can scan.

  • VideoScenes: the video detection scenarios of the task.

  • VideoAdFreezeConfig: the configurations of video automatic freezing for advertisement violation scenarios.

  • VideoMaxFrames: the maximum number of frames captured from a video.

  • VideoMaxSize: the maximum size of a video.

Examples

ROSTemplateFormatVersion: '2015-09-01'
Parameters: {}
Resources:
  ExtensionResource:
    Type: ALIYUN::Aligreen::OssStockTask
    Properties:
      Buckets:
        - Bucket: terraform-14945
          Selected: true
          Prefixes: []
          Region: cn-shanghai
          Type: exclude
      ImageOpened: true
      ImageScenes:
        - porn
      AutoFreezeType: acl
      StartDate: 2024-08-01 00:00:00 +0800
Outputs:
  ImageOpened:
    Description: oss stock scan task detect images.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImageOpened
  AudioAntispamFreezeConfig:
    Description: Voice auto freeze configuration.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AudioAntispamFreezeConfig
  ScanImageNoFileType:
    Description: Whether the oss stock scan task detects images with file names without suffixes.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ScanImageNoFileType
  AudioOpened:
    Description: oss stock scan task detect audio.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AudioOpened
  Buckets:
    Description: The bucket configuration list of the oss stock scan task.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - Buckets
  StartDate:
    Description: The start time of the file upload time range represents the files uploaded after scanning this time point.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - StartDate
  ImageLiveFreezeConfig:
    Description: Picture automatic freezing live scene configuration.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImageLiveFreezeConfig
  ImageAutoFreezeOpened:
    Description: 'Picture detection auto freeze switch. Value: true: auto freeze, false: not auto freeze.'
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImageAutoFreezeOpened
  AutoFreezeType:
    Description: Automatic freeze type.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AutoFreezeType
  ImageScenes:
    Description: The image moderation scenario included in the oss stock scan task.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImageScenes
  AudioMaxSize:
    Description: Resource property field representing the maximum size of a single audio.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AudioMaxSize
  VideoTerrorismFreezeConfig:
    Description: The video automatically freezes the configuration of terrorism scenes.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoTerrorismFreezeConfig
  VideoOpened:
    Description: oss stock scan task detect video.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoOpened
  ImageTerrorismFreezeConfig:
    Description: The picture automatically freezes the configuration of terrorism scenes.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImageTerrorismFreezeConfig
  CallbackId:
    Description: The ID of the primary key of the notification message bound to the oss stock scan task.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - CallbackId
  ImageScanLimit:
    Description: 'The upper limit for scanning images in the oss stock scan task. '
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImageScanLimit
  BizType:
    Description: Business scenarios used by the oss stock scan task.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - BizType
  ImageAdFreezeConfig:
    Description: Picture automatically freezes the configuration of ad scenes.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImageAdFreezeConfig
  AudioScenes:
    Description: The audio detection scenarios included in the oss stock scan task. Set the value to antispam.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AudioScenes
  VideoFrameInterval:
    Description: Resource attribute field representing the framing frequency.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoFrameInterval
  EndDate:
    Description: The end time of the file upload time range indicates the scanning of files uploaded before this time point.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - EndDate
  ImagePornFreezeConfig:
    Description: Picture automatic freezing porn scene configuration.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - ImagePornFreezeConfig
  VideoLiveFreezeConfig:
    Description: Video automatic freeze live scene configuration.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoLiveFreezeConfig
  AudioAutoFreezeOpened:
    Description: 'Audio detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.'
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AudioAutoFreezeOpened
  VideoScanLimit:
    Description: The upper limit of video scanning in the oss stock scan task. The default value is 1000/Bucket.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoScanLimit
  VideoPornFreezeConfig:
    Description: 'Video automatic freezing porn scene configuration. '
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoPornFreezeConfig
  VideoAutoFreezeOpened:
    Description: 'Video detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.'
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoAutoFreezeOpened
  VideoVoiceAntispamFreezeConfig:
    Description: Voice auto freeze configuration in video.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoVoiceAntispamFreezeConfig
  AudioScanLimit:
    Description: The upper limit of voice scan in the oss stock scan task. The default value is 1000/Bucket.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - AudioScanLimit
  VideoScenes:
    Description: The video detection scenarios included in the oss stock scan task.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoScenes
  VideoAdFreezeConfig:
    Description: The video automatically freezes the configuration of ad scenarios.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoAdFreezeConfig
  VideoMaxFrames:
    Description: A resource attribute field that represents the upper limit of a single video frame cut.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoMaxFrames
  VideoMaxSize:
    Description: Resource property field representing the maximum size of a single video.
    Value:
      Fn::GetAtt:
        - ExtensionResource
        - VideoMaxSize
{
  "ROSTemplateFormatVersion": "2015-09-01",
  "Parameters": {
  },
  "Resources": {
    "ExtensionResource": {
      "Type": "ALIYUN::Aligreen::OssStockTask",
      "Properties": {
        "Buckets": [
          {
            "Bucket": "terraform-14945",
            "Selected": true,
            "Prefixes": [],
            "Region": "cn-shanghai",
            "Type": "exclude"
          }
        ],
        "ImageOpened": true,
        "ImageScenes": [
          "porn"
        ],
        "AutoFreezeType": "acl",
        "StartDate": "2024-08-01 00:00:00 +0800"
      }
    }
  },
  "Outputs": {
    "ImageOpened": {
      "Description": "oss stock scan task detect images.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImageOpened"
        ]
      }
    },
    "AudioAntispamFreezeConfig": {
      "Description": "Voice auto freeze configuration.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AudioAntispamFreezeConfig"
        ]
      }
    },
    "ScanImageNoFileType": {
      "Description": "Whether the oss stock scan task detects images with file names without suffixes.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ScanImageNoFileType"
        ]
      }
    },
    "AudioOpened": {
      "Description": "oss stock scan task detect audio.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AudioOpened"
        ]
      }
    },
    "Buckets": {
      "Description": "The bucket configuration list of the oss stock scan task.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "Buckets"
        ]
      }
    },
    "StartDate": {
      "Description": "The start time of the file upload time range represents the files uploaded after scanning this time point.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "StartDate"
        ]
      }
    },
    "ImageLiveFreezeConfig": {
      "Description": "Picture automatic freezing live scene configuration.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImageLiveFreezeConfig"
        ]
      }
    },
    "ImageAutoFreezeOpened": {
      "Description": "Picture detection auto freeze switch. Value: true: auto freeze, false: not auto freeze.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImageAutoFreezeOpened"
        ]
      }
    },
    "AutoFreezeType": {
      "Description": "Automatic freeze type.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AutoFreezeType"
        ]
      }
    },
    "ImageScenes": {
      "Description": "The image moderation scenario included in the oss stock scan task.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImageScenes"
        ]
      }
    },
    "AudioMaxSize": {
      "Description": "Resource property field representing the maximum size of a single audio.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AudioMaxSize"
        ]
      }
    },
    "VideoTerrorismFreezeConfig": {
      "Description": "The video automatically freezes the configuration of terrorism scenes.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoTerrorismFreezeConfig"
        ]
      }
    },
    "VideoOpened": {
      "Description": "oss stock scan task detect video.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoOpened"
        ]
      }
    },
    "ImageTerrorismFreezeConfig": {
      "Description": "The picture automatically freezes the configuration of terrorism scenes.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImageTerrorismFreezeConfig"
        ]
      }
    },
    "CallbackId": {
      "Description": "The ID of the primary key of the notification message bound to the oss stock scan task.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "CallbackId"
        ]
      }
    },
    "ImageScanLimit": {
      "Description": "The upper limit for scanning images in the oss stock scan task. ",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImageScanLimit"
        ]
      }
    },
    "BizType": {
      "Description": "Business scenarios used by the oss stock scan task.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "BizType"
        ]
      }
    },
    "ImageAdFreezeConfig": {
      "Description": "Picture automatically freezes the configuration of ad scenes.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImageAdFreezeConfig"
        ]
      }
    },
    "AudioScenes": {
      "Description": "The audio detection scenarios included in the oss stock scan task. Set the value to antispam.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AudioScenes"
        ]
      }
    },
    "VideoFrameInterval": {
      "Description": "Resource attribute field representing the framing frequency.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoFrameInterval"
        ]
      }
    },
    "EndDate": {
      "Description": "The end time of the file upload time range indicates the scanning of files uploaded before this time point.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "EndDate"
        ]
      }
    },
    "ImagePornFreezeConfig": {
      "Description": "Picture automatic freezing porn scene configuration.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "ImagePornFreezeConfig"
        ]
      }
    },
    "VideoLiveFreezeConfig": {
      "Description": "Video automatic freeze live scene configuration.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoLiveFreezeConfig"
        ]
      }
    },
    "AudioAutoFreezeOpened": {
      "Description": "Audio detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AudioAutoFreezeOpened"
        ]
      }
    },
    "VideoScanLimit": {
      "Description": "The upper limit of video scanning in the oss stock scan task. The default value is 1000/Bucket.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoScanLimit"
        ]
      }
    },
    "VideoPornFreezeConfig": {
      "Description": "Video automatic freezing porn scene configuration. ",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoPornFreezeConfig"
        ]
      }
    },
    "VideoAutoFreezeOpened": {
      "Description": "Video detection auto freeze switch. Value: true: automatically freeze, false: not automatically freeze.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoAutoFreezeOpened"
        ]
      }
    },
    "VideoVoiceAntispamFreezeConfig": {
      "Description": "Voice auto freeze configuration in video.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoVoiceAntispamFreezeConfig"
        ]
      }
    },
    "AudioScanLimit": {
      "Description": "The upper limit of voice scan in the oss stock scan task. The default value is 1000/Bucket.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "AudioScanLimit"
        ]
      }
    },
    "VideoScenes": {
      "Description": "The video detection scenarios included in the oss stock scan task.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoScenes"
        ]
      }
    },
    "VideoAdFreezeConfig": {
      "Description": "The video automatically freezes the configuration of ad scenarios.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoAdFreezeConfig"
        ]
      }
    },
    "VideoMaxFrames": {
      "Description": "A resource attribute field that represents the upper limit of a single video frame cut.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoMaxFrames"
        ]
      }
    },
    "VideoMaxSize": {
      "Description": "Resource property field representing the maximum size of a single video.",
      "Value": {
        "Fn::GetAtt": [
          "ExtensionResource",
          "VideoMaxSize"
        ]
      }
    }
  }
}