# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from ... import _utilities
from . import outputs
from ._enums import *
from ._inputs import *

__all__ = ['TestMatrixArgs', 'TestMatrix']

@pulumi.input_type
class TestMatrixArgs:
    def __init__(__self__, *,
                 environment_matrix: pulumi.Input['EnvironmentMatrixArgs'],
                 result_storage: pulumi.Input['ResultStorageArgs'],
                 test_specification: pulumi.Input['TestSpecificationArgs'],
                 client_info: Optional[pulumi.Input['ClientInfoArgs']] = None,
                 fail_fast: Optional[pulumi.Input[bool]] = None,
                 flaky_test_attempts: Optional[pulumi.Input[int]] = None,
                 project: Optional[pulumi.Input[str]] = None,
                 request_id: Optional[pulumi.Input[str]] = None):
        """
        The set of arguments for constructing a TestMatrix resource.
        :param pulumi.Input['EnvironmentMatrixArgs'] environment_matrix: The devices the tests are being executed on.
        :param pulumi.Input['ResultStorageArgs'] result_storage: Where the results for the matrix are written.
        :param pulumi.Input['TestSpecificationArgs'] test_specification: How to run the test.
        :param pulumi.Input['ClientInfoArgs'] client_info: Information about the client which invoked the test.
        :param pulumi.Input[bool] fail_fast: If true, only a single attempt at most will be made to run each execution/shard in the matrix. Flaky test attempts are not affected. Normally, 2 or more attempts are made if a potential infrastructure issue is detected. This feature is for latency sensitive workloads. The incidence of execution failures may be significantly greater for fail-fast matrices and support is more limited because of that expectation.
        :param pulumi.Input[int] flaky_test_attempts: The number of times a TestExecution should be re-attempted if one or more of its test cases fail for any reason. The maximum number of reruns allowed is 10. Default is 0, which implies no reruns.
        :param pulumi.Input[str] project: The cloud project that owns the test matrix.
        """
        pulumi.set(__self__, "environment_matrix", environment_matrix)
        pulumi.set(__self__, "result_storage", result_storage)
        pulumi.set(__self__, "test_specification", test_specification)
        if client_info is not None:
            pulumi.set(__self__, "client_info", client_info)
        if fail_fast is not None:
            pulumi.set(__self__, "fail_fast", fail_fast)
        if flaky_test_attempts is not None:
            pulumi.set(__self__, "flaky_test_attempts", flaky_test_attempts)
        if project is not None:
            pulumi.set(__self__, "project", project)
        if request_id is not None:
            pulumi.set(__self__, "request_id", request_id)

    @property
    @pulumi.getter(name="environmentMatrix")
    def environment_matrix(self) -> pulumi.Input['EnvironmentMatrixArgs']:
        """
        The devices the tests are being executed on.
        """
        return pulumi.get(self, "environment_matrix")

    @environment_matrix.setter
    def environment_matrix(self, value: pulumi.Input['EnvironmentMatrixArgs']):
        pulumi.set(self, "environment_matrix", value)

    @property
    @pulumi.getter(name="resultStorage")
    def result_storage(self) -> pulumi.Input['ResultStorageArgs']:
        """
        Where the results for the matrix are written.
        """
        return pulumi.get(self, "result_storage")

    @result_storage.setter
    def result_storage(self, value: pulumi.Input['ResultStorageArgs']):
        pulumi.set(self, "result_storage", value)

    @property
    @pulumi.getter(name="testSpecification")
    def test_specification(self) -> pulumi.Input['TestSpecificationArgs']:
        """
        How to run the test.
        """
        return pulumi.get(self, "test_specification")

    @test_specification.setter
    def test_specification(self, value: pulumi.Input['TestSpecificationArgs']):
        pulumi.set(self, "test_specification", value)

    @property
    @pulumi.getter(name="clientInfo")
    def client_info(self) -> Optional[pulumi.Input['ClientInfoArgs']]:
        """
        Information about the client which invoked the test.
        """
        return pulumi.get(self, "client_info")

    @client_info.setter
    def client_info(self, value: Optional[pulumi.Input['ClientInfoArgs']]):
        pulumi.set(self, "client_info", value)

    @property
    @pulumi.getter(name="failFast")
    def fail_fast(self) -> Optional[pulumi.Input[bool]]:
        """
        If true, only a single attempt at most will be made to run each execution/shard in the matrix. Flaky test attempts are not affected. Normally, 2 or more attempts are made if a potential infrastructure issue is detected. This feature is for latency sensitive workloads. The incidence of execution failures may be significantly greater for fail-fast matrices and support is more limited because of that expectation.
        """
        return pulumi.get(self, "fail_fast")

    @fail_fast.setter
    def fail_fast(self, value: Optional[pulumi.Input[bool]]):
        pulumi.set(self, "fail_fast", value)

    @property
    @pulumi.getter(name="flakyTestAttempts")
    def flaky_test_attempts(self) -> Optional[pulumi.Input[int]]:
        """
        The number of times a TestExecution should be re-attempted if one or more of its test cases fail for any reason. The maximum number of reruns allowed is 10. Default is 0, which implies no reruns.
        """
        return pulumi.get(self, "flaky_test_attempts")

    @flaky_test_attempts.setter
    def flaky_test_attempts(self, value: Optional[pulumi.Input[int]]):
        pulumi.set(self, "flaky_test_attempts", value)

    @property
    @pulumi.getter
    def project(self) -> Optional[pulumi.Input[str]]:
        """
        The cloud project that owns the test matrix.
        """
        return pulumi.get(self, "project")

    @project.setter
    def project(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "project", value)

    @property
    @pulumi.getter(name="requestId")
    def request_id(self) -> Optional[pulumi.Input[str]]:
        return pulumi.get(self, "request_id")

    @request_id.setter
    def request_id(self, value: Optional[pulumi.Input[str]]):
        pulumi.set(self, "request_id", value)


