text:
// Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with
// the License. You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on
// an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the
// specific language governing permissions and limitations under the License.

//------------------------------------------------------------------------------
// <auto-generated>
//     This code was generated by google-apis-code-generator 1.5.1
//     C# generator version: 1.38.0
//
//     Changes to this file may cause incorrect behavior and will be lost if
//     the code is regenerated.
// </auto-generated>
//------------------------------------------------------------------------------

/**
 * \brief
 *   Cloud Testing API Version v1
 *
 * \section ApiInfo API Version Information
 *

 *
API
 *          Cloud Testing API
 *
API Versionv1
 *
API Rev20190205 (1496)
 *
API Docs
 *
 *              https://developers.google.com/cloud-test-lab/
 *
Discovery Nametesting
 *

 *
 * \section ForMoreInfo For More Information
 *
 * The complete API documentation for using Cloud Testing API can be found at
 * https://developers.google.com/cloud-test-lab/.
 *
 * For more information about the Google APIs Client Library for .NET, see
 *
 * https://developers.google.com/api-client-library/dotnet/get_started
 */

namespace Google.Apis.Testing.v1
{
    /// The Testing Service.
    public class TestingService : Google.Apis.Services.BaseClientService
    {
        /// The API version.
        public const string Version = "v1";

        /// The discovery version used to generate this service.
        public static Google.Apis.Discovery.DiscoveryVersion DiscoveryVersionUsed =
            Google.Apis.Discovery.DiscoveryVersion.Version_1_0;

        /// Constructs a new service.
        public TestingService() :
            this(new Google.Apis.Services.BaseClientService.Initializer()) {}

        /// Constructs a new service.
        /// <param name="initializer">The service initializer.</param>
        public TestingService(Google.Apis.Services.BaseClientService.Initializer initializer)
            : base(initializer)
        {
            applicationDetailService = new ApplicationDetailServiceResource(this);
            projects = new ProjectsResource(this);
            testEnvironmentCatalog = new TestEnvironmentCatalogResource(this);
        }

        /// Gets the service supported features.
        public override System.Collections.Generic.IList<string> Features
        {
            get { return new string[0]; }
        }

        /// Gets the service name.
        public override string Name
        {
            get { return "testing"; }
        }

        /// Gets the service base URI.
        public override string BaseUri
        {
            get { return "https://testing.googleapis.com/"; }
        }

        /// Gets the service base path.
        public override string BasePath
        {
            get { return ""; }
        }

        #if !NET40
        /// Gets the batch base URI; <c>null</c> if unspecified.
        public override string BatchUri
        {
            get { return "https://testing.googleapis.com/batch"; }
        }

        /// Gets the batch base path; <c>null</c> if unspecified.
        public override string BatchPath
        {
            get { return "batch"; }
        }
        #endif

        /// Available OAuth 2.0 scopes for use with the Cloud Testing API.
        public class Scope
        {
            /// View and manage your data across Google Cloud Platform services
            public static string CloudPlatform = "https://www.googleapis.com/auth/cloud-platform";

            /// View your data across Google Cloud Platform services
            public static string CloudPlatformReadOnly = "https://www.googleapis.com/auth/cloud-platform.read-only";

        }

        /// Available OAuth 2.0 scope constants for use with the Cloud Testing API.
        public static class ScopeConstants
        {
            /// View and manage your data across Google Cloud Platform services
            public const string CloudPlatform = "https://www.googleapis.com/auth/cloud-platform";

            /// View your data across Google Cloud Platform services
            public const string CloudPlatformReadOnly = "https://www.googleapis.com/auth/cloud-platform.read-only";

        }

        private readonly ApplicationDetailServiceResource applicationDetailService;

        /// Gets the ApplicationDetailService resource.
        public virtual ApplicationDetailServiceResource ApplicationDetailService
        {
            get { return applicationDetailService; }
        }

        private readonly ProjectsResource projects;

        /// Gets the Projects resource.
        public virtual ProjectsResource Projects
        {
            get { return projects; }
        }

        private readonly TestEnvironmentCatalogResource testEnvironmentCatalog;

        /// Gets the TestEnvironmentCatalog resource.
        public virtual TestEnvironmentCatalogResource TestEnvironmentCatalog
        {
            get { return testEnvironmentCatalog; }
        }
    }

    ///A base abstract class for Testing requests.
    public abstract class TestingBaseServiceRequest<TResponse> : Google.Apis.Requests.ClientServiceRequest<TResponse>
    {
        ///Constructs a new TestingBaseServiceRequest instance.
        protected TestingBaseServiceRequest(Google.Apis.Services.IClientService service)
            : base(service)
        {
        }

        /// V1 error format.
        [Google.Apis.Util.RequestParameterAttribute("$.xgafv", Google.Apis.Util.RequestParameterType.Query)]
        public virtual System.Nullable<XgafvEnum> Xgafv { get; set; }

        /// V1 error format.
        public enum XgafvEnum
        {
            /// v1 error format
            [Google.Apis.Util.StringValueAttribute("1")]
            Value1,
            /// v2 error format
            [Google.Apis.Util.StringValueAttribute("2")]
            Value2,
        }

