Amazon CloudWatch Evidently

2022/09/13 - Amazon CloudWatch Evidently - 4 updated api methods

Changes  This release adds support for the client-side evaluation - powered by AWS AppConfig feature.

CreateProject (updated) Link ¶
Changes (request, response)
Request
{'appConfigResource': {'applicationId': 'string', 'environmentId': 'string'}}
Response
{'project': {'appConfigResource': {'applicationId': 'string',
                                   'configurationProfileId': 'string',
                                   'environmentId': 'string'}}}

Creates a project, which is the logical object in Evidently that can contain features, launches, and experiments. Use projects to group similar features together.

To update an existing project, use UpdateProject.

See also: AWS API Documentation

Request Syntax

client.create_project(
    appConfigResource={
        'applicationId': 'string',
        'environmentId': 'string'
    },
    dataDelivery={
        'cloudWatchLogs': {
            'logGroup': 'string'
        },
        's3Destination': {
            'bucket': 'string',
            'prefix': 'string'
        }
    },
    description='string',
    name='string',
    tags={
        'string': 'string'
    }
)
type appConfigResource:

dict

param appConfigResource:

Use this parameter if the project will use client-side evaluation powered by AppConfig. Client-side evaluation allows your application to assign variations to user sessions locally instead of by calling the EvaluateFeature operation. This mitigates the latency and availability risks that come with an API call. For more information, see Client-side evaluation - powered by AppConfig.

This parameter is a structure that contains information about the AppConfig application and environment that will be used as for client-side evaluation.

To create a project that uses client-side evaluation, you must have the evidently:ExportProjectAsConfiguration permission.

  • applicationId (string) --

    The ID of the AppConfig application to use for client-side evaluation.

  • environmentId (string) --

    The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

type dataDelivery:

dict

param dataDelivery:

A structure that contains information about where Evidently is to store evaluation events for longer term storage, if you choose to do so. If you choose not to store these events, Evidently deletes them after using them to produce metrics and other experiment results that you can view.

  • cloudWatchLogs (dict) --

    If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name.

    • logGroup (string) --

      The name of the log group where the project stores evaluation events.

  • s3Destination (dict) --

    If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix.

    • bucket (string) --

      The name of the bucket in which Evidently stores evaluation events.

    • prefix (string) --

      The bucket prefix in which Evidently stores evaluation events.

type description:

string

param description:

An optional description of the project.

type name:

string

param name:

[REQUIRED]

The name for the project.

type tags:

dict

param tags:

Assigns one or more tags (key-value pairs) to the project.

Tags can help you organize and categorize your resources. You can also use them to scope user permissions by granting a user permission to access or change only resources with certain tag values.

Tags don't have any semantic meaning to Amazon Web Services and are interpreted strictly as strings of characters.

`` <p>You can associate as many as 50 tags with a project.</p> <p>For more information, see <a href="https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html">Tagging Amazon Web Services resources</a>.</p>``

  • (string) --

    • (string) --

rtype:

dict

returns:

Response Syntax