class TestMatrix(pulumi.CustomResource):
    @overload
    def __init__(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 client_info: Optional[pulumi.Input[pulumi.InputType['ClientInfoArgs']]] = None,
                 environment_matrix: Optional[pulumi.Input[pulumi.InputType['EnvironmentMatrixArgs']]] = None,
                 fail_fast: Optional[pulumi.Input[bool]] = None,
                 flaky_test_attempts: Optional[pulumi.Input[int]] = None,
                 project: Optional[pulumi.Input[str]] = None,
                 request_id: Optional[pulumi.Input[str]] = None,
                 result_storage: Optional[pulumi.Input[pulumi.InputType['ResultStorageArgs']]] = None,
                 test_specification: Optional[pulumi.Input[pulumi.InputType['TestSpecificationArgs']]] = None,
                 __props__=None):
        """
        Creates and runs a matrix of tests according to the given specifications. Unsupported environments will be returned in the state UNSUPPORTED. A test matrix is limited to use at most 2000 devices in parallel. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed or if the matrix tries to use too many simultaneous devices.
        Auto-naming is currently not supported for this resource.
        Note - this resource's API doesn't support deletion. When deleted, the resource will persist
        on Google Cloud even though it will be deleted from Pulumi state.

        :param str resource_name: The name of the resource.
        :param pulumi.ResourceOptions opts: Options for the resource.
        :param pulumi.Input[pulumi.InputType['ClientInfoArgs']] client_info: Information about the client which invoked the test.
        :param pulumi.Input[pulumi.InputType['EnvironmentMatrixArgs']] environment_matrix: The devices the tests are being executed on.
        :param pulumi.Input[bool] fail_fast: If true, only a single attempt at most will be made to run each execution/shard in the matrix. Flaky test attempts are not affected. Normally, 2 or more attempts are made if a potential infrastructure issue is detected. This feature is for latency sensitive workloads. The incidence of execution failures may be significantly greater for fail-fast matrices and support is more limited because of that expectation.
        :param pulumi.Input[int] flaky_test_attempts: The number of times a TestExecution should be re-attempted if one or more of its test cases fail for any reason. The maximum number of reruns allowed is 10. Default is 0, which implies no reruns.
        :param pulumi.Input[str] project: The cloud project that owns the test matrix.
        :param pulumi.Input[pulumi.InputType['ResultStorageArgs']] result_storage: Where the results for the matrix are written.
        :param pulumi.Input[pulumi.InputType['TestSpecificationArgs']] test_specification: How to run the test.
        """
        ...
    @overload
    def __init__(__self__,
                 resource_name: str,
                 args: TestMatrixArgs,
                 opts: Optional[pulumi.ResourceOptions] = None):
        """
        Creates and runs a matrix of tests according to the given specifications. Unsupported environments will be returned in the state UNSUPPORTED. A test matrix is limited to use at most 2000 devices in parallel. May return any of the following canonical error codes: - PERMISSION_DENIED - if the user is not authorized to write to project - INVALID_ARGUMENT - if the request is malformed or if the matrix tries to use too many simultaneous devices.
        Auto-naming is currently not supported for this resource.
        Note - this resource's API doesn't support deletion. When deleted, the resource will persist
        on Google Cloud even though it will be deleted from Pulumi state.

        :param str resource_name: The name of the resource.
        :param TestMatrixArgs args: The arguments to use to populate this resource's properties.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        ...
    def __init__(__self__, resource_name: str, *args, **kwargs):
        resource_args, opts = _utilities.get_resource_args_opts(TestMatrixArgs, pulumi.ResourceOptions, *args, **kwargs)
        if resource_args is not None:
            __self__._internal_init(resource_name, opts, **resource_args.__dict__)
        else:
            __self__._internal_init(resource_name, *args, **kwargs)

    def _internal_init(__self__,
                 resource_name: str,
                 opts: Optional[pulumi.ResourceOptions] = None,
                 client_info: Optional[pulumi.Input[pulumi.InputType['ClientInfoArgs']]] = None,
                 environment_matrix: Optional[pulumi.Input[pulumi.InputType['EnvironmentMatrixArgs']]] = None,
                 fail_fast: Optional[pulumi.Input[bool]] = None,
                 flaky_test_attempts: Optional[pulumi.Input[int]] = None,
                 project: Optional[pulumi.Input[str]] = None,
                 request_id: Optional[pulumi.Input[str]] = None,
                 result_storage: Optional[pulumi.Input[pulumi.InputType['ResultStorageArgs']]] = None,
                 test_specification: Optional[pulumi.Input[pulumi.InputType['TestSpecificationArgs']]] = None,
                 __props__=None):
        if opts is None:
            opts = pulumi.ResourceOptions()
        if not isinstance(opts, pulumi.ResourceOptions):
            raise TypeError('Expected resource options to be a ResourceOptions instance')
        if opts.version is None:
            opts.version = _utilities.get_version()
        if opts.id is None:
            if __props__ is not None:
                raise TypeError('__props__ is only valid when passed in combination with a valid opts.id to get an existing resource')
            __props__ = TestMatrixArgs.__new__(TestMatrixArgs)

            __props__.__dict__["client_info"] = client_info
            if environment_matrix is None and not opts.urn:
                raise TypeError("Missing required property 'environment_matrix'")
            __props__.__dict__["environment_matrix"] = environment_matrix
            __props__.__dict__["fail_fast"] = fail_fast
            __props__.__dict__["flaky_test_attempts"] = flaky_test_attempts
            __props__.__dict__["project"] = project
            __props__.__dict__["request_id"] = request_id
            if result_storage is None and not opts.urn:
                raise TypeError("Missing required property 'result_storage'")
            __props__.__dict__["result_storage"] = result_storage
            if test_specification is None and not opts.urn:
                raise TypeError("Missing required property 'test_specification'")
            __props__.__dict__["test_specification"] = test_specification
            __props__.__dict__["invalid_matrix_details"] = None
            __props__.__dict__["outcome_summary"] = None
            __props__.__dict__["state"] = None
            __props__.__dict__["test_executions"] = None
            __props__.__dict__["test_matrix_id"] = None
            __props__.__dict__["timestamp"] = None
        super(TestMatrix, __self__).__init__(
            'google-native:testing/v1:TestMatrix',
            resource_name,
            __props__,
            opts)

    @staticmethod
    def get(resource_name: str,
            id: pulumi.Input[str],
            opts: Optional[pulumi.ResourceOptions] = None) -> 'TestMatrix':
        """
        Get an existing TestMatrix resource's state with the given name, id, and optional extra
        properties used to qualify the lookup.

        :param str resource_name: The unique name of the resulting resource.
        :param pulumi.Input[str] id: The unique provider ID of the resource to lookup.
        :param pulumi.ResourceOptions opts: Options for the resource.
        """
        opts = pulumi.ResourceOptions.merge(opts, pulumi.ResourceOptions(id=id))

        __props__ = TestMatrixArgs.__new__(TestMatrixArgs)

        __props__.__dict__["client_info"] = None
        __props__.__dict__["environment_matrix"] = None
        __props__.__dict__["fail_fast"] = None
        __props__.__dict__["flaky_test_attempts"] = None
        __props__.__dict__["invalid_matrix_details"] = None
        __props__.__dict__["outcome_summary"] = None
        __props__.__dict__["project"] = None
        __props__.__dict__["result_storage"] = None
        __props__.__dict__["state"] = None
        __props__.__dict__["test_executions"] = None
        __props__.__dict__["test_matrix_id"] = None
        __props__.__dict__["test_specification"] = None
        __props__.__dict__["timestamp"] = None
        return TestMatrix(resource_name, opts=opts, __props__=__props__)

    @property
    @pulumi.getter(name="clientInfo")
    def client_info(self) -> pulumi.Output['outputs.ClientInfoResponse']:
        """
        Information about the client which invoked the test.
        """
        return pulumi.get(self, "client_info")

    @property
    @pulumi.getter(name="environmentMatrix")
    def environment_matrix(self) -> pulumi.Output['outputs.EnvironmentMatrixResponse']:
        """
        The devices the tests are being executed on.
        """
        return pulumi.get(self, "environment_matrix")

    @property
    @pulumi.getter(name="failFast")
    def fail_fast(self) -> pulumi.Output[bool]:
        """
        If true, only a single attempt at most will be made to run each execution/shard in the matrix. Flaky test attempts are not affected. Normally, 2 or more attempts are made if a potential infrastructure issue is detected. This feature is for latency sensitive workloads. The incidence of execution failures may be significantly greater for fail-fast matrices and support is more limited because of that expectation.
        """
        return pulumi.get(self, "fail_fast")

    @property
    @pulumi.getter(name="flakyTestAttempts")
    def flaky_test_attempts(self) -> pulumi.Output[int]:
        """
        The number of times a TestExecution should be re-attempted if one or more of its test cases fail for any reason. The maximum number of reruns allowed is 10. Default is 0, which implies no reruns.
        """
        return pulumi.get(self, "flaky_test_attempts")

    @property
    @pulumi.getter(name="invalidMatrixDetails")
    def invalid_matrix_details(self) -> pulumi.Output[str]:
        """
        Describes why the matrix is considered invalid. Only useful for matrices in the INVALID state.
        """
        return pulumi.get(self, "invalid_matrix_details")

    @property
    @pulumi.getter(name="outcomeSummary")
    def outcome_summary(self) -> pulumi.Output[str]:
        """
        Output Only. The overall outcome of the test. Only set when the test matrix state is FINISHED.
        """
        return pulumi.get(self, "outcome_summary")

    @property
    @pulumi.getter
    def project(self) -> pulumi.Output[str]:
        """
        The cloud project that owns the test matrix.
        """
        return pulumi.get(self, "project")

    @property
    @pulumi.getter(name="resultStorage")
    def result_storage(self) -> pulumi.Output['outputs.ResultStorageResponse']:
        """
        Where the results for the matrix are written.
        """
        return pulumi.get(self, "result_storage")

    @property
    @pulumi.getter
    def state(self) -> pulumi.Output[str]:
        """
        Indicates the current progress of the test matrix.
        """
        return pulumi.get(self, "state")

    @property
    @pulumi.getter(name="testExecutions")
    def test_executions(self) -> pulumi.Output[Sequence['outputs.TestExecutionResponse']]:
        """
        The list of test executions that the service creates for this matrix.
        """
        return pulumi.get(self, "test_executions")

    @property
    @pulumi.getter(name="testMatrixId")
    def test_matrix_id(self) -> pulumi.Output[str]:
        """
        Unique id set by the service.
        """
        return pulumi.get(self, "test_matrix_id")

    @property
    @pulumi.getter(name="testSpecification")
    def test_specification(self) -> pulumi.Output['outputs.TestSpecificationResponse']:
        """
        How to run the test.
        """
        return pulumi.get(self, "test_specification")

    @property
    @pulumi.getter
    def timestamp(self) -> pulumi.Output[str]:
        """
        The time this test matrix was initially created.
        """
        return pulumi.get(self, "timestamp")


[((52, 5, 52, 44), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((64, 5, 64, 40), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((76, 5, 76, 44), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((88, 5, 88, 37), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((100, 5, 100, 35), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((112, 5, 112, 44), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((136, 5, 136, 36), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((280, 5, 280, 37), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((288, 5, 288, 44), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((296, 5, 296, 35), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((304, 5, 304, 44), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((312, 5, 312, 47), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((320, 5, 320, 41), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((336, 5, 336, 40), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((352, 5, 352, 41), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((360, 5, 360, 39), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((368, 5, 368, 44), 'pulumi.getter', 'pulumi.getter', (), '', False, 'import pulumi\n'), ((37, 8, 37, 70), 'pulumi.set', 'pulumi.set', ({(37, 19, 37, 27): '__self__', (37, 29, 37, 49): '"""environment_matrix"""', (37, 51, 37, 69): 'environment_matrix'}, {}), "(__self__, 'environment_matrix', environment_matrix)", False, 'import pulumi\n'), ((38, 8, 38, 62), 'pulumi.set', 'pulumi.set', ({(38, 19, 38, 27): '__self__', (38, 29, 38, 45): '"""result_storage"""', (38, 47, 38, 61): 'result_storage'}, {}), "(__self__, 'result_storage', result_storage)", False, 'import pulumi\n'), ((39, 8, 39, 70), 'pulumi.set', 'pulumi.set', ({(39, 19, 39, 27): '__self__', (39, 29, 39, 49): '"""test_specification"""', (39, 51, 39, 69): 'test_specification'}, {}), "(__self__, 'test_specification', test_specification)", False, 'import pulumi\n'), ((57, 15, 57, 53), 'pulumi.get', 'pulumi.get', ({(57, 26, 57, 30): 'self', (57, 32, 57, 52): '"""environment_matrix"""'}, {}), "(self, 'environment_matrix')", False, 'import pulumi\n'), ((61, 8, 61, 53), 'pulumi.set', 'pulumi.set', ({(61, 19, 61, 23): 'self', (61, 25, 61, 45): '"""environment_matrix"""', (61, 47, 61, 52): 'value'}, {}), "(self, 'environment_matrix', value)", False, 'import pulumi\n'), ((69, 15, 69, 49), 'pulumi.get', 'pulumi.get', ({(69, 26, 69, 30): 'self', (69, 32, 69, 48): '"""result_storage"""'}, {}), "(self, 'result_storage')", False, 'import pulumi\n'), ((73, 8, 73, 49), 'pulumi.set', 'pulumi.set', ({(73, 19, 73, 23): 'self', (73, 25, 73, 41): '"""result_storage"""', (73, 43, 73, 48): 'value'}, {}), "(self, 'result_storage', value)", False, 'import pulumi\n'), ((81, 15, 81, 53), 'pulumi.get', 'pulumi.get', ({(81, 26, 81, 30): 'self', (81, 32, 81, 52): '"""test_specification"""'}, {}), "(self, 'test_specification')", False, 'import pulumi\n'), ((85, 8, 85, 53), 'pulumi.set', 'pulumi.set', ({(85, 19, 85, 23): 'self', (85, 25, 85, 45): '"""test_specification"""', (85, 47, 85, 52): 'value'}, {}), "(self, 'test_specification', value)", False, 'import pulumi\n'), ((93, 15, 93, 46), 'pulumi.get', 'pulumi.get', ({(93, 26, 93, 30): 'self', (93, 32, 93, 45): '"""client_info"""'}, {}), "(self, 'client_info')", False, 'import pulumi\n'), ((97, 8, 97, 46), 'pulumi.set', 'pulumi.set', ({(97, 19, 97, 23): 'self', (97, 25, 97, 38): '"""client_info"""', (97, 40, 97, 45): 'value'}, {}), "(self, 'client_info', value)", False, 'import pulumi\n'), ((105, 15, 105, 44), 'pulumi.get', 'pulumi.get', ({(105, 26, 105, 30): 'self', (105, 32, 105, 43): '"""fail_fast"""'}, {}), "(self, 'fail_fast')", False, 'import pulumi\n'), ((109, 8, 109, 44), 'pulumi.set', 'pulumi.set', ({(109, 19, 109, 23): 'self', (109, 25, 109, 36): '"""fail_fast"""', (109, 38, 109, 43): 'value'}, {}), "(self, 'fail_fast', value)", False, 'import pulumi\n'), ((117, 15, 117, 54), 'pulumi.get', 'pulumi.get', ({(117, 26, 117, 30): 'self', (117, 32, 117, 53): '"""flaky_test_attempts"""'}, {}), "(self, 'flaky_test_attempts')", False, 'import pulumi\n'), ((121, 8, 121, 54), 'pulumi.set', 'pulumi.set', ({(121, 19, 121, 23): 'self', (121, 25, 121, 46): '"""flaky_test_attempts"""', (121, 48, 121, 53): 'value'}, {}), "(self, 'flaky_test_attempts', value)", False, 'import pulumi\n'), ((129, 15, 129, 42), 'pulumi.get', 'pulumi.get', ({(129, 26, 129, 30): 'self', (129, 32, 129, 41): '"""project"""'}, {}), "(self, 'project')", False, 'import pulumi\n'), ((133, 8, 133, 42), 'pulumi.set', 'pulumi.set', ({(133, 19, 133, 23): 'self', (133, 25, 133, 34): '"""project"""', (133, 36, 133, 41): 'value'}, {}), "(self, 'project', value)", False, 'import pulumi\n'), ((138, 15, 138, 45), 'pulumi.get', 'pulumi.get', ({(138, 26, 138, 30): 'self', (138, 32, 138, 44): '"""request_id"""'}, {}), "(self, 'request_id')", False, 'import pulumi\n'), ((142, 8, 142, 45), 'pulumi.set', 'pulumi.set', ({(142, 19, 142, 23): 'self', (142, 25, 142, 37): '"""request_id"""', (142, 39, 142, 44): 'value'}, {}), "(self, 'request_id', value)", False, 'import pulumi\n'), ((285, 15, 285, 46), 'pulumi.get', 'pulumi.get', ({(285, 26, 285, 30): 'self', (285, 32, 285, 45): '"""client_info"""'}, {}), "(self, 'client_info')", False, 'import pulumi\n'), ((293, 15, 293, 53), 'pulumi.get', 'pulumi.get', ({(293, 26, 293, 30): 'self', (293, 32, 293, 52): '"""environment_matrix"""'}, {}), "(self, 'environment_matrix')", False, 'import pulumi\n'), ((301, 15, 301, 44), 'pulumi.get', 'pulumi.get', ({(301, 26, 301, 30): 'self', (301, 32, 301, 43): '"""fail_fast"""'}, {}), "(self, 'fail_fast')", False, 'import pulumi\n'), ((309, 15, 309, 54), 'pulumi.get', 'pulumi.get', ({(309, 26, 309, 30): 'self', (309, 32, 309, 53): '"""flaky_test_attempts"""'}, {}), "(self, 'flaky_test_attempts')", False, 'import pulumi\n'), ((317, 15, 317, 57), 'pulumi.get', 'pulumi.get', ({(317, 26, 317, 30): 'self', (317, 32, 317, 56): '"""invalid_matrix_details"""'}, {}), "(self, 'invalid_matrix_details')", False, 'import pulumi\n'), ((325, 15, 325, 50), 'pulumi.get', 'pulumi.get', ({(325, 26, 325, 30): 'self', (325, 32, 325, 49): '"""outcome_summary"""'}, {}), "(self, 'outcome_summary')", False, 'import pulumi\n'), ((333, 15, 333, 42), 'pulumi.get', 'pulumi.get', ({(333, 26, 333, 30): 'self', (333, 32, 333, 41): '"""project"""'}, {}), "(self, 'project')", False, 'import pulumi\n'), ((341, 15, 341, 49), 'pulumi.get', 'pulumi.get', ({(341, 26, 341, 30): 'self', (341, 32, 341, 48): '"""result_storage"""'}, {}), "(self, 'result_storage')", False, 'import pulumi\n'), ((349, 15, 349, 40), 'pulumi.get', 'pulumi.get', ({(349, 26, 349, 30): 'self', (349, 32, 349, 39): '"""state"""'}, {}), "(self, 'state')", False, 'import pulumi\n'), ((357, 15, 357, 50), 'pulumi.get', 'pulumi.get', ({(357, 26, 357, 30): 'self', (357, 32, 357, 49): '"""test_executions"""'}, {}), "(self, 'test_executions')", False, 'import pulumi\n'), ((365, 15, 365, 49), 'pulumi.get', 'pulumi.get', ({(365, 26, 365, 30): 'self', (365, 32, 365, 48): '"""test_matrix_id"""'}, {}), "(self, 'test_matrix_id')", False, 'import pulumi\n'), ((373, 15, 373, 53), 'pulumi.get', 'pulumi.get', ({(373, 26, 373, 30): 'self', (373, 32, 373, 52): '"""test_specification"""'}, {}), "(self, 'test_specification')", False, 'import pulumi\n'), ((381, 15, 381, 44), 'pulumi.get', 'pulumi.get', ({(381, 26, 381, 30): 'self', (381, 32, 381, 43): '"""timestamp"""'}, {}), "(self, 'timestamp')", False, 'import pulumi\n'), ((41, 12, 41, 60), 'pulumi.set', 'pulumi.set', ({(41, 23, 41, 31): '__self__', (41, 33, 41, 46): '"""client_info"""', (41, 48, 41, 59): 'client_info'}, {}), "(__self__, 'client_info', client_info)", False, 'import pulumi\n'), ((43, 12, 43, 56), 'pulumi.set', 'pulumi.set', ({(43, 23, 43, 31): '__self__', (43, 33, 43, 44): '"""fail_fast"""', (43, 46, 43, 55): 'fail_fast'}, {}), "(__self__, 'fail_fast', fail_fast)", False, 'import pulumi\n'), ((45, 12, 45, 76), 'pulumi.set', 'pulumi.set', ({(45, 23, 45, 31): '__self__', (45, 33, 45, 54): '"""flaky_test_attempts"""', (45, 56, 45, 75): 'flaky_test_attempts'}, {}), "(__self__, 'flaky_test_attempts', flaky_test_attempts)", False, 'import pulumi\n'), ((47, 12, 47, 52), 'pulumi.set', 'pulumi.set', ({(47, 23, 47, 31): '__self__', (47, 33, 47, 42): '"""project"""', (47, 44, 47, 51): 'project'}, {}), "(__self__, 'project', project)", False, 'import pulumi\n'), ((49, 12, 49, 58), 'pulumi.set', 'pulumi.set', ({(49, 23, 49, 31): '__self__', (49, 33, 49, 45): '"""request_id"""', (49, 47, 49, 57): 'request_id'}, {}), "(__self__, 'request_id', request_id)", False, 'import pulumi\n'), ((212, 19, 212, 43), 'pulumi.ResourceOptions', 'pulumi.ResourceOptions', ({}, {}), '()', False, 'import pulumi\n'), ((260, 50, 260, 79), 'pulumi.ResourceOptions', 'pulumi.ResourceOptions', (), '', False, 'import pulumi\n')]