All Products
Search
Document Center

CloudOps Orchestration Service:ACS-TAG-TagResources

Last Updated:Dec 21, 2025

Nama Template

ACS-TAG-TagResources: Tambahkan tag ke resource menggunakan Resource Management

Eksekusi Sekarang

Deskripsi Template

Menambahkan tag ke resource menggunakan Resource Management.

Tipe Template

Otomatis

Pemilik

Alibaba Cloud

Parameter Input

Parameter

Deskripsi

Tipe

Diperlukan

Nilai Default

Batasan

resourceIds

ID sumber daya.

Daftar

Ya

resourceType

Tipe sumber daya.

String

Ya

regionId

ID wilayah.

String

Tidak

{{ ACS::RegionId }}

tags

Tag yang akan ditambahkan.

Json

Tidak

{"oosGenerate": "oosGenerate"}

rateControl

Laju eksekusi tugas konkuren

Json

Tidak

{"Mode": "Concurrency", "MaxErrors": 0, "Concurrency": 10}

OOSAssumeRole

Peran Resource Access Management (RAM) yang diasumsikan oleh CloudOps Orchestration Service (OOS).

String

Tidak

""

Parameter Output

Parameter

Deskripsi

Tipe

resourceIdsAndTag

Daftar

Kebijakan izin yang diperlukan untuk mengeksekusi template

{
    "Version": "1",
    "Statement": [
        {
            "Action": [
                "tag:ListTagResources",
                "tag:TagResources"
            ],
            "Resource": "*",
            "Effect": "Allow"
        }
    ]
}

Rincian

Untuk informasi lebih lanjut, lihat ACS-ACS-TAG-TagResources.yml di GitHub.

Konten Template

FormatVersion: OOS-2019-06-01
Description:
    en: Adds tags to resources using Resource Management.
    name-en: ACS-TAG-TagResources
    categories:
      - security
