Example #1
0
    def create(
        cls,
        action_name=None,
        source_uri=None,
        source_type=None,
        action_type=None,
        description=None,
        status=None,
        properties=None,
        tags=None,
        sagemaker_session=None,
    ):
        """Create an action and return an ``Action`` object representing it.

        Args:
            action_name (str): Name of the action
            source_uri (str): Source URI of the action
            source_type (str): Source type of the action
            action_type (str): The type of the action
            description (str): Description of the action
            status (str): Status of the action.
            properties (dict): key/value properties
            tags (dict): AWS tags for the action
            sagemaker_session (sagemaker.session.Session): Session object which
                manages interactions with Amazon SageMaker APIs and any other
                AWS services needed. If not specified, one is created using the
                default AWS configuration chain.

        Returns:
            Action: A SageMaker ``Action`` object.
        """
        return super(Action, cls)._construct(
            cls._boto_create_method,
            action_name=action_name,
            source=_api_types.ActionSource(source_uri=source_uri,
                                           source_type=source_type),
            action_type=action_type,
            description=description,
            status=status,
            properties=properties,
            tags=tags,
            sagemaker_session=sagemaker_session,
        )
Example #2
0
def test_list(sagemaker_session):
    start_time = datetime.datetime.now(
        datetime.timezone.utc) + datetime.timedelta(hours=1)
    end_time = datetime.datetime.now(
        datetime.timezone.utc) + datetime.timedelta(hours=2)
    creation_time = datetime.datetime.now(
        datetime.timezone.utc) + datetime.timedelta(hours=3)
    last_modified_time = datetime.datetime.now(
        datetime.timezone.utc) + datetime.timedelta(hours=4)

    sagemaker_session.sagemaker_client.list_actions.side_effect = [
        {
            "ActionSummaries": [{
                "ActionName":
                "A" + str(i),
                "Action"
                "Arn":
                "B" + str(i),
                "DisplayName":
                "C" + str(i),
                "Source": {
                    "SourceUri": "D" + str(i)
                },
                "StartTime":
                start_time + datetime.timedelta(hours=i),
                "EndTime":
                end_time + datetime.timedelta(hours=i),
                "CreationTime":
                creation_time + datetime.timedelta(hours=i),
                "LastModifiedTime":
                last_modified_time + datetime.timedelta(hours=i),
                "LastModifiedBy": {},
            } for i in range(10)],
            "NextToken":
            "100",
        },
        {
            "ActionSummaries": [{
                "ActionName":
                "A" + str(i),
                "ActionArn":
                "B" + str(i),
                "DisplayName":
                "C" + str(i),
                "Source": {
                    "SourceUri": "D" + str(i)
                },
                "StartTime":
                start_time + datetime.timedelta(hours=i),
                "EndTime":
                end_time + datetime.timedelta(hours=i),
                "CreationTime":
                creation_time + datetime.timedelta(hours=i),
                "LastModifiedTime":
                last_modified_time + datetime.timedelta(hours=i),
                "LastModifiedBy": {},
            } for i in range(10, 20)]
        },
    ]

    expected = [
        _api_types.ActionSummary(
            action_name="A" + str(i),
            action_arn="B" + str(i),
            display_name="C" + str(i),
            source=_api_types.ActionSource(source_uri="D" + str(i)),
            start_time=start_time + datetime.timedelta(hours=i),
            end_time=end_time + datetime.timedelta(hours=i),
            creation_time=creation_time + datetime.timedelta(hours=i),
            last_modified_time=last_modified_time +
            datetime.timedelta(hours=i),
            last_modified_by={},
        ) for i in range(20)
    ]
    result = list(
        action.Action.list(
            sagemaker_session=sagemaker_session,
            source_uri="foo",
            sort_by="CreationTime",
            sort_order="Ascending",
        ))

    assert expected == result
    expected_calls = [
        unittest.mock.call(
            SortBy="CreationTime",
            SortOrder="Ascending",
            SourceUri="foo",
        ),
        unittest.mock.call(
            NextToken="100",
            SortBy="CreationTime",
            SortOrder="Ascending",
            SourceUri="foo",
        ),
    ]
    assert expected_calls == sagemaker_session.sagemaker_client.list_actions.mock_calls