Scalr\Api\Service\User\V1beta0\Controller\FarmRoles::createScalingRuleAction PHP Method

createScalingRuleAction() public method

Add new scaling metric configuration for farm-role
public createScalingRuleAction ( integer $farmRoleId ) : Scalr\Api\DataType\ResultEnvelope
$farmRoleId integer Unique farm-role identifier
return Scalr\Api\DataType\ResultEnvelope
    public function createScalingRuleAction($farmRoleId)
    {
        $farmRole = $this->getFarmRole($farmRoleId, null, true);
        $object = $this->request->getJsonBody();
        if (!is_object($object)) {
            throw new ApiErrorException(400, ErrorMessage::ERR_INVALID_STRUCTURE, "Invalid body");
        }
        /* @var $scalingRuleAdapter ScalingRuleAdapter */
        $scalingRuleAdapter = $this->adapter($object);
        //Pre validates the request object
        $scalingRuleAdapter->validateObject($object, Request::METHOD_POST);
        /* @var $scalingRule FarmRoleScalingMetric */
        $scalingRule = $scalingRuleAdapter->toEntity($object);
        $scalingRule->farmRoleId = $farmRoleId;
        $scalingRuleAdapter->validateEntity($scalingRule);
        $scalingRule->save();
        //Responds with 201 Created status
        $this->response->setStatus(201);
        return $this->result(FarmRoleAdapter::getScalingConfiguration($farmRole));
    }