        /// OAuth access token.
        [Google.Apis.Util.RequestParameterAttribute("access_token", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string AccessToken { get; set; }

        /// Data format for response.
        /// [default: json]
        [Google.Apis.Util.RequestParameterAttribute("alt", Google.Apis.Util.RequestParameterType.Query)]
        public virtual System.Nullable<AltEnum> Alt { get; set; }

        /// Data format for response.
        public enum AltEnum
        {
            /// Responses with Content-Type of application/json
            [Google.Apis.Util.StringValueAttribute("json")]
            Json,
            /// Media download with context-dependent Content-Type
            [Google.Apis.Util.StringValueAttribute("media")]
            Media,
            /// Responses with Content-Type of application/x-protobuf
            [Google.Apis.Util.StringValueAttribute("proto")]
            Proto,
        }

        /// JSONP
        [Google.Apis.Util.RequestParameterAttribute("callback", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string Callback { get; set; }

        /// Selector specifying which fields to include in a partial response.
        [Google.Apis.Util.RequestParameterAttribute("fields", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string Fields { get; set; }

        /// API key. Your API key identifies your project and provides you with API access, quota, and reports.
        /// Required unless you provide an OAuth 2.0 token.
        [Google.Apis.Util.RequestParameterAttribute("key", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string Key { get; set; }

        /// OAuth 2.0 token for the current user.
        [Google.Apis.Util.RequestParameterAttribute("oauth_token", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string OauthToken { get; set; }

        /// Returns response with indentations and line breaks.
        /// [default: true]
        [Google.Apis.Util.RequestParameterAttribute("prettyPrint", Google.Apis.Util.RequestParameterType.Query)]
        public virtual System.Nullable<bool> PrettyPrint { get; set; }

        /// Available to use for quota purposes for server-side applications. Can be any arbitrary string
        /// assigned to a user, but should not exceed 40 characters.
        [Google.Apis.Util.RequestParameterAttribute("quotaUser", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string QuotaUser { get; set; }

        /// Legacy upload protocol for media (e.g. "media", "multipart").
        [Google.Apis.Util.RequestParameterAttribute("uploadType", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string UploadType { get; set; }

        /// Upload protocol for media (e.g. "raw", "multipart").
        [Google.Apis.Util.RequestParameterAttribute("upload_protocol", Google.Apis.Util.RequestParameterType.Query)]
        public virtual string UploadProtocol { get; set; }

        /// Initializes Testing parameter list.
        protected override void InitParameters()
        {
            base.InitParameters();

            RequestParameters.Add(
                "$.xgafv", new Google.Apis.Discovery.Parameter
                {
                    Name = "$.xgafv",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "access_token", new Google.Apis.Discovery.Parameter
                {
                    Name = "access_token",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "alt", new Google.Apis.Discovery.Parameter
                {
                    Name = "alt",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = "json",
                    Pattern = null,
                });
            RequestParameters.Add(
                "callback", new Google.Apis.Discovery.Parameter
                {
                    Name = "callback",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "fields", new Google.Apis.Discovery.Parameter
                {
                    Name = "fields",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "key", new Google.Apis.Discovery.Parameter
                {
                    Name = "key",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "oauth_token", new Google.Apis.Discovery.Parameter
                {
                    Name = "oauth_token",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "prettyPrint", new Google.Apis.Discovery.Parameter
                {
                    Name = "prettyPrint",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = "true",
                    Pattern = null,
                });
            RequestParameters.Add(
                "quotaUser", new Google.Apis.Discovery.Parameter
                {
                    Name = "quotaUser",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "uploadType", new Google.Apis.Discovery.Parameter
                {
                    Name = "uploadType",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
            RequestParameters.Add(
                "upload_protocol", new Google.Apis.Discovery.Parameter
                {
                    Name = "upload_protocol",
                    IsRequired = false,
                    ParameterType = "query",
                    DefaultValue = null,
                    Pattern = null,
                });
        }
    }

    /// The "applicationDetailService" collection of methods.
    public class ApplicationDetailServiceResource
    {
        private const string Resource = "applicationDetailService";

        /// The service which this resource belongs to.
        private readonly Google.Apis.Services.IClientService service;

        /// Constructs a new resource.
        public ApplicationDetailServiceResource(Google.Apis.Services.IClientService service)
        {
            this.service = service;

        }

        /// Gets the details of an Android application APK.
        /// <param name="body">The body of the request.</param>
        public virtual GetApkDetailsRequest GetApkDetails(Google.Apis.Testing.v1.Data.FileReference body)
        {
            return new GetApkDetailsRequest(service, body);
        }

        /// Gets the details of an Android application APK.
        public class GetApkDetailsRequest : TestingBaseServiceRequest<Google.Apis.Testing.v1.Data.GetApkDetailsResponse>
        {
            /// Constructs a new GetApkDetails request.
            public GetApkDetailsRequest(Google.Apis.Services.IClientService service, Google.Apis.Testing.v1.Data.FileReference body)
                : base(service)
            {
                Body = body;
                InitParameters();
            }

            /// Gets or sets the body of this request.
            Google.Apis.Testing.v1.Data.FileReference Body { get; set; }

            ///Returns the body of the request.
            protected override object GetBody() { return Body; }

            ///Gets the method name.
            public override string MethodName
            {
                get { return "getApkDetails"; }
            }

            ///Gets the HTTP method.
            public override string HttpMethod
            {
                get { return "POST"; }
            }

            ///Gets the REST path.
            public override string RestPath
            {
                get { return "v1/applicationDetailService/getApkDetails"; }
            }

            /// Initializes GetApkDetails parameter list.
            protected override void InitParameters()
            {
                base.InitParameters();

            }

        }
    }

    /// The "projects" collection of methods.
    public class ProjectsResource
    {
        private const string Resource = "projects";

        /// The service which this resource belongs to.
        private readonly Google.Apis.Services.IClientService service;

        /// Constructs a new resource.
        public ProjectsResource(Google.Apis.Services.IClientService service)
        {
            this.service = service;
            testMatrices = new TestMatricesResource(service);

        }

        private readonly TestMatricesResource testMatrices;

        /// Gets the TestMatrices resource.
        public virtual TestMatricesResource TestMatrices
        {
            get { return testMatrices; }
        }

        /// The "testMatrices" collection of methods.
        public class TestMatricesResource
        {
            private const string Resource = "testMatrices";

            /// The service which this resource belongs to.
            private readonly Google.Apis.Services.IClientService service;

            /// Constructs a new resource.
            public TestMatricesResource(Google.Apis.Services.IClientService service)
            {
                this.service = service;

            }

            /// Cancels unfinished test executions in a test matrix. This call returns immediately and
            /// cancellation proceeds asychronously. If the matrix is already final, this operation will have no effect.
            ///
            /// May return any of the following canonical error codes:
            ///
            /// - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request
            /// is malformed - NOT_FOUND - if the Test Matrix does not exist
            /// <param name="projectId">Cloud project that owns the test.</param>
            /// <param name="testMatrixId">Test matrix
            /// that will be canceled.</param>
            public virtual CancelRequest Cancel(string projectId, string testMatrixId)
            {
                return new CancelRequest(service, projectId, testMatrixId);
            }

            /// Cancels unfinished test executions in a test matrix. This call returns immediately and
            /// cancellation proceeds asychronously. If the matrix is already final, this operation will have no effect.
            ///
            /// May return any of the following canonical error codes:
            ///
            /// - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request
            /// is malformed - NOT_FOUND - if the Test Matrix does not exist
            public class CancelRequest : TestingBaseServiceRequest<Google.Apis.Testing.v1.Data.CancelTestMatrixResponse>
            {
                /// Constructs a new Cancel request.
                public CancelRequest(Google.Apis.Services.IClientService service, string projectId, string testMatrixId)
                    : base(service)
                {
                    ProjectId = projectId;
                    TestMatrixId = testMatrixId;
                    InitParameters();
                }

                /// Cloud project that owns the test.
                [Google.Apis.Util.RequestParameterAttribute("projectId", Google.Apis.Util.RequestParameterType.Path)]
                public virtual string ProjectId { get; private set; }

                /// Test matrix that will be canceled.
                [Google.Apis.Util.RequestParameterAttribute("testMatrixId", Google.Apis.Util.RequestParameterType.Path)]
                public virtual string TestMatrixId { get; private set; }

                ///Gets the method name.
                public override string MethodName
                {
                    get { return "cancel"; }
                }

                ///Gets the HTTP method.
                public override string HttpMethod
                {
                    get { return "POST"; }
                }

                ///Gets the REST path.
                public override string RestPath
                {
                    get { return "v1/projects/{projectId}/testMatrices/{testMatrixId}:cancel"; }
                }

                /// Initializes Cancel parameter list.
                protected override void InitParameters()
                {
                    base.InitParameters();

                    RequestParameters.Add(
                        "projectId", new Google.Apis.Discovery.Parameter
                        {
                            Name = "projectId",
                            IsRequired = true,
                            ParameterType = "path",
                            DefaultValue = null,
                            Pattern = null,
                        });
                    RequestParameters.Add(
                        "testMatrixId", new Google.Apis.Discovery.Parameter
                        {
                            Name = "testMatrixId",
                            IsRequired = true,
                            ParameterType = "path",
                            DefaultValue = null,
                            Pattern = null,
                        });
                }

            }

            /// Creates and runs a matrix of tests according to the given specifications. Unsupported
            /// environments will be returned in the state UNSUPPORTED. Matrices are limited to at most 200 supported
            /// executions.
            ///
            /// 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 expands to more than 200 supported executions
            /// <param name="body">The body of the request.</param>
            /// <param name="projectId">The GCE project under which this job will run.</param>
            public virtual CreateRequest Create(Google.Apis.Testing.v1.Data.TestMatrix body, string projectId)
            {
                return new CreateRequest(service, body, projectId);
            }

            /// Creates and runs a matrix of tests according to the given specifications. Unsupported
            /// environments will be returned in the state UNSUPPORTED. Matrices are limited to at most 200 supported
            /// executions.
            ///
            /// 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 expands to more than 200 supported executions
            public class CreateRequest : TestingBaseServiceRequest<Google.Apis.Testing.v1.Data.TestMatrix>
            {
                /// Constructs a new Create request.
                public CreateRequest(Google.Apis.Services.IClientService service, Google.Apis.Testing.v1.Data.TestMatrix body, string projectId)
                    : base(service)
                {
                    ProjectId = projectId;
                    Body = body;
                    InitParameters();
                }

                /// The GCE project under which this job will run.
                [Google.Apis.Util.RequestParameterAttribute("projectId", Google.Apis.Util.RequestParameterType.Path)]
                public virtual string ProjectId { get; private set; }

                /// A string id used to detect duplicated requests. Ids are automatically scoped to a project,
                /// so users should ensure the ID is unique per-project. A UUID is recommended.
                ///
                /// Optional, but strongly recommended.
                [Google.Apis.Util.RequestParameterAttribute("requestId", Google.Apis.Util.RequestParameterType.Query)]
                public virtual string RequestId { get; set; }

                /// Gets or sets the body of this request.
                Google.Apis.Testing.v1.Data.TestMatrix Body { get; set; }

                ///Returns the body of the request.
                protected override object GetBody() { return Body; }

                ///Gets the method name.
                public override string MethodName
                {
                    get { return "create"; }
                }

                ///Gets the HTTP method.
                public override string HttpMethod
                {
                    get { return "POST"; }
                }

                ///Gets the REST path.
                public override string RestPath
                {
                    get { return "v1/projects/{projectId}/testMatrices"; }
                }

                /// Initializes Create parameter list.
                protected override void InitParameters()
                {
                    base.InitParameters();

                    RequestParameters.Add(
                        "projectId", new Google.Apis.Discovery.Parameter
                        {
                            Name = "projectId",
                            IsRequired = true,
                            ParameterType = "path",
                            DefaultValue = null,
                            Pattern = null,
                        });
                    RequestParameters.Add(
                        "requestId", new Google.Apis.Discovery.Parameter
                        {
                            Name = "requestId",
                            IsRequired = false,
                            ParameterType = "query",
                            DefaultValue = null,
                            Pattern = null,
                        });
                }

            }

            /// Checks the status of a test matrix.
            ///
            /// May return any of the following canonical error codes:
            ///
            /// - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request
            /// is malformed - NOT_FOUND - if the Test Matrix does not exist
            /// <param name="projectId">Cloud project that owns the test matrix.</param>
            /// <param name="testMatrixId">Unique
            /// test matrix id which was assigned by the service.</param>
            public virtual GetRequest Get(string projectId, string testMatrixId)
            {
                return new GetRequest(service, projectId, testMatrixId);
            }

            /// Checks the status of a test matrix.
            ///
            /// May return any of the following canonical error codes:
            ///
            /// - PERMISSION_DENIED - if the user is not authorized to read project - INVALID_ARGUMENT - if the request
            /// is malformed - NOT_FOUND - if the Test Matrix does not exist
            public class GetRequest : TestingBaseServiceRequest<Google.Apis.Testing.v1.Data.TestMatrix>
            {
                /// Constructs a new Get request.
                public GetRequest(Google.Apis.Services.IClientService service, string projectId, string testMatrixId)
                    : base(service)
                {
                    ProjectId = projectId;
                    TestMatrixId = testMatrixId;
                    InitParameters();
                }

                /// Cloud project that owns the test matrix.
                [Google.Apis.Util.RequestParameterAttribute("projectId", Google.Apis.Util.RequestParameterType.Path)]
                public virtual string ProjectId { get; private set; }

                /// Unique test matrix id which was assigned by the service.
                [Google.Apis.Util.RequestParameterAttribute("testMatrixId", Google.Apis.Util.RequestParameterType.Path)]
                public virtual string TestMatrixId { get; private set; }

                ///Gets the method name.
                public override string MethodName
                {
                    get { return "get"; }
                }

                ///Gets the HTTP method.
                public override string HttpMethod
                {
                    get { return "GET"; }
                }

                ///Gets the REST path.
                public override string RestPath
                {
                    get { return "v1/projects/{projectId}/testMatrices/{testMatrixId}"; }
                }

                /// Initializes Get parameter list.
                protected override void InitParameters()
                {
                    base.InitParameters();

                    RequestParameters.Add(
                        "projectId", new Google.Apis.Discovery.Parameter
                        {
                            Name = "projectId",
                            IsRequired = true,
                            ParameterType = "path",
                            DefaultValue = null,
                            Pattern = null,
                        });
                    RequestParameters.Add(
                        "testMatrixId", new Google.Apis.Discovery.Parameter
                        {
                            Name = "testMatrixId",
                            IsRequired = true,
                            ParameterType = "path",
                            DefaultValue = null,
                            Pattern = null,
                        });
                }

            }
        }
    }

    /// The "testEnvironmentCatalog" collection of methods.
    public class TestEnvironmentCatalogResource
    {
        private const string Resource = "testEnvironmentCatalog";

        /// The service which this resource belongs to.
        private readonly Google.Apis.Services.IClientService service;

        /// Constructs a new resource.
        public TestEnvironmentCatalogResource(Google.Apis.Services.IClientService service)
        {
            this.service = service;

        }

        /// Gets the catalog of supported test environments.
        ///
        /// May return any of the following canonical error codes:
        ///
        /// - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the environment type does not exist -
        /// INTERNAL - if an internal error occurred
        /// <param name="environmentType">Required. The type of environment that should be listed.</param>
        public virtual GetRequest Get(GetRequest.EnvironmentTypeEnum environmentType)
        {
            return new GetRequest(service, environmentType);
        }

        /// Gets the catalog of supported test environments.
        ///
        /// May return any of the following canonical error codes:
        ///
        /// - INVALID_ARGUMENT - if the request is malformed - NOT_FOUND - if the environment type does not exist -
        /// INTERNAL - if an internal error occurred
        public class GetRequest : TestingBaseServiceRequest<Google.Apis.Testing.v1.Data.TestEnvironmentCatalog>
        {
            /// Constructs a new Get request.
            public GetRequest(Google.Apis.Services.IClientService service, GetRequest.EnvironmentTypeEnum environmentType)
                : base(service)
            {
                EnvironmentType = environmentType;
                InitParameters();
            }

            /// Required. The type of environment that should be listed.
            [Google.Apis.Util.RequestParameterAttribute("environmentType", Google.Apis.Util.RequestParameterType.Path)]
            public virtual EnvironmentTypeEnum EnvironmentType { get; private set; }

            /// Required. The type of environment that should be listed.
            public enum EnvironmentTypeEnum
            {
                [Google.Apis.Util.StringValueAttribute("ENVIRONMENT_TYPE_UNSPECIFIED")]
                ENVIRONMENTTYPEUNSPECIFIED,
                [Google.Apis.Util.StringValueAttribute("ANDROID")]
                ANDROID,
                [Google.Apis.Util.StringValueAttribute("IOS")]
                IOS,
                [Google.Apis.Util.StringValueAttribute("NETWORK_CONFIGURATION")]
                NETWORKCONFIGURATION,
                [Google.Apis.Util.StringValueAttribute("PROVIDED_SOFTWARE")]
                PROVIDEDSOFTWARE,
            }

            /// For authorization, the cloud project requesting the TestEnvironmentCatalog.
            [Google.Apis.Util.RequestParameterAttribute("projectId", Google.Apis.Util.RequestParameterType.Query)]
            public virtual string ProjectId { get; set; }

            ///Gets the method name.
            public override string MethodName
            {
                get { return "get"; }
            }

            ///Gets the HTTP method.
            public override string HttpMethod
            {
                get { return "GET"; }
            }

            ///Gets the REST path.
            public override string RestPath
            {
                get { return "v1/testEnvironmentCatalog/{environmentType}"; }
            }

            /// Initializes Get parameter list.
            protected override void InitParameters()
            {
                base.InitParameters();

                RequestParameters.Add(
                    "environmentType", new Google.Apis.Discovery.Parameter
                    {
                        Name = "environmentType",
                        IsRequired = true,
                        ParameterType = "path",
                        DefaultValue = null,
                        Pattern = null,
                    });
                RequestParameters.Add(
                    "projectId", new Google.Apis.Discovery.Parameter
                    {
                        Name = "projectId",
                        IsRequired = false,
                        ParameterType = "query",
                        DefaultValue = null,
                        Pattern = null,
                    });
            }

        }
    }
}

namespace Google.Apis.Testing.v1.Data
{

    /// Identifies an account and how to log into it.
    public class Account : Google.Apis.Requests.IDirectResponseSchema
    {
        /// An automatic google login account.
        [Newtonsoft.Json.JsonPropertyAttribute("googleAuto")]
        public virtual GoogleAuto GoogleAuto { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A single Android device.
    public class AndroidDevice : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. The id of the Android device to be used. Use the EnvironmentDiscoveryService to get
        /// supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("androidModelId")]
        public virtual string AndroidModelId { get; set; }

        /// Required. The id of the Android OS version to be used. Use the EnvironmentDiscoveryService to get
        /// supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("androidVersionId")]
        public virtual string AndroidVersionId { get; set; }

        /// Required. The locale the test device used for testing. Use the EnvironmentDiscoveryService to get
        /// supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("locale")]
        public virtual string Locale { get; set; }

        /// Required. How the device is oriented during the test. Use the EnvironmentDiscoveryService to get
        /// supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("orientation")]
        public virtual string Orientation { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// The currently supported Android devices.
    public class AndroidDeviceCatalog : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The set of supported Android device models.
        [Newtonsoft.Json.JsonPropertyAttribute("models")]
        public virtual System.Collections.Generic.IList<AndroidModel> Models { get; set; }

        /// The set of supported runtime configurations.
        [Newtonsoft.Json.JsonPropertyAttribute("runtimeConfiguration")]
        public virtual AndroidRuntimeConfiguration RuntimeConfiguration { get; set; }

        /// The set of supported Android OS versions.
        [Newtonsoft.Json.JsonPropertyAttribute("versions")]
        public virtual System.Collections.Generic.IList<AndroidVersion> Versions { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A list of Android device configurations in which the test is to be executed.
    public class AndroidDeviceList : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. A list of Android devices.
        [Newtonsoft.Json.JsonPropertyAttribute("androidDevices")]
        public virtual System.Collections.Generic.IList<AndroidDevice> AndroidDevices { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A test of an Android application that can control an Android component independently of its normal
    /// lifecycle. Android instrumentation tests run an application APK and test APK inside the same process on a
    /// virtual or physical AndroidDevice.  They also specify a test runner class, such as com.google.GoogleTestRunner,
    /// which can vary on the specific instrumentation framework chosen.
    ///
    /// See  for more information on types of Android tests.
    public class AndroidInstrumentationTest : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The APK for the application under test.
        [Newtonsoft.Json.JsonPropertyAttribute("appApk")]
        public virtual FileReference AppApk { get; set; }

        /// A multi-apk app bundle for the application under test.
        [Newtonsoft.Json.JsonPropertyAttribute("appBundle")]
        public virtual AppBundle AppBundle { get; set; }

        /// The java package for the application under test. The default value is determined by examining the
        /// application's manifest.
        [Newtonsoft.Json.JsonPropertyAttribute("appPackageId")]
        public virtual string AppPackageId { get; set; }

        /// The option of whether running each test within its own invocation of instrumentation with Android
        /// Test Orchestrator or not. ** Orchestrator is only compatible with AndroidJUnitRunner version 1.0 or higher!
        /// ** Orchestrator offers the following benefits: - No shared state - Crashes are isolated - Logs are scoped
        /// per test
        ///
        /// See
        ///
        /// for more information about Android Test Orchestrator.
        ///
        /// If not set, the test will be run without the orchestrator.
        [Newtonsoft.Json.JsonPropertyAttribute("orchestratorOption")]
        public virtual string OrchestratorOption { get; set; }

        /// Required. The APK containing the test code to be executed.
        [Newtonsoft.Json.JsonPropertyAttribute("testApk")]
        public virtual FileReference TestApk { get; set; }

        /// The java package for the test to be executed. The default value is determined by examining the
        /// application's manifest.
        [Newtonsoft.Json.JsonPropertyAttribute("testPackageId")]
        public virtual string TestPackageId { get; set; }

        /// The InstrumentationTestRunner class. The default value is determined by examining the application's
        /// manifest.
        [Newtonsoft.Json.JsonPropertyAttribute("testRunnerClass")]
        public virtual string TestRunnerClass { get; set; }

        /// Each target must be fully qualified with the package name or class name, in one of these formats: -
        /// "package package_name" - "class package_name.class_name" - "class package_name.class_name#method_name"
        ///
        /// If empty, all targets in the module will be run.
        [Newtonsoft.Json.JsonPropertyAttribute("testTargets")]
        public virtual System.Collections.Generic.IList<string> TestTargets { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A set of Android device configuration permutations is defined by the the cross-product of the given
    /// axes. Internally, the given AndroidMatrix will be expanded into a set of AndroidDevices.
    ///
    /// Only supported permutations will be instantiated.  Invalid permutations (e.g., incompatible models/versions) are
    /// ignored.
    public class AndroidMatrix : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. The ids of the set of Android device to be used. Use the EnvironmentDiscoveryService to
        /// get supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("androidModelIds")]
        public virtual System.Collections.Generic.IList<string> AndroidModelIds { get; set; }

        /// Required. The ids of the set of Android OS version to be used. Use the EnvironmentDiscoveryService
        /// to get supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("androidVersionIds")]
        public virtual System.Collections.Generic.IList<string> AndroidVersionIds { get; set; }

        /// Required. The set of locales the test device will enable for testing. Use the
        /// EnvironmentDiscoveryService to get supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("locales")]
        public virtual System.Collections.Generic.IList<string> Locales { get; set; }

        /// Required. The set of orientations to test with. Use the EnvironmentDiscoveryService to get
        /// supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("orientations")]
        public virtual System.Collections.Generic.IList<string> Orientations { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A description of an Android device tests may be run on.
    public class AndroidModel : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The company that this device is branded with. Example: "Google", "Samsung".
        [Newtonsoft.Json.JsonPropertyAttribute("brand")]
        public virtual string Brand { get; set; }

        /// The name of the industrial design. This corresponds to android.os.Build.DEVICE.
        [Newtonsoft.Json.JsonPropertyAttribute("codename")]
        public virtual string Codename { get; set; }

        /// Whether this device is virtual or physical.
        [Newtonsoft.Json.JsonPropertyAttribute("form")]
        public virtual string Form { get; set; }

        /// Whether this device is a phone, tablet, wearable, etc.
        [Newtonsoft.Json.JsonPropertyAttribute("formFactor")]
        public virtual string FormFactor { get; set; }

        /// The unique opaque id for this model. Use this for invoking the TestExecutionService.
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// True if and only if tests with this model are recorded by stitching together screenshots. See
        /// use_low_spec_video_recording in device config.
        [Newtonsoft.Json.JsonPropertyAttribute("lowFpsVideoRecording")]
        public virtual System.Nullable<bool> LowFpsVideoRecording { get; set; }

        /// The manufacturer of this device.
        [Newtonsoft.Json.JsonPropertyAttribute("manufacturer")]
        public virtual string Manufacturer { get; set; }

        /// The human-readable marketing name for this device model. Examples: "Nexus 5", "Galaxy
        /// S5".
        [Newtonsoft.Json.JsonPropertyAttribute("name")]
        public virtual string Name { get; set; }

        /// Screen density in DPI. This corresponds to ro.sf.lcd_density
        [Newtonsoft.Json.JsonPropertyAttribute("screenDensity")]
        public virtual System.Nullable<int> ScreenDensity { get; set; }

        /// Screen size in the horizontal (X) dimension measured in pixels.
        [Newtonsoft.Json.JsonPropertyAttribute("screenX")]
        public virtual System.Nullable<int> ScreenX { get; set; }

        /// Screen size in the vertical (Y) dimension measured in pixels.
        [Newtonsoft.Json.JsonPropertyAttribute("screenY")]
        public virtual System.Nullable<int> ScreenY { get; set; }

        /// The list of supported ABIs for this device. This corresponds to either
        /// android.os.Build.SUPPORTED_ABIS (for API level 21 and above) or android.os.Build.CPU_ABI/CPU_ABI2. The most
        /// preferred ABI is the first element in the list.
        ///
        /// Elements are optionally prefixed by "version_id:" (where version_id is the id of an AndroidVersion),
        /// denoting an ABI that is supported only on a particular version.
        [Newtonsoft.Json.JsonPropertyAttribute("supportedAbis")]
        public virtual System.Collections.Generic.IList<string> SupportedAbis { get; set; }

        /// The set of Android versions this device supports.
        [Newtonsoft.Json.JsonPropertyAttribute("supportedVersionIds")]
        public virtual System.Collections.Generic.IList<string> SupportedVersionIds { get; set; }

        /// Tags for this dimension. Examples: "default", "preview", "deprecated".
        [Newtonsoft.Json.JsonPropertyAttribute("tags")]
        public virtual System.Collections.Generic.IList<string> Tags { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A test of an android application that explores the application on a virtual or physical Android Device,
    /// finding culprits and crashes as it goes.
    public class AndroidRoboTest : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The APK for the application under test.
        [Newtonsoft.Json.JsonPropertyAttribute("appApk")]
        public virtual FileReference AppApk { get; set; }

        /// A multi-apk app bundle for the application under test.
        [Newtonsoft.Json.JsonPropertyAttribute("appBundle")]
        public virtual AppBundle AppBundle { get; set; }

        /// The initial activity that should be used to start the app.
        [Newtonsoft.Json.JsonPropertyAttribute("appInitialActivity")]
        public virtual string AppInitialActivity { get; set; }

        /// The java package for the application under test. The default value is determined by examining the
        /// application's manifest.
        [Newtonsoft.Json.JsonPropertyAttribute("appPackageId")]
        public virtual string AppPackageId { get; set; }

        /// The max depth of the traversal stack Robo can explore. Needs to be at least 2 to make Robo explore
        /// the app beyond the first activity. Default is 50.
        [Newtonsoft.Json.JsonPropertyAttribute("maxDepth")]
        public virtual System.Nullable<int> MaxDepth { get; set; }

        /// The max number of steps Robo can execute. Default is no limit.
        [Newtonsoft.Json.JsonPropertyAttribute("maxSteps")]
        public virtual System.Nullable<int> MaxSteps { get; set; }

        /// A set of directives Robo should apply during the crawl. This allows users to customize the crawl.
        /// For example, the username and password for a test account can be provided.
        [Newtonsoft.Json.JsonPropertyAttribute("roboDirectives")]
        public virtual System.Collections.Generic.IList<RoboDirective> RoboDirectives { get; set; }

        /// A JSON file with a sequence of actions Robo should perform as a prologue for the crawl.
        [Newtonsoft.Json.JsonPropertyAttribute("roboScript")]
        public virtual FileReference RoboScript { get; set; }

        /// The intents used to launch the app for the crawl. If none are provided, then the main launcher
        /// activity is launched. If some are provided, then only those provided are launched (the main launcher
        /// activity must be provided explicitly).
        [Newtonsoft.Json.JsonPropertyAttribute("startingIntents")]
        public virtual System.Collections.Generic.IList<RoboStartingIntent> StartingIntents { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Android configuration that can be selected at the time a test is run.
    public class AndroidRuntimeConfiguration : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The set of available locales.
        [Newtonsoft.Json.JsonPropertyAttribute("locales")]
        public virtual System.Collections.Generic.IList<Locale> Locales { get; set; }

        /// The set of available orientations.
        [Newtonsoft.Json.JsonPropertyAttribute("orientations")]
        public virtual System.Collections.Generic.IList<Orientation> Orientations { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A test of an Android Application with a Test Loop. The intent \ will be implicitly added, since Games
    /// is the only user of this api, for the time being.
    public class AndroidTestLoop : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The APK for the application under test.
        [Newtonsoft.Json.JsonPropertyAttribute("appApk")]
        public virtual FileReference AppApk { get; set; }

        /// A multi-apk app bundle for the application under test.
        [Newtonsoft.Json.JsonPropertyAttribute("appBundle")]
        public virtual AppBundle AppBundle { get; set; }

        /// The java package for the application under test. The default is determined by examining the
        /// application's manifest.
        [Newtonsoft.Json.JsonPropertyAttribute("appPackageId")]
        public virtual string AppPackageId { get; set; }

        /// The list of scenario labels that should be run during the test. The scenario labels should map to
        /// labels defined in the application's manifest. For example, player_experience and
        /// com.google.test.loops.player_experience add all of the loops labeled in the manifest with the
        /// com.google.test.loops.player_experience name to the execution. Scenarios can also be specified in the
        /// scenarios field.
        [Newtonsoft.Json.JsonPropertyAttribute("scenarioLabels")]
        public virtual System.Collections.Generic.IList<string> ScenarioLabels { get; set; }

        /// The list of scenarios that should be run during the test. The default is all test loops, derived
        /// from the application's manifest.
        [Newtonsoft.Json.JsonPropertyAttribute("scenarios")]
        public virtual System.Collections.Generic.IList<System.Nullable<int>> Scenarios { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A version of the Android OS.
    public class AndroidVersion : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The API level for this Android version. Examples: 18, 19.
        [Newtonsoft.Json.JsonPropertyAttribute("apiLevel")]
        public virtual System.Nullable<int> ApiLevel { get; set; }

        /// The code name for this Android version. Examples: "JellyBean", "KitKat".
        [Newtonsoft.Json.JsonPropertyAttribute("codeName")]
        public virtual string CodeName { get; set; }

        /// Market share for this version.
        [Newtonsoft.Json.JsonPropertyAttribute("distribution")]
        public virtual Distribution Distribution { get; set; }

        /// An opaque id for this Android version. Use this id to invoke the TestExecutionService.
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// The date this Android version became available in the market.
        [Newtonsoft.Json.JsonPropertyAttribute("releaseDate")]
        public virtual Date ReleaseDate { get; set; }

        /// Tags for this dimension. Examples: "default", "preview", "deprecated".
        [Newtonsoft.Json.JsonPropertyAttribute("tags")]
        public virtual System.Collections.Generic.IList<string> Tags { get; set; }

        /// A string representing this version of the Android OS. Examples: "4.3", "4.4".
        [Newtonsoft.Json.JsonPropertyAttribute("versionString")]
        public virtual string VersionString { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// An Android package file to install.
    public class Apk : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The path to an APK to be installed on the device before the test begins.
        [Newtonsoft.Json.JsonPropertyAttribute("location")]
        public virtual FileReference Location { get; set; }

        /// The java package for the APK to be installed. Value is determined by examining the application's
        /// manifest.
        [Newtonsoft.Json.JsonPropertyAttribute("packageName")]
        public virtual string PackageName { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Android application details based on application manifest and apk archive contents.
    public class ApkDetail : Google.Apis.Requests.IDirectResponseSchema
    {
        [Newtonsoft.Json.JsonPropertyAttribute("apkManifest")]
        public virtual ApkManifest ApkManifest { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// An Android app manifest. See http://developer.android.com/guide/topics/manifest/manifest-
    /// intro.html
    public class ApkManifest : Google.Apis.Requests.IDirectResponseSchema
    {
        /// User-readable name for the application.
        [Newtonsoft.Json.JsonPropertyAttribute("applicationLabel")]
        public virtual string ApplicationLabel { get; set; }

        [Newtonsoft.Json.JsonPropertyAttribute("intentFilters")]
        public virtual System.Collections.Generic.IList<IntentFilter> IntentFilters { get; set; }

        /// Maximum API level on which the application is designed to run.
        [Newtonsoft.Json.JsonPropertyAttribute("maxSdkVersion")]
        public virtual System.Nullable<int> MaxSdkVersion { get; set; }

        /// Minimum API level required for the application to run.
        [Newtonsoft.Json.JsonPropertyAttribute("minSdkVersion")]
        public virtual System.Nullable<int> MinSdkVersion { get; set; }

        /// Full Java-style package name for this application, e.g. "com.example.foo".
        [Newtonsoft.Json.JsonPropertyAttribute("packageName")]
        public virtual string PackageName { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// An Android App Bundle file format, containing a BundleConfig.pb file, a base module directory, zero or
    /// more dynamic feature module directories. See https://developer.android.com/guide/app-bundle/build for guidance
    /// on building App Bundles.
    public class AppBundle : Google.Apis.Requests.IDirectResponseSchema
    {
        /// .aab file representing the app bundle under test.
        [Newtonsoft.Json.JsonPropertyAttribute("bundleLocation")]
        public virtual FileReference BundleLocation { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Response containing the current state of the specified test matrix.
    public class CancelTestMatrixResponse : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The current rolled-up state of the test matrix. If this state is already final, then the
        /// cancelation request will have no effect.
        [Newtonsoft.Json.JsonPropertyAttribute("testState")]
        public virtual string TestState { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Information about the client which invoked the test.
    public class ClientInfo : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The list of detailed information about client.
        [Newtonsoft.Json.JsonPropertyAttribute("clientInfoDetails")]
        public virtual System.Collections.Generic.IList<ClientInfoDetail> ClientInfoDetails { get; set; }

        /// Required. Client name, such as gcloud.
        [Newtonsoft.Json.JsonPropertyAttribute("name")]
        public virtual string Name { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Key-value pair of detailed information about the client which invoked the test. Examples: {'Version',
    /// '1.0'}, {'Release Track', 'BETA'}.
    public class ClientInfoDetail : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. The key of detailed client information.
        [Newtonsoft.Json.JsonPropertyAttribute("key")]
        public virtual string Key { get; set; }

        /// Required. The value of detailed client information.
        [Newtonsoft.Json.JsonPropertyAttribute("value")]
        public virtual string Value { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Represents a whole or partial calendar date, e.g. a birthday. The time of day and time zone are either
    /// specified elsewhere or are not significant. The date is relative to the Proleptic Gregorian Calendar. This can
    /// represent:
    ///
    /// * A full date, with non-zero year, month and day values * A month and day value, with a zero year, e.g. an
    /// anniversary * A year on its own, with zero month and day values * A year and month value, with a zero day, e.g.
    /// a credit card expiration date
    ///
    /// Related types are google.type.TimeOfDay and `google.protobuf.Timestamp`.
    public class Date : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Day of month. Must be from 1 to 31 and valid for the year and month, or 0 if specifying a year by
        /// itself or a year and month where the day is not significant.
        [Newtonsoft.Json.JsonPropertyAttribute("day")]
        public virtual System.Nullable<int> Day { get; set; }

        /// Month of year. Must be from 1 to 12, or 0 if specifying a year without a month and day.
        [Newtonsoft.Json.JsonPropertyAttribute("month")]
        public virtual System.Nullable<int> Month { get; set; }

        /// Year of date. Must be from 1 to 9999, or 0 if specifying a date without a year.
        [Newtonsoft.Json.JsonPropertyAttribute("year")]
        public virtual System.Nullable<int> Year { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A single device file description.
    public class DeviceFile : Google.Apis.Requests.IDirectResponseSchema
    {
        /// A reference to an opaque binary blob file
        [Newtonsoft.Json.JsonPropertyAttribute("obbFile")]
        public virtual ObbFile ObbFile { get; set; }

        /// A reference to a regular file
        [Newtonsoft.Json.JsonPropertyAttribute("regularFile")]
        public virtual RegularFile RegularFile { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Data about the relative number of devices running a given configuration of the Android
    /// platform.
    public class Distribution : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Output only. The estimated fraction (0-1) of the total market with this configuration.
        [Newtonsoft.Json.JsonPropertyAttribute("marketShare")]
        public virtual System.Nullable<double> MarketShare { get; set; }

        /// Output only. The time this distribution was measured.
        [Newtonsoft.Json.JsonPropertyAttribute("measurementTime")]
        public virtual object MeasurementTime { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// The environment in which the test is run.
    public class Environment : Google.Apis.Requests.IDirectResponseSchema
    {
        /// An Android device which must be used with an Android test.
        [Newtonsoft.Json.JsonPropertyAttribute("androidDevice")]
        public virtual AndroidDevice AndroidDevice { get; set; }

        /// An iOS device which must be used with an iOS test.
        [Newtonsoft.Json.JsonPropertyAttribute("iosDevice")]
        public virtual IosDevice IosDevice { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// The matrix of environments in which the test is to be executed.
    public class EnvironmentMatrix : Google.Apis.Requests.IDirectResponseSchema
    {
        /// A list of Android devices; the test will be run only on the specified devices.
        [Newtonsoft.Json.JsonPropertyAttribute("androidDeviceList")]
        public virtual AndroidDeviceList AndroidDeviceList { get; set; }

        /// A matrix of Android devices.
        [Newtonsoft.Json.JsonPropertyAttribute("androidMatrix")]
        public virtual AndroidMatrix AndroidMatrix { get; set; }

        /// A list of iOS devices.
        [Newtonsoft.Json.JsonPropertyAttribute("iosDeviceList")]
        public virtual IosDeviceList IosDeviceList { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A key-value pair passed as an environment variable to the test.
    public class EnvironmentVariable : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Key for the environment variable.
        [Newtonsoft.Json.JsonPropertyAttribute("key")]
        public virtual string Key { get; set; }

        /// Value for the environment variable.
        [Newtonsoft.Json.JsonPropertyAttribute("value")]
        public virtual string Value { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A reference to a file, used for user inputs.
    public class FileReference : Google.Apis.Requests.IDirectResponseSchema
    {
        /// A path to a file in Google Cloud Storage. Example: gs://build-app-1414623860166/app-debug-
        /// unaligned.apk
        [Newtonsoft.Json.JsonPropertyAttribute("gcsPath")]
        public virtual string GcsPath { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Response containing the details of the specified Android application APK.
    public class GetApkDetailsResponse : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Details of the Android APK.
        [Newtonsoft.Json.JsonPropertyAttribute("apkDetail")]
        public virtual ApkDetail ApkDetail { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Enables automatic Google account login. If set, the service will automatically generate a Google test
    /// account and add it to the device, before executing the test. Note that test accounts might be reused. Many
    /// applications show their full set of functionalities when an account is present on the device. Logging into the
    /// device with these generated accounts allows testing more functionalities.
    public class GoogleAuto : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A storage location within Google cloud storage (GCS).
    public class GoogleCloudStorage : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. The path to a directory in GCS that will eventually contain the results for this test.
        /// The requesting user must have write access on the bucket in the supplied path.
        [Newtonsoft.Json.JsonPropertyAttribute("gcsPath")]
        public virtual string GcsPath { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// The  section of an  tag. https://developer.android.com/guide/topics/manifest/intent-filter-
    /// element.html
    public class IntentFilter : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The android:name value of the  tag.
        [Newtonsoft.Json.JsonPropertyAttribute("actionNames")]
        public virtual System.Collections.Generic.IList<string> ActionNames { get; set; }

        /// The android:name value of the  tag.
        [Newtonsoft.Json.JsonPropertyAttribute("categoryNames")]
        public virtual System.Collections.Generic.IList<string> CategoryNames { get; set; }

        /// The android:mimeType value of the  tag.
        [Newtonsoft.Json.JsonPropertyAttribute("mimeType")]
        public virtual string MimeType { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A single iOS device.
    public class IosDevice : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. The id of the iOS device to be used. Use the EnvironmentDiscoveryService to get supported
        /// options.
        [Newtonsoft.Json.JsonPropertyAttribute("iosModelId")]
        public virtual string IosModelId { get; set; }

        /// Required. The id of the iOS major software version to be used. Use the EnvironmentDiscoveryService
        /// to get supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("iosVersionId")]
        public virtual string IosVersionId { get; set; }

        /// Required. The locale the test device used for testing. Use the EnvironmentDiscoveryService to get
        /// supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("locale")]
        public virtual string Locale { get; set; }

        /// Required. How the device is oriented during the test. Use the EnvironmentDiscoveryService to get
        /// supported options.
        [Newtonsoft.Json.JsonPropertyAttribute("orientation")]
        public virtual string Orientation { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// The currently supported iOS devices.
    public class IosDeviceCatalog : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The set of supported iOS device models.
        [Newtonsoft.Json.JsonPropertyAttribute("models")]
        public virtual System.Collections.Generic.IList<IosModel> Models { get; set; }

        /// The set of supported runtime configurations.
        [Newtonsoft.Json.JsonPropertyAttribute("runtimeConfiguration")]
        public virtual IosRuntimeConfiguration RuntimeConfiguration { get; set; }

        /// The set of supported iOS software versions.
        [Newtonsoft.Json.JsonPropertyAttribute("versions")]
        public virtual System.Collections.Generic.IList<IosVersion> Versions { get; set; }

        /// The set of supported Xcode versions.
        [Newtonsoft.Json.JsonPropertyAttribute("xcodeVersions")]
        public virtual System.Collections.Generic.IList<XcodeVersion> XcodeVersions { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A list of iOS device configurations in which the test is to be executed.
    public class IosDeviceList : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. A list of iOS devices.
        [Newtonsoft.Json.JsonPropertyAttribute("iosDevices")]
        public virtual System.Collections.Generic.IList<IosDevice> IosDevices { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A description of an iOS device tests may be run on.
    public class IosModel : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Device capabilities. Copied from https://developer.apple.com/library/archive/documentation/DeviceIn
        /// formation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html
        [Newtonsoft.Json.JsonPropertyAttribute("deviceCapabilities")]
        public virtual System.Collections.Generic.IList<string> DeviceCapabilities { get; set; }

        /// Whether this device is a phone, tablet, wearable, etc.
        [Newtonsoft.Json.JsonPropertyAttribute("formFactor")]
        public virtual string FormFactor { get; set; }

        /// The unique opaque id for this model. Use this for invoking the TestExecutionService.
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// The human-readable name for this device model. Examples: "iPhone 4s", "iPad Mini 2".
        [Newtonsoft.Json.JsonPropertyAttribute("name")]
        public virtual string Name { get; set; }

        /// The set of iOS major software versions this device supports.
        [Newtonsoft.Json.JsonPropertyAttribute("supportedVersionIds")]
        public virtual System.Collections.Generic.IList<string> SupportedVersionIds { get; set; }

        /// Tags for this dimension. Examples: "default", "preview", "deprecated".
        [Newtonsoft.Json.JsonPropertyAttribute("tags")]
        public virtual System.Collections.Generic.IList<string> Tags { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// iOS configuration that can be selected at the time a test is run.
    public class IosRuntimeConfiguration : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The set of available locales.
        [Newtonsoft.Json.JsonPropertyAttribute("locales")]
        public virtual System.Collections.Generic.IList<Locale> Locales { get; set; }

        /// The set of available orientations.
        [Newtonsoft.Json.JsonPropertyAttribute("orientations")]
        public virtual System.Collections.Generic.IList<Orientation> Orientations { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A description of how to set up an iOS device prior to a test.
    public class IosTestSetup : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The network traffic profile used for running the test. Available network profiles can be queried by
        /// using the NETWORK_CONFIGURATION environment type when calling
        /// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
        [Newtonsoft.Json.JsonPropertyAttribute("networkProfile")]
        public virtual string NetworkProfile { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// An iOS version.
    public class IosVersion : Google.Apis.Requests.IDirectResponseSchema
    {
        /// An opaque id for this iOS version. Use this id to invoke the TestExecutionService.
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// An integer representing the major iOS version. Examples: "8", "9".
        [Newtonsoft.Json.JsonPropertyAttribute("majorVersion")]
        public virtual System.Nullable<int> MajorVersion { get; set; }

        /// An integer representing the minor iOS version. Examples: "1", "2".
        [Newtonsoft.Json.JsonPropertyAttribute("minorVersion")]
        public virtual System.Nullable<int> MinorVersion { get; set; }

        /// The available Xcode versions for this version.
        [Newtonsoft.Json.JsonPropertyAttribute("supportedXcodeVersionIds")]
        public virtual System.Collections.Generic.IList<string> SupportedXcodeVersionIds { get; set; }

        /// Tags for this dimension. Examples: "default", "preview", "deprecated".
        [Newtonsoft.Json.JsonPropertyAttribute("tags")]
        public virtual System.Collections.Generic.IList<string> Tags { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A test of an iOS application that uses the XCTest framework. Xcode supports the option to "build for
    /// testing", which generates an .xctestrun file that contains a test specification (arguments, test methods, etc).
    /// This test type accepts a zip file containing the .xctestrun file and the corresponding contents of the
    /// Build/Products directory that contains all the binaries needed to run the tests.
    public class IosXcTest : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Output only. The bundle id for the application under test.
        [Newtonsoft.Json.JsonPropertyAttribute("appBundleId")]
        public virtual string AppBundleId { get; set; }

        /// Required. The .zip containing the .xctestrun file and the contents of the
        /// DerivedData/Build/Products directory. The .xctestrun file in this zip is ignored if the xctestrun field is
        /// specified.
        [Newtonsoft.Json.JsonPropertyAttribute("testsZip")]
        public virtual FileReference TestsZip { get; set; }

        /// The Xcode version that should be used for the test. Use the EnvironmentDiscoveryService to get
        /// supported options. Defaults to the latest Xcode version Firebase Test Lab supports.
        [Newtonsoft.Json.JsonPropertyAttribute("xcodeVersion")]
        public virtual string XcodeVersion { get; set; }

        /// An .xctestrun file that will override the .xctestrun file in the tests zip. Because the .xctestrun
        /// file contains environment variables along with test methods to run and/or ignore, this can be useful for
        /// sharding tests. Default is taken from the tests zip.
        [Newtonsoft.Json.JsonPropertyAttribute("xctestrun")]
        public virtual FileReference Xctestrun { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Specifies an intent that starts the main launcher activity.
    public class LauncherActivityIntent : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A location/region designation for language.
    public class Locale : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The id for this locale. Example: "en_US".
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// A human-friendly name for this language/locale. Example: "English".
        [Newtonsoft.Json.JsonPropertyAttribute("name")]
        public virtual string Name { get; set; }

        /// A human-friendly string representing the region for this locale. Example: "United States". Not
        /// present for every locale.
        [Newtonsoft.Json.JsonPropertyAttribute("region")]
        public virtual string Region { get; set; }

        /// Tags for this dimension. Example: "default".
        [Newtonsoft.Json.JsonPropertyAttribute("tags")]
        public virtual System.Collections.Generic.IList<string> Tags { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    public class NetworkConfiguration : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The emulation rule applying to the download traffic.
        [Newtonsoft.Json.JsonPropertyAttribute("downRule")]
        public virtual TrafficRule DownRule { get; set; }

        /// The unique opaque id for this network traffic configuration.
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// The emulation rule applying to the upload traffic.
        [Newtonsoft.Json.JsonPropertyAttribute("upRule")]
        public virtual TrafficRule UpRule { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    public class NetworkConfigurationCatalog : Google.Apis.Requests.IDirectResponseSchema
    {
        [Newtonsoft.Json.JsonPropertyAttribute("configurations")]
        public virtual System.Collections.Generic.IList<NetworkConfiguration> Configurations { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// An opaque binary blob file to install on the device before the test starts.
    public class ObbFile : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. Opaque Binary Blob (OBB) file(s) to install on the device.
        [Newtonsoft.Json.JsonPropertyAttribute("obb")]
        public virtual FileReference Obb { get; set; }

        /// Required. OBB file name which must conform to the format as specified by Android e.g.
        /// [main|patch].0300110.com.example.android.obb which will be installed into \/Android/obb/\/ on the
        /// device.
        [Newtonsoft.Json.JsonPropertyAttribute("obbFileName")]
        public virtual string ObbFileName { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Screen orientation of the device.
    public class Orientation : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The id for this orientation. Example: "portrait".
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// A human-friendly name for this orientation. Example: "portrait".
        [Newtonsoft.Json.JsonPropertyAttribute("name")]
        public virtual string Name { get; set; }

        /// Tags for this dimension. Example: "default".
        [Newtonsoft.Json.JsonPropertyAttribute("tags")]
        public virtual System.Collections.Generic.IList<string> Tags { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// The currently provided software environment on the devices under test.
    public class ProvidedSoftwareCatalog : Google.Apis.Requests.IDirectResponseSchema
    {
        /// A string representing the current version of Android Test Orchestrator that is provided by
        /// TestExecutionService. Example: "1.0.2 beta".
        [Newtonsoft.Json.JsonPropertyAttribute("orchestratorVersion")]
        public virtual string OrchestratorVersion { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A file or directory to install on the device before the test starts.
    public class RegularFile : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. The source file.
        [Newtonsoft.Json.JsonPropertyAttribute("content")]
        public virtual FileReference Content { get; set; }

        /// Required. Where to put the content on the device. Must be an absolute, whitelisted path. If the
        /// file exists, it will be replaced. The following device-side directories and any of their subdirectories are
        /// whitelisted: ${EXTERNAL_STORAGE}, or /sdcard ${ANDROID_DATA}/local/tmp, or /data/local/tmp Specifying a path
        /// outside of these directory trees is invalid.
        ///
        /// The paths /sdcard and /data will be made available and treated as implicit path substitutions. E.g. if
        /// /sdcard on a particular device does not map to external storage, the system will replace it with the
        /// external storage path prefix for that device and copy the file there.
        ///
        /// It is strongly advised to use the Environment API in app and test code to access files on the device in a
        /// portable way.
        [Newtonsoft.Json.JsonPropertyAttribute("devicePath")]
        public virtual string DevicePath { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Locations where the results of running the test are stored.
    public class ResultStorage : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required.
        [Newtonsoft.Json.JsonPropertyAttribute("googleCloudStorage")]
        public virtual GoogleCloudStorage GoogleCloudStorage { get; set; }

        /// Output only. The tool results execution that results are written to.
        [Newtonsoft.Json.JsonPropertyAttribute("toolResultsExecution")]
        public virtual ToolResultsExecution ToolResultsExecution { get; set; }

        /// The tool results history that contains the tool results execution that results are written to.
        ///
        /// If not provided, the service will choose an appropriate value.
        [Newtonsoft.Json.JsonPropertyAttribute("toolResultsHistory")]
        public virtual ToolResultsHistory ToolResultsHistory { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Directs Robo to interact with a specific UI element if it is encountered during the crawl. Currently,
    /// Robo can perform text entry or element click.
    public class RoboDirective : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. The type of action that Robo should perform on the specified element.
        [Newtonsoft.Json.JsonPropertyAttribute("actionType")]
        public virtual string ActionType { get; set; }

        /// The text that Robo is directed to set. If left empty, the directive will be treated as a CLICK on
        /// the element matching the resource_name.
        [Newtonsoft.Json.JsonPropertyAttribute("inputText")]
        public virtual string InputText { get; set; }

        /// Required. The android resource name of the target UI element. For example, in Java: R.string.foo in
        /// xml: @string/foo Only the "foo" part is needed. Reference doc:
        /// https://developer.android.com/guide/topics/resources/accessing-resources.html
        [Newtonsoft.Json.JsonPropertyAttribute("resourceName")]
        public virtual string ResourceName { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Message for specifying the start activities to crawl.
    public class RoboStartingIntent : Google.Apis.Requests.IDirectResponseSchema
    {
        [Newtonsoft.Json.JsonPropertyAttribute("launcherActivity")]
        public virtual LauncherActivityIntent LauncherActivity { get; set; }

        [Newtonsoft.Json.JsonPropertyAttribute("startActivity")]
        public virtual StartActivityIntent StartActivity { get; set; }

        /// Timeout in seconds for each intent.
        [Newtonsoft.Json.JsonPropertyAttribute("timeout")]
        public virtual object Timeout { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A starting intent specified by an action, uri, and categories.
    public class StartActivityIntent : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Action name. Required for START_ACTIVITY.
        [Newtonsoft.Json.JsonPropertyAttribute("action")]
        public virtual string Action { get; set; }

        /// Intent categories to set on the intent.
        [Newtonsoft.Json.JsonPropertyAttribute("categories")]
        public virtual System.Collections.Generic.IList<string> Categories { get; set; }

        /// URI for the action.
        [Newtonsoft.Json.JsonPropertyAttribute("uri")]
        public virtual string Uri { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Additional details about the progress of the running test.
    public class TestDetails : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Output only. If the TestState is ERROR, then this string will contain human-readable details about
        /// the error.
        [Newtonsoft.Json.JsonPropertyAttribute("errorMessage")]
        public virtual string ErrorMessage { get; set; }

        /// Output only. Human-readable, detailed descriptions of the test's progress. For example:
        /// "Provisioning a device", "Starting Test".
        ///
        /// During the course of execution new data may be appended to the end of progress_messages.
        [Newtonsoft.Json.JsonPropertyAttribute("progressMessages")]
        public virtual System.Collections.Generic.IList<string> ProgressMessages { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A description of a test environment.
    public class TestEnvironmentCatalog : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Supported Android devices.
        [Newtonsoft.Json.JsonPropertyAttribute("androidDeviceCatalog")]
        public virtual AndroidDeviceCatalog AndroidDeviceCatalog { get; set; }

        /// Supported iOS devices.
        [Newtonsoft.Json.JsonPropertyAttribute("iosDeviceCatalog")]
        public virtual IosDeviceCatalog IosDeviceCatalog { get; set; }

        /// Supported network configurations.
        [Newtonsoft.Json.JsonPropertyAttribute("networkConfigurationCatalog")]
        public virtual NetworkConfigurationCatalog NetworkConfigurationCatalog { get; set; }

        /// The software test environment provided by TestExecutionService.
        [Newtonsoft.Json.JsonPropertyAttribute("softwareCatalog")]
        public virtual ProvidedSoftwareCatalog SoftwareCatalog { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Specifies a single test to be executed in a single environment.
    public class TestExecution : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Output only. How the host machine(s) are configured.
        [Newtonsoft.Json.JsonPropertyAttribute("environment")]
        public virtual Environment Environment { get; set; }

        /// Output only. Unique id set by the backend.
        [Newtonsoft.Json.JsonPropertyAttribute("id")]
        public virtual string Id { get; set; }

        /// Output only. Id of the containing TestMatrix.
        [Newtonsoft.Json.JsonPropertyAttribute("matrixId")]
        public virtual string MatrixId { get; set; }

        /// Output only. The cloud project that owns the test execution.
        [Newtonsoft.Json.JsonPropertyAttribute("projectId")]
        public virtual string ProjectId { get; set; }

        /// Output only. Indicates the current progress of the test execution (e.g., FINISHED).
        [Newtonsoft.Json.JsonPropertyAttribute("state")]
        public virtual string State { get; set; }

        /// Output only. Additional details about the running test.
        [Newtonsoft.Json.JsonPropertyAttribute("testDetails")]
        public virtual TestDetails TestDetails { get; set; }

        /// Output only. How to run the test.
        [Newtonsoft.Json.JsonPropertyAttribute("testSpecification")]
        public virtual TestSpecification TestSpecification { get; set; }

        /// Output only. The time this test execution was initially created.
        [Newtonsoft.Json.JsonPropertyAttribute("timestamp")]
        public virtual object Timestamp { get; set; }

        /// Output only. Where the results for this execution are written.
        [Newtonsoft.Json.JsonPropertyAttribute("toolResultsStep")]
        public virtual ToolResultsStep ToolResultsStep { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A group of one or more TestExecutions, built by taking a product of values over a pre-defined set of
    /// axes.
    public class TestMatrix : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Information about the client which invoked the test.
        [Newtonsoft.Json.JsonPropertyAttribute("clientInfo")]
        public virtual ClientInfo ClientInfo { get; set; }

        /// Required. How the host machine(s) are configured.
        [Newtonsoft.Json.JsonPropertyAttribute("environmentMatrix")]
        public virtual EnvironmentMatrix EnvironmentMatrix { get; set; }

        /// 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.
        [Newtonsoft.Json.JsonPropertyAttribute("flakyTestAttempts")]
        public virtual System.Nullable<int> FlakyTestAttempts { get; set; }

        /// Output only. Describes why the matrix is considered invalid. Only useful for matrices in the
        /// INVALID state.
        [Newtonsoft.Json.JsonPropertyAttribute("invalidMatrixDetails")]
        public virtual string InvalidMatrixDetails { get; set; }

        /// The cloud project that owns the test matrix.
        [Newtonsoft.Json.JsonPropertyAttribute("projectId")]
        public virtual string ProjectId { get; set; }

        /// Required. Where the results for the matrix are written.
        [Newtonsoft.Json.JsonPropertyAttribute("resultStorage")]
        public virtual ResultStorage ResultStorage { get; set; }

        /// Output only. Indicates the current progress of the test matrix (e.g., FINISHED).
        [Newtonsoft.Json.JsonPropertyAttribute("state")]
        public virtual string State { get; set; }

        /// Output only. The list of test executions that the service creates for this matrix.
        [Newtonsoft.Json.JsonPropertyAttribute("testExecutions")]
        public virtual System.Collections.Generic.IList<TestExecution> TestExecutions { get; set; }

        /// Output only. Unique id set by the service.
        [Newtonsoft.Json.JsonPropertyAttribute("testMatrixId")]
        public virtual string TestMatrixId { get; set; }

        /// Required. How to run the test.
        [Newtonsoft.Json.JsonPropertyAttribute("testSpecification")]
        public virtual TestSpecification TestSpecification { get; set; }

        /// Output only. The time this test matrix was initially created.
        [Newtonsoft.Json.JsonPropertyAttribute("timestamp")]
        public virtual object Timestamp { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A description of how to set up the Android device prior to running the test.
    public class TestSetup : Google.Apis.Requests.IDirectResponseSchema
    {
        /// The device will be logged in on this account for the duration of the test.
        [Newtonsoft.Json.JsonPropertyAttribute("account")]
        public virtual Account Account { get; set; }

        /// APKs to install in addition to those being directly tested. Currently capped at 100.
        [Newtonsoft.Json.JsonPropertyAttribute("additionalApks")]
        public virtual System.Collections.Generic.IList<Apk> AdditionalApks { get; set; }

        /// List of directories on the device to upload to GCS at the end of the test; they must be absolute
        /// paths under /sdcard or /data/local/tmp. Path names are restricted to characters a-z A-Z 0-9 _ - . + and /
        ///
        /// Note: The paths /sdcard and /data will be made available and treated as implicit path substitutions. E.g. if
        /// /sdcard on a particular device does not map to external storage, the system will replace it with the
        /// external storage path prefix for that device.
        [Newtonsoft.Json.JsonPropertyAttribute("directoriesToPull")]
        public virtual System.Collections.Generic.IList<string> DirectoriesToPull { get; set; }

        /// Environment variables to set for the test (only applicable for instrumentation tests).
        [Newtonsoft.Json.JsonPropertyAttribute("environmentVariables")]
        public virtual System.Collections.Generic.IList<EnvironmentVariable> EnvironmentVariables { get; set; }

        /// List of files to push to the device before starting the test.
        [Newtonsoft.Json.JsonPropertyAttribute("filesToPush")]
        public virtual System.Collections.Generic.IList<DeviceFile> FilesToPush { get; set; }

        /// The network traffic profile used for running the test. Available network profiles can be queried by
        /// using the NETWORK_CONFIGURATION environment type when calling
        /// TestEnvironmentDiscoveryService.GetTestEnvironmentCatalog.
        [Newtonsoft.Json.JsonPropertyAttribute("networkProfile")]
        public virtual string NetworkProfile { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// A description of how to run the test.
    public class TestSpecification : Google.Apis.Requests.IDirectResponseSchema
    {
        /// An Android instrumentation test.
        [Newtonsoft.Json.JsonPropertyAttribute("androidInstrumentationTest")]
        public virtual AndroidInstrumentationTest AndroidInstrumentationTest { get; set; }

        /// An Android robo test.
        [Newtonsoft.Json.JsonPropertyAttribute("androidRoboTest")]
        public virtual AndroidRoboTest AndroidRoboTest { get; set; }

        /// An Android Application with a Test Loop.
        [Newtonsoft.Json.JsonPropertyAttribute("androidTestLoop")]
        public virtual AndroidTestLoop AndroidTestLoop { get; set; }

        /// Enables automatic Google account login. If set, the service will automatically generate a Google
        /// test account and add it to the device, before executing the test. Note that test accounts might be reused.
        /// Many applications show their full set of functionalities when an account is present on the device. Logging
        /// into the device with these generated accounts allows testing more functionalities. Default is
        /// false.
        [Newtonsoft.Json.JsonPropertyAttribute("autoGoogleLogin")]
        public virtual System.Nullable<bool> AutoGoogleLogin { get; set; }

        /// Disables performance metrics recording; may reduce test latency.
        [Newtonsoft.Json.JsonPropertyAttribute("disablePerformanceMetrics")]
        public virtual System.Nullable<bool> DisablePerformanceMetrics { get; set; }

        /// Disables video recording; may reduce test latency.
        [Newtonsoft.Json.JsonPropertyAttribute("disableVideoRecording")]
        public virtual System.Nullable<bool> DisableVideoRecording { get; set; }

        /// Test setup requirements for iOS.
        [Newtonsoft.Json.JsonPropertyAttribute("iosTestSetup")]
        public virtual IosTestSetup IosTestSetup { get; set; }

        /// An iOS XCTest, via an .xctestrun file.
        [Newtonsoft.Json.JsonPropertyAttribute("iosXcTest")]
        public virtual IosXcTest IosXcTest { get; set; }

        /// Test setup requirements for Android e.g. files to install, bootstrap scripts.
        [Newtonsoft.Json.JsonPropertyAttribute("testSetup")]
        public virtual TestSetup TestSetup { get; set; }

        /// Max time a test execution is allowed to run before it is automatically cancelled. The default value
        /// is 5 min.
        [Newtonsoft.Json.JsonPropertyAttribute("testTimeout")]
        public virtual object TestTimeout { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Represents a tool results execution resource.
    ///
    /// This has the results of a TestMatrix.
    public class ToolResultsExecution : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Output only. A tool results execution ID.
        [Newtonsoft.Json.JsonPropertyAttribute("executionId")]
        public virtual string ExecutionId { get; set; }

        /// Output only. A tool results history ID.
        [Newtonsoft.Json.JsonPropertyAttribute("historyId")]
        public virtual string HistoryId { get; set; }

        /// Output only. The cloud project that owns the tool results execution.
        [Newtonsoft.Json.JsonPropertyAttribute("projectId")]
        public virtual string ProjectId { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Represents a tool results history resource.
    public class ToolResultsHistory : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Required. A tool results history ID.
        [Newtonsoft.Json.JsonPropertyAttribute("historyId")]
        public virtual string HistoryId { get; set; }

        /// Required. The cloud project that owns the tool results history.
        [Newtonsoft.Json.JsonPropertyAttribute("projectId")]
        public virtual string ProjectId { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Represents a tool results step resource.
    ///
    /// This has the results of a TestExecution.
    public class ToolResultsStep : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Output only. A tool results execution ID.
        [Newtonsoft.Json.JsonPropertyAttribute("executionId")]
        public virtual string ExecutionId { get; set; }

        /// Output only. A tool results history ID.
        [Newtonsoft.Json.JsonPropertyAttribute("historyId")]
        public virtual string HistoryId { get; set; }

        /// Output only. The cloud project that owns the tool results step.
        [Newtonsoft.Json.JsonPropertyAttribute("projectId")]
        public virtual string ProjectId { get; set; }

        /// Output only. A tool results step ID.
        [Newtonsoft.Json.JsonPropertyAttribute("stepId")]
        public virtual string StepId { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// Network emulation parameters.
    public class TrafficRule : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Bandwidth in kbits/second.
        [Newtonsoft.Json.JsonPropertyAttribute("bandwidth")]
        public virtual System.Nullable<float> Bandwidth { get; set; }

        /// Burst size in kbits.
        [Newtonsoft.Json.JsonPropertyAttribute("burst")]
        public virtual System.Nullable<float> Burst { get; set; }

        /// Packet delay, must be >= 0.
        [Newtonsoft.Json.JsonPropertyAttribute("delay")]
        public virtual object Delay { get; set; }

        /// Packet duplication ratio (0.0 - 1.0).
        [Newtonsoft.Json.JsonPropertyAttribute("packetDuplicationRatio")]
        public virtual System.Nullable<float> PacketDuplicationRatio { get; set; }

        /// Packet loss ratio (0.0 - 1.0).
        [Newtonsoft.Json.JsonPropertyAttribute("packetLossRatio")]
        public virtual System.Nullable<float> PacketLossRatio { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }

    /// An Xcode version that an iOS version is compatible with.
    public class XcodeVersion : Google.Apis.Requests.IDirectResponseSchema
    {
        /// Tags for this Xcode version. Example: "default".
        [Newtonsoft.Json.JsonPropertyAttribute("tags")]
        public virtual System.Collections.Generic.IList<string> Tags { get; set; }

        /// The id for this version. Example: "9.2".
        [Newtonsoft.Json.JsonPropertyAttribute("version")]
        public virtual string Version { get; set; }

        /// The ETag of the item.
        public virtual string ETag { get; set; }
    }
}

redpajama_set_name: RedPajamaGithub


text:
/*
 * Translated default messages for the jQuery validation plugin.
 * Locale: DA (Danish; dansk)
 */
$.extend( $.validator.messages, {
	required: "Dette felt er påkrævet.",
	remote: "Ret venligst dette felt",
	email: "Indtast en gyldig email-adresse.",
	url: "Indtast en gyldig URL.",
	date: "Indtast en gyldig dato.",
	number: "Indtast et tal.",
	digits: "Indtast kun cifre.",
	creditcard: "Indtast et gyldigt kreditkortnummer.",
	equalTo: "Indtast den samme værdi igen.",
	time: "Angiv en gyldig tid mellem kl. 00:00 og 23:59.",
	ipv4: "Angiv venligst en gyldig IPv4-adresse.",
	ipv6: "Angiv venligst en gyldig IPv6-adresse.",
	require_from_group:  $.validator.format( "Angiv mindst {0} af disse felter." ),
	extension: "Indtast venligst en værdi med en gyldig endelse",
	pattern: "Ugyldigt format",
	lettersonly: "Angiv venligst kun bogstaver.",
	nowhitespace: "Må ikke indholde mellemrum",
	maxlength: $.validator.format( "Indtast højst {0} tegn." ),
	minlength: $.validator.format( "Indtast mindst {0} tegn." ),
	rangelength: $.validator.format( "Indtast mindst {0} og højst {1} tegn." ),
	range: $.validator.format( "Angiv en værdi mellem {0} og {1}." ),
	max: $.validator.format( "Angiv en værdi der højst er {0}." ),
	min: $.validator.format( "Angiv en værdi der mindst er {0}." ),
	minWords: $.validator.format( "Indtast venligst mindst {0} ord" ),
	maxWords:  $.validator.format( "Indtast venligst højst {0} ord" ),
	step: $.validator.format( "Angiv en værdi gange {0}." ),
	notEqualTo: "Angiv en anden værdi, værdierne må ikke være det samme.",
	integer: "Angiv et ikke-decimaltal, der er positivt eller negativt."
} );