def add_sagemaker_endpoint_arguments(sub_parser):
    """ Adds arguments required for sagemaker_endpoint sub command. """
    parser = sub_parser
    parser.add_argument('--endpoint-type', choices=['proxy', 'tensorflow'],
        default='proxy', required=True, help=
        'The type of model the endpoint infers from. Default is `proxy`. A proxy endpoint forwards the incoming requests to another endpoint for inferences. It logs the inference events for monitoring and analytics. The other supported is `tensorflow`. It loads TensorFlow model and serves it just like a normal SageMaker instance would. It logs the inference events as well for monitoring and analytics. Event logging is optional and can be disabled.'
        )
    parser.add_argument('--endpoint-name', required=True, help=
        'Name of the endpoint. An endpoint requires creating a Sagemaker model and endpoint configuration before creating the the endpoint. This name is used for all three: Sagemaker model, endpoint configuration, and the endpoint'
        )
    parser.add_argument('--execution-role-arn', required=True, help=
        'Execution ARN to run the model. E.g. `arn:aws:iam::012345678912:role/service-role/Sage`. See IAM --> Roles under AWS console.'
        )
    parser.add_argument('--endpoint-region', help=
        'Region where the endpoint should be located. The default is same as default region for AWS cli commands.'
        )
    parser.add_argument('--instance-type', required=True, help=
        'Instance type for the endpoint. E.g. `ml.t2.large`. See documentation for `InstanceType` at https://docs.aws.amazon.com/sagemaker/latest/dg/API_ProductionVariant.html for full list.'
        )
    parser.add_argument('--initial-instance-count', default=1, help=
        'Number of instances to launch initially. Default is 1')
    parser.add_argument('--forwarding-endpoint', help=
        'When --endpoint-type is `proxy`, the incoming requests are forwarded to this endpoint for inferences. Required for `proxy`'
        , metavar='forwarding endpoint for proxy')
    parser.add_argument('--forwarding-endpoint-region', help=
        'AWS region for forwarding endpoint. Required for `proxy` endpoint.',
        metavar='forwarding endpoint region for proxy')
    parser.add_argument('--saved-model-location', help=
        's3 location of the tensorflow model package (a tar.gz file).')
    parser.add_argument('--overwrite-model', default=False, help=
        'While creating model for the endpoint if another model exists with the same name, it will be delete if this flag is set.'
        , action='store_true')
    parser.add_argument('--overwrite-endpoint-config', default=False, help=
        'While creating configuration for the endpoint if a configuration with the same name exists, it will deleted if this flag is set.'
        , action='store_true')
    parser.add_argument('--overwrite-endpoint', default=False, help=
        'While creating the endpoint if another endpoing with the same name exists, it will be deleted if this flag is set.'
        , action='store_true')
    parser.add_argument('--fiddler-image', help=
        'Docker image to use instead of image based on --endpoint-type. This is normally not required, but might be useful in some scenarios'
        )