{
    'project': {
        'activeExperimentCount': 123,
        'activeLaunchCount': 123,
        'appConfigResource': {
            'applicationId': 'string',
            'configurationProfileId': 'string',
            'environmentId': 'string'
        },
        'arn': 'string',
        'createdTime': datetime(2015, 1, 1),
        'dataDelivery': {
            'cloudWatchLogs': {
                'logGroup': 'string'
            },
            's3Destination': {
                'bucket': 'string',
                'prefix': 'string'
            }
        },
        'description': 'string',
        'experimentCount': 123,
        'featureCount': 123,
        'lastUpdatedTime': datetime(2015, 1, 1),
        'launchCount': 123,
        'name': 'string',
        'status': 'AVAILABLE'|'UPDATING',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • project (dict) --

      A structure that contains information about the created project.

      • activeExperimentCount (integer) --

        The number of ongoing experiments currently in the project.

      • activeLaunchCount (integer) --

        The number of ongoing launches currently in the project.

      • appConfigResource (dict) --

        This structure defines the configuration of how your application integrates with AppConfig to run client-side evaluation.

        • applicationId (string) --

          The ID of the AppConfig application to use for client-side evaluation.

        • configurationProfileId (string) --

          The ID of the AppConfig profile to use for client-side evaluation.

        • environmentId (string) --

          The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

      • arn (string) --

        The name or ARN of the project.

      • createdTime (datetime) --

        The date and time that the project is created.

      • dataDelivery (dict) --

        A structure that contains information about where Evidently is to store evaluation events for longer term storage.

        • cloudWatchLogs (dict) --

          If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name.

          • logGroup (string) --

            The name of the log group where the project stores evaluation events.

        • s3Destination (dict) --

          If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix.

          • bucket (string) --

            The name of the bucket in which Evidently stores evaluation events.

          • prefix (string) --

            The bucket prefix in which Evidently stores evaluation events.

      • description (string) --

        The user-entered description of the project.

      • experimentCount (integer) --

        The number of experiments currently in the project. This includes all experiments that have been created and not deleted, whether they are ongoing or not.

      • featureCount (integer) --

        The number of features currently in the project.

      • lastUpdatedTime (datetime) --

        The date and time that the project was most recently updated.

      • launchCount (integer) --

        The number of launches currently in the project. This includes all launches that have been created and not deleted, whether they are ongoing or not.

      • name (string) --

        The name of the project.

      • status (string) --

        The current state of the project.

      • tags (dict) --

        The list of tag keys and values associated with this project.

        • (string) --

          • (string) --

GetProject (updated) Link ¶
Changes (response)
{'project': {'appConfigResource': {'applicationId': 'string',
                                   'configurationProfileId': 'string',
                                   'environmentId': 'string'}}}

Returns the details about one launch. You must already know the project name. To retrieve a list of projects in your account, use ListProjects.

See also: AWS API Documentation

Request Syntax

client.get_project(
    project='string'
)
type project:

string

param project:

[REQUIRED]

The name or ARN of the project that you want to see the details of.

rtype:

dict

returns:

Response Syntax

{
    'project': {
        'activeExperimentCount': 123,
        'activeLaunchCount': 123,
        'appConfigResource': {
            'applicationId': 'string',
            'configurationProfileId': 'string',
            'environmentId': 'string'
        },
        'arn': 'string',
        'createdTime': datetime(2015, 1, 1),
        'dataDelivery': {
            'cloudWatchLogs': {
                'logGroup': 'string'
            },
            's3Destination': {
                'bucket': 'string',
                'prefix': 'string'
            }
        },
        'description': 'string',
        'experimentCount': 123,
        'featureCount': 123,
        'lastUpdatedTime': datetime(2015, 1, 1),
        'launchCount': 123,
        'name': 'string',
        'status': 'AVAILABLE'|'UPDATING',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • project (dict) --

      A structure containing the configuration details of the project.

      • activeExperimentCount (integer) --

        The number of ongoing experiments currently in the project.

      • activeLaunchCount (integer) --

        The number of ongoing launches currently in the project.

      • appConfigResource (dict) --

        This structure defines the configuration of how your application integrates with AppConfig to run client-side evaluation.

        • applicationId (string) --

          The ID of the AppConfig application to use for client-side evaluation.

        • configurationProfileId (string) --

          The ID of the AppConfig profile to use for client-side evaluation.

        • environmentId (string) --

          The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

      • arn (string) --

        The name or ARN of the project.

      • createdTime (datetime) --

        The date and time that the project is created.

      • dataDelivery (dict) --

        A structure that contains information about where Evidently is to store evaluation events for longer term storage.

        • cloudWatchLogs (dict) --

          If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name.

          • logGroup (string) --

            The name of the log group where the project stores evaluation events.

        • s3Destination (dict) --

          If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix.

          • bucket (string) --

            The name of the bucket in which Evidently stores evaluation events.

          • prefix (string) --

            The bucket prefix in which Evidently stores evaluation events.

      • description (string) --

        The user-entered description of the project.

      • experimentCount (integer) --

        The number of experiments currently in the project. This includes all experiments that have been created and not deleted, whether they are ongoing or not.

      • featureCount (integer) --

        The number of features currently in the project.

      • lastUpdatedTime (datetime) --

        The date and time that the project was most recently updated.

      • launchCount (integer) --

        The number of launches currently in the project. This includes all launches that have been created and not deleted, whether they are ongoing or not.

      • name (string) --

        The name of the project.

      • status (string) --

        The current state of the project.

      • tags (dict) --

        The list of tag keys and values associated with this project.

        • (string) --

          • (string) --

UpdateProject (updated) Link ¶
Changes (request, response)
Request
{'appConfigResource': {'applicationId': 'string', 'environmentId': 'string'}}
Response
{'project': {'appConfigResource': {'applicationId': 'string',
                                   'configurationProfileId': 'string',
                                   'environmentId': 'string'}}}

Updates the description of an existing project.

To create a new project, use CreateProject.

Don't use this operation to update the data storage options of a project. Instead, use UpdateProjectDataDelivery.

Don't use this operation to update the tags of a project. Instead, use TagResource.

See also: AWS API Documentation

Request Syntax

client.update_project(
    appConfigResource={
        'applicationId': 'string',
        'environmentId': 'string'
    },
    description='string',
    project='string'
)
type appConfigResource:

dict

param appConfigResource:

Use this parameter if the project will use client-side evaluation powered by AppConfig. Client-side evaluation allows your application to assign variations to user sessions locally instead of by calling the EvaluateFeature operation. This mitigates the latency and availability risks that come with an API call. allows you to

This parameter is a structure that contains information about the AppConfig application that will be used for client-side evaluation.

  • applicationId (string) --

    The ID of the AppConfig application to use for client-side evaluation.

  • environmentId (string) --

    The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

type description:

string

param description:

An optional description of the project.

type project:

string

param project:

[REQUIRED]

The name or ARN of the project to update.

rtype:

dict

returns:

Response Syntax

{
    'project': {
        'activeExperimentCount': 123,
        'activeLaunchCount': 123,
        'appConfigResource': {
            'applicationId': 'string',
            'configurationProfileId': 'string',
            'environmentId': 'string'
        },
        'arn': 'string',
        'createdTime': datetime(2015, 1, 1),
        'dataDelivery': {
            'cloudWatchLogs': {
                'logGroup': 'string'
            },
            's3Destination': {
                'bucket': 'string',
                'prefix': 'string'
            }
        },
        'description': 'string',
        'experimentCount': 123,
        'featureCount': 123,
        'lastUpdatedTime': datetime(2015, 1, 1),
        'launchCount': 123,
        'name': 'string',
        'status': 'AVAILABLE'|'UPDATING',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • project (dict) --

      A structure containing information about the updated project.

      • activeExperimentCount (integer) --

        The number of ongoing experiments currently in the project.

      • activeLaunchCount (integer) --

        The number of ongoing launches currently in the project.

      • appConfigResource (dict) --

        This structure defines the configuration of how your application integrates with AppConfig to run client-side evaluation.

        • applicationId (string) --

          The ID of the AppConfig application to use for client-side evaluation.

        • configurationProfileId (string) --

          The ID of the AppConfig profile to use for client-side evaluation.

        • environmentId (string) --

          The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

      • arn (string) --

        The name or ARN of the project.

      • createdTime (datetime) --

        The date and time that the project is created.

      • dataDelivery (dict) --

        A structure that contains information about where Evidently is to store evaluation events for longer term storage.

        • cloudWatchLogs (dict) --

          If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name.

          • logGroup (string) --

            The name of the log group where the project stores evaluation events.

        • s3Destination (dict) --

          If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix.

          • bucket (string) --

            The name of the bucket in which Evidently stores evaluation events.

          • prefix (string) --

            The bucket prefix in which Evidently stores evaluation events.

      • description (string) --

        The user-entered description of the project.

      • experimentCount (integer) --

        The number of experiments currently in the project. This includes all experiments that have been created and not deleted, whether they are ongoing or not.

      • featureCount (integer) --

        The number of features currently in the project.

      • lastUpdatedTime (datetime) --

        The date and time that the project was most recently updated.

      • launchCount (integer) --

        The number of launches currently in the project. This includes all launches that have been created and not deleted, whether they are ongoing or not.

      • name (string) --

        The name of the project.

      • status (string) --

        The current state of the project.

      • tags (dict) --

        The list of tag keys and values associated with this project.

        • (string) --

          • (string) --

UpdateProjectDataDelivery (updated) Link ¶
Changes (response)
{'project': {'appConfigResource': {'applicationId': 'string',
                                   'configurationProfileId': 'string',
                                   'environmentId': 'string'}}}

Updates the data storage options for this project. If you store evaluation events, you an keep them and analyze them on your own. If you choose not to store evaluation events, Evidently deletes them after using them to produce metrics and other experiment results that you can view.

You can't specify both cloudWatchLogs and s3Destination in the same operation.

See also: AWS API Documentation

Request Syntax

client.update_project_data_delivery(
    cloudWatchLogs={
        'logGroup': 'string'
    },
    project='string',
    s3Destination={
        'bucket': 'string',
        'prefix': 'string'
    }
)
type cloudWatchLogs:

dict

param cloudWatchLogs:

A structure containing the CloudWatch Logs log group where you want to store evaluation events.

  • logGroup (string) --

    The name of the log group where the project stores evaluation events.

type project:

string

param project:

[REQUIRED]

The name or ARN of the project that you want to modify the data storage options for.

type s3Destination:

dict

param s3Destination:

A structure containing the S3 bucket name and bucket prefix where you want to store evaluation events.

  • bucket (string) --

    The name of the bucket in which Evidently stores evaluation events.

  • prefix (string) --

    The bucket prefix in which Evidently stores evaluation events.

rtype:

dict

returns:

Response Syntax

{
    'project': {
        'activeExperimentCount': 123,
        'activeLaunchCount': 123,
        'appConfigResource': {
            'applicationId': 'string',
            'configurationProfileId': 'string',
            'environmentId': 'string'
        },
        'arn': 'string',
        'createdTime': datetime(2015, 1, 1),
        'dataDelivery': {
            'cloudWatchLogs': {
                'logGroup': 'string'
            },
            's3Destination': {
                'bucket': 'string',
                'prefix': 'string'
            }
        },
        'description': 'string',
        'experimentCount': 123,
        'featureCount': 123,
        'lastUpdatedTime': datetime(2015, 1, 1),
        'launchCount': 123,
        'name': 'string',
        'status': 'AVAILABLE'|'UPDATING',
        'tags': {
            'string': 'string'
        }
    }
}

Response Structure

  • (dict) --

    • project (dict) --

      A structure containing details about the project that you updated.

      • activeExperimentCount (integer) --

        The number of ongoing experiments currently in the project.

      • activeLaunchCount (integer) --

        The number of ongoing launches currently in the project.

      • appConfigResource (dict) --

        This structure defines the configuration of how your application integrates with AppConfig to run client-side evaluation.

        • applicationId (string) --

          The ID of the AppConfig application to use for client-side evaluation.

        • configurationProfileId (string) --

          The ID of the AppConfig profile to use for client-side evaluation.

        • environmentId (string) --

          The ID of the AppConfig environment to use for client-side evaluation. This must be an environment that is within the application that you specify for applicationId.

      • arn (string) --

        The name or ARN of the project.

      • createdTime (datetime) --

        The date and time that the project is created.

      • dataDelivery (dict) --

        A structure that contains information about where Evidently is to store evaluation events for longer term storage.

        • cloudWatchLogs (dict) --

          If the project stores evaluation events in CloudWatch Logs, this structure stores the log group name.

          • logGroup (string) --

            The name of the log group where the project stores evaluation events.

        • s3Destination (dict) --

          If the project stores evaluation events in an Amazon S3 bucket, this structure stores the bucket name and bucket prefix.

          • bucket (string) --

            The name of the bucket in which Evidently stores evaluation events.

          • prefix (string) --

            The bucket prefix in which Evidently stores evaluation events.

      • description (string) --

        The user-entered description of the project.

      • experimentCount (integer) --

        The number of experiments currently in the project. This includes all experiments that have been created and not deleted, whether they are ongoing or not.

      • featureCount (integer) --

        The number of features currently in the project.

      • lastUpdatedTime (datetime) --

        The date and time that the project was most recently updated.

      • launchCount (integer) --

        The number of launches currently in the project. This includes all launches that have been created and not deleted, whether they are ongoing or not.

      • name (string) --

        The name of the project.

      • status (string) --

        The current state of the project.

      • tags (dict) --

        The list of tag keys and values associated with this project.

        • (string) --

          • (string) --