CreateScalingGroupResponse Alibabacloud_Ess20220222::Client::createScalingGroupWithOptions()

in ess-20220222/src/ess_20220222.cpp [1189:1348]


CreateScalingGroupResponse Alibabacloud_Ess20220222::Client::createScalingGroupWithOptions(shared_ptr<CreateScalingGroupRequest> request, shared_ptr<Darabonba_Util::RuntimeOptions> runtime) {
  Darabonba_Util::Client::validateModel(request);
  shared_ptr<map<string, boost::any>> query = make_shared<map<string, boost::any>>(map<string, boost::any>());
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestAlbServerGroups>>(request->albServerGroups)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestAlbServerGroups>>("AlbServerGroups", *request->albServerGroups));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->allocationStrategy)) {
    query->insert(pair<string, string>("AllocationStrategy", *request->allocationStrategy));
  }
  if (!Darabonba_Util::Client::isUnset<bool>(request->azBalance)) {
    query->insert(pair<string, bool>("AzBalance", *request->azBalance));
  }
  if (!Darabonba_Util::Client::isUnset<CreateScalingGroupRequestCapacityOptions>(request->capacityOptions)) {
    query->insert(pair<string, CreateScalingGroupRequestCapacityOptions>("CapacityOptions", *request->capacityOptions));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->clientToken)) {
    query->insert(pair<string, string>("ClientToken", *request->clientToken));
  }
  if (!Darabonba_Util::Client::isUnset<bool>(request->compensateWithOnDemand)) {
    query->insert(pair<string, bool>("CompensateWithOnDemand", *request->compensateWithOnDemand));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->containerGroupId)) {
    query->insert(pair<string, string>("ContainerGroupId", *request->containerGroupId));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->customPolicyARN)) {
    query->insert(pair<string, string>("CustomPolicyARN", *request->customPolicyARN));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->DBInstanceIds)) {
    query->insert(pair<string, string>("DBInstanceIds", *request->DBInstanceIds));
  }
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestDBInstances>>(request->DBInstances)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestDBInstances>>("DBInstances", *request->DBInstances));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->defaultCooldown)) {
    query->insert(pair<string, long>("DefaultCooldown", *request->defaultCooldown));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->desiredCapacity)) {
    query->insert(pair<string, long>("DesiredCapacity", *request->desiredCapacity));
  }
  if (!Darabonba_Util::Client::isUnset<bool>(request->groupDeletionProtection)) {
    query->insert(pair<string, bool>("GroupDeletionProtection", *request->groupDeletionProtection));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->groupType)) {
    query->insert(pair<string, string>("GroupType", *request->groupType));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->healthCheckType)) {
    query->insert(pair<string, string>("HealthCheckType", *request->healthCheckType));
  }
  if (!Darabonba_Util::Client::isUnset<vector<string>>(request->healthCheckTypes)) {
    query->insert(pair<string, vector<string>>("HealthCheckTypes", *request->healthCheckTypes));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->instanceId)) {
    query->insert(pair<string, string>("InstanceId", *request->instanceId));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->launchTemplateId)) {
    query->insert(pair<string, string>("LaunchTemplateId", *request->launchTemplateId));
  }
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestLaunchTemplateOverrides>>(request->launchTemplateOverrides)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestLaunchTemplateOverrides>>("LaunchTemplateOverrides", *request->launchTemplateOverrides));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->launchTemplateVersion)) {
    query->insert(pair<string, string>("LaunchTemplateVersion", *request->launchTemplateVersion));
  }
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestLifecycleHooks>>(request->lifecycleHooks)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestLifecycleHooks>>("LifecycleHooks", *request->lifecycleHooks));
  }
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestLoadBalancerConfigs>>(request->loadBalancerConfigs)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestLoadBalancerConfigs>>("LoadBalancerConfigs", *request->loadBalancerConfigs));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->loadBalancerIds)) {
    query->insert(pair<string, string>("LoadBalancerIds", *request->loadBalancerIds));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->maxInstanceLifetime)) {
    query->insert(pair<string, long>("MaxInstanceLifetime", *request->maxInstanceLifetime));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->maxSize)) {
    query->insert(pair<string, long>("MaxSize", *request->maxSize));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->minSize)) {
    query->insert(pair<string, long>("MinSize", *request->minSize));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->multiAZPolicy)) {
    query->insert(pair<string, string>("MultiAZPolicy", *request->multiAZPolicy));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->onDemandBaseCapacity)) {
    query->insert(pair<string, long>("OnDemandBaseCapacity", *request->onDemandBaseCapacity));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->onDemandPercentageAboveBaseCapacity)) {
    query->insert(pair<string, long>("OnDemandPercentageAboveBaseCapacity", *request->onDemandPercentageAboveBaseCapacity));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->ownerAccount)) {
    query->insert(pair<string, string>("OwnerAccount", *request->ownerAccount));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->ownerId)) {
    query->insert(pair<string, long>("OwnerId", *request->ownerId));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->regionId)) {
    query->insert(pair<string, string>("RegionId", *request->regionId));
  }
  if (!Darabonba_Util::Client::isUnset<vector<string>>(request->removalPolicies)) {
    query->insert(pair<string, vector<string>>("RemovalPolicies", *request->removalPolicies));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->resourceGroupId)) {
    query->insert(pair<string, string>("ResourceGroupId", *request->resourceGroupId));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->resourceOwnerAccount)) {
    query->insert(pair<string, string>("ResourceOwnerAccount", *request->resourceOwnerAccount));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->scalingGroupName)) {
    query->insert(pair<string, string>("ScalingGroupName", *request->scalingGroupName));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->scalingPolicy)) {
    query->insert(pair<string, string>("ScalingPolicy", *request->scalingPolicy));
  }
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestServerGroups>>(request->serverGroups)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestServerGroups>>("ServerGroups", *request->serverGroups));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->spotAllocationStrategy)) {
    query->insert(pair<string, string>("SpotAllocationStrategy", *request->spotAllocationStrategy));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->spotInstancePools)) {
    query->insert(pair<string, long>("SpotInstancePools", *request->spotInstancePools));
  }
  if (!Darabonba_Util::Client::isUnset<bool>(request->spotInstanceRemedy)) {
    query->insert(pair<string, bool>("SpotInstanceRemedy", *request->spotInstanceRemedy));
  }
  if (!Darabonba_Util::Client::isUnset<long>(request->stopInstanceTimeout)) {
    query->insert(pair<string, long>("StopInstanceTimeout", *request->stopInstanceTimeout));
  }
  if (!Darabonba_Util::Client::isUnset<bool>(request->syncAlarmRuleToCms)) {
    query->insert(pair<string, bool>("SyncAlarmRuleToCms", *request->syncAlarmRuleToCms));
  }
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestTags>>(request->tags)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestTags>>("Tags", *request->tags));
  }
  if (!Darabonba_Util::Client::isUnset<vector<CreateScalingGroupRequestVServerGroups>>(request->VServerGroups)) {
    query->insert(pair<string, vector<CreateScalingGroupRequestVServerGroups>>("VServerGroups", *request->VServerGroups));
  }
  if (!Darabonba_Util::Client::isUnset<string>(request->vSwitchId)) {
    query->insert(pair<string, string>("VSwitchId", *request->vSwitchId));
  }
  if (!Darabonba_Util::Client::isUnset<vector<string>>(request->vSwitchIds)) {
    query->insert(pair<string, vector<string>>("VSwitchIds", *request->vSwitchIds));
  }
  shared_ptr<Alibabacloud_OpenApi::OpenApiRequest> req = make_shared<Alibabacloud_OpenApi::OpenApiRequest>(map<string, boost::any>({
    {"query", boost::any(Alibabacloud_OpenApiUtil::Client::query(query))}
  }));
  shared_ptr<Alibabacloud_OpenApi::Params> params = make_shared<Alibabacloud_OpenApi::Params>(map<string, boost::any>({
    {"action", boost::any(string("CreateScalingGroup"))},
    {"version", boost::any(string("2022-02-22"))},
    {"protocol", boost::any(string("HTTPS"))},
    {"pathname", boost::any(string("/"))},
    {"method", boost::any(string("POST"))},
    {"authType", boost::any(string("AK"))},
    {"style", boost::any(string("RPC"))},
    {"reqBodyType", boost::any(string("formData"))},
    {"bodyType", boost::any(string("json"))}
  }));
  return CreateScalingGroupResponse(callApi(params, req, runtime));
}