Parameters:
  regionId:
    Label:
      en: Region ID
    Type: String
    AssociationProperty: RegionId
    Default: '{{ ACS::RegionId }}'
  resourceIds:
    Label:
      en: Resource IDs
    Type: List
  resourceType:
    Label:
      en: Resource Type
    Type: String
    AllowedValues:
      - ACS::ACK::Cluster
      - ACS::ADB::DBCluster
      - ACS::ADB::DBClusterLakeVersion
      - ACS::ALB::Acl
      - ACS::ALB::HealthCheckTemplate
      - ACS::ALB::Listener
      - ACS::ALB::LoadBalancer
      - ACS::ALB::Rule
      - ACS::ALB::SecurityPolicy
      - ACS::ALB::ServerGroup
      - ACS::AliKafka::ConsumerGroup
      - ACS::AliKafka::Instance
      - ACS::AliKafka::Topic
      - ACS::ApiGateway::Api
      - ACS::ApiGateway::ApiGroup
      - ACS::ARMS::TraceApp
      - ACS::ARMS::RetcodeApp
      - ACS::ARMS::Prometheus
      - ACS::Bastionhost::Instance
      - ACS::CBWP::CommonBandwidthPackage
      - ACS::CDN::Domain
      - ACS::CEN::CenBandwidthPackage
      - ACS::CEN::CenInstance
      - ACS::CEN::Flowlog
      - ACS::CEN::TransitRouter
      - ACS::CEN::TransitRouterMulticastDomain
      - ACS::CEN::TransitRouterPeerAttachment
      - ACS::CEN::TransitRouterRouteTable
      - ACS::CEN::TransitRouterVbrAttachment
      - ACS::CEN::TransitRouterVpcAttachment
      - ACS::CEN::TransitRouterVpnAttachment
      - ACS::CEN::TransitRouterEcrAttachment
      - ACS::ClickHouse::DBCluster
      - ACS::CloudStorageGateway::Gateway
      - ACS::DCDN::Domain
      - ACS::DdosCoo::Instance
      - ACS::DdosBgp::Instance
      - ACS::EBS::DedicatedBlockStorageCluster
      - ACS::EBS::DiskReplicaGroup
      - ACS::EBS::DiskReplicaPair
      - ACS::EBS::EnterpriseSnapshotPolicy
      - ACS::EBS::SolutionInstance
      - ACS::ECI::ContainerGroup
      - ACS::ECS::AutoSnapshotPolicy
      - ACS::ECS::Command
      - ACS::ECS::DedicatedHost
      - ACS::ECS::Disk
      - ACS::ECS::Image
      - ACS::ECS::Instance
      - ACS::ECS::KeyPair
      - ACS::ECS::LaunchTemplate
      - ACS::ECS::NetworkInterface
      - ACS::ECS::SecurityGroup
      - ACS::ECS::Snapshot
      - ACS::ECS::ElasticityAssurance
      - ACS::ECS::CapacityReservation
      - ACS::ECS::SnapshotGroup
      - ACS::ECS::ReservedInstance
      - ACS::ECS::Activation
      - ACS::ECS::DedicatedHostCluster
      - ACS::ECS::StorageCapacityUnit
      - ACS::ECS::AutoProvisioningGroup
      - ACS::EIP::EipAddress
      - ACS::Eipanycast::AnycastEipAddress
      - ACS::ESS::ScalingGroup
      - ACS::ExpressConnect::PhysicalConnection
      - ACS::ExpressConnectRouter::ExpressConnectRouter
      - ACS::ECS::ImageComponent
      - ACS::ECS::ImagePipeline
      - ACS::Eflo::Cluster
      - ACS::Eflo::Node
      - ACS::EAIS::Instance
      - ACS::Eflo::Vcc
      - ACS::Eflo::Vpd
      - ACS::Eflo::Subnet
      - ACS::Eflo::ExperimentPlan
      - ACS::Eflo::Vsc
      - ACS::Eflo::ElasticNetworkInterface
      - ACS::Eflo::NetworkInterface
      - ACS::Eflo::Er
      - ACS::Eflo::HighDensityElasticNetworkInterface
      - ACS::Eflo::HyperNode
      - ACS::EMR::Cluster
      - ACS::FC::Service
      - ACS::GPDB::DBInstance
      - ACS::Ga::Accelerator
      - ACS::Ga::Acl
      - ACS::Ga::BandwidthPackage
      - ACS::Ga::BasicAccelerator
      - ACS::Ga::EndpointGroup
      - ACS::GWLB::LoadBalancer
      - ACS::GWLB::Listener
      - ACS::GWLB::ServerGroup
      - ACS::KMS::Key
      - ACS::KMS::Secret
      - ACS::Lindorm::Instance
      - ACS::Live::Domain
      - ACS::Live::Caster
      - ACS::HBase::Cluster
      - ACS::Hologram::Instance
      - ACS::MaxCompute::Project
      - ACS::MongoDB::DBInstance
      - ACS::MSE::Gateway
      - ACS::MSE::Cluster
      - ACS::NAS::FileSystem
      - ACS::NAT::NatGateway
      - ACS::NLB::Listener
      - ACS::NLB::LoadBalancer
      - ACS::NLB::SecurityPolicy
      - ACS::NLB::ServerGroup
      - ACS::OOS::Application
      - ACS::OOS::Parameter
      - ACS::OOS::SecretParameter
      - ACS::OOS::Template
      - ACS::OSS::Bucket
      - ACS::OOS::StateConfiguration
      - ACS::OOS::PatchBaseline
      - ACS::Ons::Group
      - ACS::Ons::Instance
      - ACS::Ons::Instance
      - ACS::Ons::Topic
      - ACS::OTS::Instance
      - ACS::PolarDB::DBCluster
      - ACS::PrivateLink::VpcEndpoint
      - ACS::PrivateLink::VpcEndpointService
      - ACS::RAM::Role
      - ACS::RAM::Policy
      - ACS::RAM::User
      - ACS::RDS::DBInstance
      - ACS::Redis::DBInstance
      - ACS::ResourceManager::Account
      - ACS::ResourceManager::ResourceGroup
      - ACS::ResourceManager::Folder
      - ACS::ResourceManager::ControlPolicy
      - ACS::ResourceManager::ResourceShare
      - ACS::RocketMQ::Instance
      - ACS::RDS::Custom
      - ACS::RDS::CustomDeploymentSet
      - ACS::RDS::CustomDisk
      - ACS::RDS::CustomSnapshot
      - ACS::ROS::Template
      - ACS::SLB::AccessControlList
      - ACS::SLB::CACertificate
      - ACS::SLB::LoadBalancer
      - ACS::SLB::MasterSlaveServerGroup
      - ACS::SLB::ServerCertificate
      - ACS::SLB::VServerGroup
      - ACS::SLS::Project
      - ACS::SelectDB::DBInstance
      - ACS::VPC::DhcpOptionsSet
      - ACS::VPC::FlowLog
      - ACS::VPC::GatewayEndpoint
      - ACS::VPC::HaVip
      - ACS::VPC::Ipv4Gateway
      - ACS::VPC::Ipv4Gateway
      - ACS::VPC::Ipv6Gateway
      - ACS::VPC::NetworkAcl
      - ACS::VPC::PrefixList
      - ACS::VPC::PublicIpAddressPool
      - ACS::VPC::RouteTable
      - ACS::VPC::TrafficMirrorFilter
      - ACS::VPC::TrafficMirrorSession
      - ACS::VPC::VPC
      - ACS::VPC::VSwitch
      - ACS::VPC::PeerConnection
      - ACS::VPC::VSwitchCidrReservation
      - ACS::VpcIpam::Ipam
      - ACS::VpcIpam::IpamPool
      - ACS::VpcIpam::IpamScope
      - ACS::VPN::CustomerGateway
      - ACS::VPN::VpnGateway
      - ACS::VPN::VpnAttachment
      - ACS::VOD::Domain
      - ACS::WAFV3::DefenseResource
      - ALIYUN::ADB::CLUSTER
      - ALIYUN::ALB::ACL
      - ALIYUN::ALB::LOADBALANCER
      - ALIYUN::ALB::SECURITYPOLICY
      - ALIYUN::ALB::SERVERGROUP
      - ALIYUN::ALIDNS::DOMAIN
      - ALIYUN::ALIDNSGTM::GTMINSTANCE
      - ALIYUN::ALIKAFKA::CONSUMERGROUP
      - ALIYUN::ALIKAFKA::INSTANCE
      - ALIYUN::ALIKAFKA::TOPIC
      - ALIYUN::APIGATEWAY::API
      - ALIYUN::APIGATEWAY::APIGROUP
      - ALIYUN::APIGATEWAY::APP
      - ALIYUN::APIGATEWAY::INSTANCE
      - ALIYUN::APIGATEWAY::PLUGIN
      - ALIYUN::ARMS::APPLICATION
      - ALIYUN::ARMS::WEB
      - ALIYUN::AVDS::ASSETS
      - ALIYUN::AVDS::INSTANCE
      - ALIYUN::BAAS::CONSORTIUM
      - ALIYUN::BAAS::ORGANIZATION
      - ALIYUN::BASTIONHOST::INSTANCE
      - ALIYUN::BPSTUDIO::APPLICATION
      - ALIYUN::BPSTUDIO::TEMPLATE
      - ALIYUN::CAS::INSTANCE
      - ALIYUN::CASSANDRA::CLUSTER
      - ALIYUN::CBN::TRANSITROUTERPEERATTACHMENT
      - ALIYUN::CBN::TRANSITROUTERVBRATTACHMENT
      - ALIYUN::CBN::TRANSITROUTERVPCATTACHMENT
      - ALIYUN::CBN::TRANSITROUTERVPNATTACHMENT
      - ALIYUN::CBS::BACKUPPLAN
      - ALIYUN::CDDC::DEDICATEDHOST
      - ALIYUN::CDN::DOMAIN
      - ALIYUN::CDS::CLUSTER
      - ALIYUN::CDT::CDT
      - ALIYUN::CDT::CDTCB
      - ALIYUN::CDT::CDTINTERNET
      - ALIYUN::CEN::BANDWIDTHPACKAGE
      - ALIYUN::CEN::CEN
      - ALIYUN::CLOUDBOX::CLOUDBOX
      - ALIYUN::CLOUDBOX::DEMAND
      - ALIYUN::CLOUDBOX::SITE
      - ALIYUN::CLOUDBOX::SKU
      - ALIYUN::CLOUDPHONE::INSTANCE
      - ALIYUN::CMS::MONITORGROUP
      - ALIYUN::COMPOSER::FLOW
      - ALIYUN::COMPUTENEST::SERVICE
      - ALIYUN::COMPUTENEST::SERVICEINSTANCE
      - ALIYUN::CONFIG::AGGREGATECOMPLIANCEPACK
      - ALIYUN::CONFIG::AGGREGATECONFIGRULE
      - ALIYUN::CONFIG::AGGREGATOR
      - ALIYUN::CONFIG::COMPLIANCEPACK
      - ALIYUN::CONFIG::RULE
      - ALIYUN::CR::CHARTNAMESPACE
      - ALIYUN::CR::CHARTREPOSITORY
      - ALIYUN::CR::INSTANCE
      - ALIYUN::CR::NAMESPACE
      - ALIYUN::CR::REPOSITORY
      - ALIYUN::CS::CLUSTER
      - ALIYUN::DATAHUB::PROJECT
      - ALIYUN::DATAHUB::TOPIC
      - ALIYUN::DATAV::SCREEN
      - ALIYUN::DBAUDIT::INSTANCE
      - ALIYUN::DCDN::DOMAIN
      - ALIYUN::DCDNIPA::DOMAIN
      - ALIYUN::DDOSBGP::INSTANCE
      - ALIYUN::DDOSCOO::INSTANCE
      - ALIYUN::DDS::INSTANCE
      - ALIYUN::DDS::SHARDINGINSTANCE
      - ALIYUN::DIDE::PROJECT
      - ALIYUN::DOMAIN::DOMAIN
      - ALIYUN::DRDS::INSTANCE
      - ALIYUN::DTS::CONSUMERCHANNEL
      - ALIYUN::DTS::INSTANCE
      - ALIYUN::DTS::JOBMONITORRULE
      - ALIYUN::DTS::MIGRATIONJOB
      - ALIYUN::DTS::SUBSCRIPTIONJOB
      - ALIYUN::DTS::SYNCHRONIZATIONJOB
      - ALIYUN::DYSMS::TEMPLATE
      - ALIYUN::EBS::DBSC
      - ALIYUN::EBS::DEDICATEDBLOCKSTORAGECLUSTER
      - ALIYUN::EBS::DISKREPLICAGROUP
      - ALIYUN::EBS::DISKREPLICAPAIR
      - ALIYUN::EBS::GROUP
      - ALIYUN::EBS::PAIR
      - ALIYUN::ECI::CONTAINERGROUP
      - ALIYUN::ECI::IMAGECACHE
      - ALIYUN::ECI::LAUNCHTEMPLATE
      - ALIYUN::ECI::VIRTUALNODE
      - ALIYUN::ECS::CAPACITYRESERVATION
      - ALIYUN::ECS::COMMAND
      - ALIYUN::ECS::DDH
      - ALIYUN::ECS::DDHCLUSTER
      - ALIYUN::ECS::DISK
      - ALIYUN::ECS::ELASTICITYASSURANCE
      - ALIYUN::ECS::ENI
      - ALIYUN::ECS::IMAGE
      - ALIYUN::ECS::IMAGECOMPONENT
      - ALIYUN::ECS::IMAGEPIPELINE
      - ALIYUN::ECS::INSTANCE
      - ALIYUN::ECS::INVOCATION
      - ALIYUN::ECS::KEYPAIR
      - ALIYUN::ECS::LAUNCHTEMPLATE
      - ALIYUN::ECS::RESERVEDINSTANCE
      - ALIYUN::ECS::SCU
      - ALIYUN::ECS::SECURITYGROUP
      - ALIYUN::ECS::SNAPSHOT
      - ALIYUN::ECS::SNAPSHOTGROUP
      - ALIYUN::ECS::SNAPSHOTPOLICY
      - ALIYUN::ECS::VOLUME
      - ALIYUN::EDAS::APPLICATION
      - ALIYUN::EDAS::CLUSTER
      - ALIYUN::EDAS::NAMESPACE
      - ALIYUN::EHPC::CLUSTER
      - ALIYUN::ELASTICSEARCH::APM
      - ALIYUN::ELASTICSEARCH::INSTANCE
      - ALIYUN::ELASTICSEARCH::LOGSTASH
      - ALIYUN::EMR::CLUSTER
      - ALIYUN::EMR::FLOWPROJECT
      - ALIYUN::EMR::INSTANCE
      - ALIYUN::ESS::SCALINGGROUP
      - ALIYUN::EXPRESSCONNECT::PHYSICALCONNECTION
      - ALIYUN::FC::SERVICE
      - ALIYUN::FLINKASI::VVPINSTANCE
      - ALIYUN::FLINKASI::VVPNAMESPACE
      - ALIYUN::GA::ACL
      - ALIYUN::GDS::INSTANCE
      - ALIYUN::GPDB::INSTANCE
      - ALIYUN::GWS::INSTANCE
      - ALIYUN::GWS::USER
      - ALIYUN::HBR::CLIENT
      - ALIYUN::HBR::HANAINSTANCE
      - ALIYUN::HBR::VAULT
      - ALIYUN::HCS_SGW::GATEWAY
      - ALIYUN::HITSDB::INSTANCE
      - ALIYUN::HOLOGRAM::INSTANCE
      - ALIYUN::HOLOGRES::INSTANCE
      - ALIYUN::HSM::INSTANCE
      - ALIYUN::IACSERVICE::AUTHORIZATION
      - ALIYUN::IACSERVICE::JOB
      - ALIYUN::IACSERVICE::MODULE
      - ALIYUN::IACSERVICE::MODULEMARKET
      - ALIYUN::IACSERVICE::MODULEVERSION
      - ALIYUN::IACSERVICE::TASK
      - ALIYUN::IMAGESEARCH::INSTANCE
      - ALIYUN::IOT::PRODUCT
      - ALIYUN::IOT::RULE
      - ALIYUN::KMS::KEY
      - ALIYUN::KMS::SECRET
      - ALIYUN::KVSTORE::AUDITLOGCONFIG
      - ALIYUN::KVSTORE::INSTANCE
      - ALIYUN::LICENSEMANAGER::GRANT
      - ALIYUN::LICENSEMANAGER::LICENSE
      - ALIYUN::LIVE::DOMAIN
      - ALIYUN::LOG::LOGSTORE
      - ALIYUN::LOG::PROJECT
      - ALIYUN::MQ::GROUP
      - ALIYUN::MQ::INSTANCE
      - ALIYUN::MQ::TOPIC
      - ALIYUN::MSE::CLUSTER
      - ALIYUN::MSE::GATEWAY
      - ALIYUN::MTS::MEDIAINFO
      - ALIYUN::MTS::SNAPSHOT
      - ALIYUN::MTS::TRANSCODE
      - ALIYUN::MULTIMOD::CLUSTER
      - ALIYUN::NAS::FILESYSTEM
      - ALIYUN::NLB::LOADBALANCER
      - ALIYUN::NLB::SECURITYPOLICY
      - ALIYUN::NLB::SERVERGROUP
      - ALIYUN::NLP::ENTITY
      - ALIYUN::NLP::IE
      - ALIYUN::NLP::KWE
      - ALIYUN::NLP::REVIEWANALYSIS
      - ALIYUN::NLP::SENTIMENT
      - ALIYUN::NLP::TEXTSTRUCTURE
      - ALIYUN::NLP::WORDPOS
      - ALIYUN::OCEANBASE::INSTANCE
      - ALIYUN::OCEANBASE::TENANT
      - ALIYUN::OOS::APPLICATION
      - ALIYUN::OOS::EXECUTION
      - ALIYUN::OOS::OPSITEM
      - ALIYUN::OOS::OPSITEMCONFIGURATION
      - ALIYUN::OOS::PARAMETER
      - ALIYUN::OOS::SECRETPARAMETER
      - ALIYUN::OOS::STATECONFIGURATION
      - ALIYUN::OOS::TEMPLATE
      - ALIYUN::OPENANALYTICS::INSTANCE
      - ALIYUN::OPENSEARCH::APPGROUP
      - ALIYUN::OPENSEARCH::INSTANCE
      - ALIYUN::OSS::BUCKET
      - ALIYUN::OTS::INSTANCE
      - ALIYUN::OUTBOUNDBOT::INSTANCE
      - ALIYUN::PETADATA::INSTANCE
      - ALIYUN::POLARDB::CLUSTER
      - ALIYUN::POLARDBX::POLARDBXINSTANCE
      - ALIYUN::PRIVATELINK::VPCENDPOINT
      - ALIYUN::PRIVATELINK::VPCENDPOINTSERVICE
      - ALIYUN::PVTZ::ZONE
      - ALIYUN::RAM::USER
      - ALIYUN::RDS::ACCOUNT
      - ALIYUN::RDS::ACTIONEVENTPOLICY
      - ALIYUN::RDS::BACKUP
      - ALIYUN::RDS::BACKUPFILE
      - ALIYUN::RDS::BACKUPPOLICY
      - ALIYUN::RDS::DATABASE
      - ALIYUN::RDS::DBPROXY
      - ALIYUN::RDS::DEDICATEDHOST
      - ALIYUN::RDS::DOWNLOADLINKDETAIL
      - ALIYUN::RDS::GADINSTANCE
      - ALIYUN::RDS::INSTANCE
      - ALIYUN::RDS::PARAMETERGROUP
      - ALIYUN::RM::ACCOUNT
      - ALIYUN::RM::INSTANCE
      - ALIYUN::RM::RESOURCEGROUP
      - ALIYUN::RM::RESOURCESHARE
      - ALIYUN::RM::SHAREDRESOURCE
      - ALIYUN::RM::SHAREDTARGET
      - ALIYUN::RM::TOPIC
      - ALIYUN::ROCKETMQ::CONSUMERGROUP
      - ALIYUN::ROCKETMQ::INSTANCE
      - ALIYUN::ROCKETMQ::TOPIC
      - ALIYUN::ROS::CHANGESET
      - ALIYUN::ROS::STACK
      - ALIYUN::ROS::STACKGROUP
      - ALIYUN::ROS::TEMPLATE
      - ALIYUN::SAE::APPLICATION
      - ALIYUN::SAG::CCN
      - ALIYUN::SAVINGPLAN::INSTANCE
      - ALIYUN::SCBLINKONECS::CLUSTER
      - ALIYUN::SCDN::DOMAIN
      - ALIYUN::SEARCHENGINE::INSTANCE
      - ALIYUN::SLB::ACL
      - ALIYUN::SLB::CERTIFICATE
      - ALIYUN::SLB::INSTANCE
      - ALIYUN::SMARTAG::ABWP
      - ALIYUN::SMARTAG::ACL
      - ALIYUN::SMARTAG::CCN
      - ALIYUN::SMARTAG::FLOWLOG
      - ALIYUN::SMARTAG::QOS
      - ALIYUN::SMARTAG::SMARTAG
      - ALIYUN::SMARTAG::SMARTAG_B
      - ALIYUN::SMARTAG::SMARTAG_D
      - ALIYUN::SMARTAG::SMARTAG_S
      - ALIYUN::SMARTHOSTING::HBM
      - ALIYUN::SMARTHOSTING::MANAGEDHOST
      - ALIYUN::SMARTHOSTING::MPS
      - ALIYUN::SMC::REPLICATIONJOB
      - ALIYUN::SMC::SOURCESERVER
      - ALIYUN::SPARK::CLUSTER
      - ALIYUN::TESTAMP::INSTANCE
      - ALIYUN::TESTPRODUCT::TEST2
      - ALIYUN::TESTPRODUCT::TESTTYPE
      - ALIYUN::TESTPRODUCT::XXX
      - ALIYUN::TESTPRODUCT::XXXX
      - ALIYUN::VOD::APPINFO
      - ALIYUN::VOD::DOMAIN
      - ALIYUN::VPC::COMMONBANDWIDTHPACKAGE
      - ALIYUN::VPC::CUSTOMERGATEWAY
      - ALIYUN::VPC::EIP
      - ALIYUN::VPC::FLOWLOG
      - ALIYUN::VPC::HAVIP
      - ALIYUN::VPC::IPSECSERVER
      - ALIYUN::VPC::IPV4GATEWAY
      - ALIYUN::VPC::IPV6BANDWIDTH
      - ALIYUN::VPC::IPV6GATEWAY
      - ALIYUN::VPC::IPV6INSTANCE
      - ALIYUN::VPC::NATGATEWAY
      - ALIYUN::VPC::PHYSICALCONNECTION
      - ALIYUN::VPC::PREFIXLIST
      - ALIYUN::VPC::PUBLICIPADDRESSPOOL
      - ALIYUN::VPC::ROUTETABLE
      - ALIYUN::VPC::SSLVPNCLIENTCERT
      - ALIYUN::VPC::SSLVPNSERVER
      - ALIYUN::VPC::TRAFFICMIRRORFILTER
      - ALIYUN::VPC::TRAFFICMIRRORSESSION
      - ALIYUN::VPC::VPC
      - ALIYUN::VPC::VPNATTACHMENT
      - ALIYUN::VPC::VPNCONNECTION
      - ALIYUN::VPC::VPNGATEWAY
      - ALIYUN::VPC::VSWITCH
      - ALIYUN::WAF::DOMAIN
  tags:
    Label:
      en: Tags
    Description:
      en: The tags of the resource. Example: {"k1":"v1","k2":"v2"}
    Type: Json
    Default: { "oosGenerate": "oosGenerate" }
  rateControl:
    Label:
      en: Rate Control
    Type: Json
    AssociationProperty: RateControl
    Default:
      Mode: Concurrency
      MaxErrors: 0
      Concurrency: 10
  OOSAssumeRole:
    Label:
      en: OOSAssumeRole
    Type: String
    Default: ''
