def register_scalable_target(ServiceNamespace=None, ResourceId=None,
    ScalableDimension=None, MinCapacity=None, MaxCapacity=None, RoleARN=None):
    """
    Registers or updates a scalable target. A scalable target is a resource that Application Auto Scaling can scale out or scale in. After you have registered a scalable target, you can use this operation to update the minimum and maximum values for your scalable dimension.
    After you register a scalable target, you can create and apply scaling policies using  PutScalingPolicy . You can view the scaling policies for a service namespace using  DescribeScalableTargets . If you are no longer using a scalable target, you can deregister it using  DeregisterScalableTarget .
    See also: AWS API Documentation
    
    Examples
    This example registers a scalable target from an Amazon ECS service called web-app that is running on the default cluster, with a minimum desired count of 1 task and a maximum desired count of 10 tasks.
    Expected Output:
    This example registers a scalable target from an Amazon EC2 Spot fleet with a minimum target capacity of 1 and a maximum of 10.
    Expected Output:
    
    :example: response = client.register_scalable_target(
        ServiceNamespace='ecs'|'elasticmapreduce'|'ec2'|'appstream',
        ResourceId='string',
        ScalableDimension='ecs:service:DesiredCount'|'ec2:spot-fleet-request:TargetCapacity'|'elasticmapreduce:instancegroup:InstanceCount'|'appstream:fleet:DesiredCapacity',
        MinCapacity=123,
        MaxCapacity=123,
        RoleARN='string'
    )
    
    
    :type ServiceNamespace: string
    :param ServiceNamespace: [REQUIRED]
            The namespace of the AWS service. For more information, see AWS Service Namespaces in the Amazon Web Services General Reference .
            

    :type ResourceId: string
    :param ResourceId: [REQUIRED]
            The identifier of the resource associated with the scalable target. This string consists of the resource type and unique identifier.
            ECS service - The resource type is service and the unique identifier is the cluster name and service name. Example: service/default/sample-webapp .
            Spot fleet request - The resource type is spot-fleet-request and the unique identifier is the Spot fleet request ID. Example: spot-fleet-request/sfr-73fbd2ce-aa30-494c-8788-1cee4EXAMPLE .
            EMR cluster - The resource type is instancegroup and the unique identifier is the cluster ID and instance group ID. Example: instancegroup/j-2EEZNYKUA1NTV/ig-1791Y4E1L8YI0 .
            AppStream 2.0 fleet - The resource type is fleet and the unique identifier is the fleet name. Example: fleet/sample-fleet .
            

    :type ScalableDimension: string
    :param ScalableDimension: [REQUIRED]
            The scalable dimension associated with the scalable target. This string consists of the service namespace, resource type, and scaling property.
            ecs:service:DesiredCount - The desired task count of an ECS service.
            ec2:spot-fleet-request:TargetCapacity - The target capacity of a Spot fleet request.
            elasticmapreduce:instancegroup:InstanceCount - The instance count of an EMR Instance Group.
            appstream:fleet:DesiredCapacity - The desired capacity of an AppStream 2.0 fleet.
            

    :type MinCapacity: integer
    :param MinCapacity: The minimum value to scale to in response to a scale in event. This parameter is required if you are registering a scalable target and optional if you are updating one.

    :type MaxCapacity: integer
    :param MaxCapacity: The maximum value to scale to in response to a scale out event. This parameter is required if you are registering a scalable target and optional if you are updating one.

    :type RoleARN: string
    :param RoleARN: The ARN of an IAM role that allows Application Auto Scaling to modify the scalable target on your behalf. This parameter is required when you register a scalable target and optional when you update one.

    :rtype: dict
    :return: {}
    
    
    :returns: 
    (dict) --
    
    """
    pass