RamRole: '{{ OOSAssumeRole }}'
Tasks:
  - Name: tagResource
    Action: ACS::CheckFor
    Description:
      en: Adds tags to resources using Resource Management.
    Properties:
      Service: TAG
      API: TagResources
      Parameters:
        RegionId: '{{ regionId }}'
        ResourceARN:
          - 'Fn::Jq':
              - First
              - '.resourceType | ascii_downcase |split("::") | "arn:acs:"+.[1]+":{{ regionId }}:{{ ACS::AccountId }}:"+.[2]+"/{{ ACS::TaskLoopItem }}"'
              - '{"resourceType":"{{resourceType}}"}'
        Tags: "{{ tags }}"
      DesiredValues:
        - null
      PropertySelector: .FailedResources.FailedResource[]
    Loop:
      Items: '{{ resourceIds }}'
      RateControl: '{{ rateControl }}'
      Outputs:
        errorMessages:
          AggregateType: 'Fn::ListJoin'
          AggregateField: errorMessage
    Outputs:
      errorMessage:
        Type: String
        ValueSelector: .FailedResources.FailedResource[]
  - Name: listTagResources
    Action: ACS::ExecuteAPI
    Description:
      en: Queries information about resource tags.
    Properties:
      Service: TAG
      API: ListTagResources
      Parameters:
        RegionId: '{{ regionId }}'
        ResourceARN:
          - 'Fn::Jq':
              - First
              - '.resourceType | ascii_downcase |split("::") | "arn:acs:"+.[1]+":{{ regionId }}:{{ ACS::AccountId }}:"+.[2]+"/{{ ACS::TaskLoopItem }}"'
              - '{"resourceType":"{{resourceType}}"}'
    Outputs:
      tagAndResourceId:
        Type: Json
        ValueSelector: .TagResources
    Loop:
      Items: '{{ resourceIds }}'
      RateControl: '{{ rateControl }}'
      Outputs:
        tagAndResourceIds:
          AggregateType: Fn::ListJoin
          AggregateField: tagAndResourceId
Outputs:
  resourceIdsAndTag:
    Type: List
    Value:
      'Fn::If':
        - 'Fn::Equals':
            - []
            - 'Fn::MergeList': '{{ tagResource.errorMessages }}'
        - '{{ listTagResources.tagAndResourceIds }}'
        - errcode: '{{ tagResource.errorMessages }}'
          results: '{{ listTagResources.tagAndResourceIds }}'