Skip to content

create_upload

create_upload(
    project_arn: AmazonResourceName,
    name: Name,
    type: UploadType,
    *,
    config_overrides: Optional[DeviceFarmClientConfig] = None,
    content_type: Optional[ContentType] = None,
) -> CreateUploadResult

Uploads an app or test scripts.

Parameters:

  • project_arn (AmazonResourceName) –

    The ARN of the project for the upload.

  • name (Name) –

    The upload's file name. The name should not contain any forward slashes (/). If you are uploading an iOS app, the file name must end with the .ipa extension. If you are uploading an Android app, the file name must end with the .apk extension. For all others, the file name must end with the .zip file extension.

  • type (UploadType) –

    The upload's upload type.

    Must be one of the following values:

    • ANDROID_APP

    • IOS_APP

    • WEB_APP

    • EXTERNAL_DATA

    • APPIUM_JAVA_JUNIT_TEST_PACKAGE

    • APPIUM_JAVA_TESTNG_TEST_PACKAGE

    • APPIUM_PYTHON_TEST_PACKAGE

    • APPIUM_NODE_TEST_PACKAGE

    • APPIUM_RUBY_TEST_PACKAGE

    • APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE

    • APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE

    • APPIUM_WEB_PYTHON_TEST_PACKAGE

    • APPIUM_WEB_NODE_TEST_PACKAGE

    • APPIUM_WEB_RUBY_TEST_PACKAGE

    • INSTRUMENTATION_TEST_PACKAGE

    • XCTEST_TEST_PACKAGE

    • XCTEST_UI_TEST_PACKAGE

    • APPIUM_JAVA_JUNIT_TEST_SPEC

    • APPIUM_JAVA_TESTNG_TEST_SPEC

    • APPIUM_PYTHON_TEST_SPEC

    • APPIUM_NODE_TEST_SPEC

    • APPIUM_RUBY_TEST_SPEC

    • APPIUM_WEB_JAVA_JUNIT_TEST_SPEC

    • APPIUM_WEB_JAVA_TESTNG_TEST_SPEC

    • APPIUM_WEB_PYTHON_TEST_SPEC

    • APPIUM_WEB_NODE_TEST_SPEC

    • APPIUM_WEB_RUBY_TEST_SPEC

    • INSTRUMENTATION_TEST_SPEC

    • XCTEST_UI_TEST_SPEC

    If you call CreateUpload with WEB_APP specified, AWS Device Farm throws an ArgumentException error.

  • content_type (Optional[ContentType], default: None ) –

    The upload's content type (for example, application/octet-stream).

Raises:

Source code in docs_src/capo_device_farm/_services/device_farm.py
def create_upload(
    self,
    project_arn: "capo_device_farm.types.amazon_resource_name.AmazonResourceName",
    name: "capo_device_farm.types.name.Name",
    type: "capo_device_farm.types.upload_type.UploadType",
    *,
    config_overrides: Optional[DeviceFarmClientConfig] = None,
    content_type: Optional[
        "capo_device_farm.types.content_type.ContentType"
    ] = None,
) -> "capo_device_farm.types.create_upload_result.CreateUploadResult":
    """<p>Uploads an app or test scripts.</p>

    Args:
        project_arn: <p>The ARN of the project for the upload.</p>
        name: <p>The upload's file name. The name should not contain any forward slashes (<code>/</code>). If you are uploading an iOS app, the file name must end with the <code>.ipa</code> extension. If you are uploading an Android app, the file name must end with the <code>.apk</code> extension. For all others, the file name must end with the <code>.zip</code> file extension.</p>
        type: <p>The upload's upload type.</p> <p>Must be one of the following values:</p> <ul> <li> <p>ANDROID_APP</p> </li> <li> <p>IOS_APP</p> </li> <li> <p>WEB_APP</p> </li> <li> <p>EXTERNAL_DATA</p> </li> <li> <p>APPIUM_JAVA_JUNIT_TEST_PACKAGE</p> </li> <li> <p>APPIUM_JAVA_TESTNG_TEST_PACKAGE</p> </li> <li> <p>APPIUM_PYTHON_TEST_PACKAGE</p> </li> <li> <p>APPIUM_NODE_TEST_PACKAGE</p> </li> <li> <p>APPIUM_RUBY_TEST_PACKAGE</p> </li> <li> <p>APPIUM_WEB_JAVA_JUNIT_TEST_PACKAGE</p> </li> <li> <p>APPIUM_WEB_JAVA_TESTNG_TEST_PACKAGE</p> </li> <li> <p>APPIUM_WEB_PYTHON_TEST_PACKAGE</p> </li> <li> <p>APPIUM_WEB_NODE_TEST_PACKAGE</p> </li> <li> <p>APPIUM_WEB_RUBY_TEST_PACKAGE</p> </li> <li> <p>INSTRUMENTATION_TEST_PACKAGE</p> </li> <li> <p>XCTEST_TEST_PACKAGE</p> </li> <li> <p>XCTEST_UI_TEST_PACKAGE</p> </li> <li> <p>APPIUM_JAVA_JUNIT_TEST_SPEC</p> </li> <li> <p>APPIUM_JAVA_TESTNG_TEST_SPEC</p> </li> <li> <p>APPIUM_PYTHON_TEST_SPEC</p> </li> <li> <p>APPIUM_NODE_TEST_SPEC</p> </li> <li> <p>APPIUM_RUBY_TEST_SPEC</p> </li> <li> <p>APPIUM_WEB_JAVA_JUNIT_TEST_SPEC</p> </li> <li> <p>APPIUM_WEB_JAVA_TESTNG_TEST_SPEC</p> </li> <li> <p>APPIUM_WEB_PYTHON_TEST_SPEC</p> </li> <li> <p>APPIUM_WEB_NODE_TEST_SPEC</p> </li> <li> <p>APPIUM_WEB_RUBY_TEST_SPEC</p> </li> <li> <p>INSTRUMENTATION_TEST_SPEC</p> </li> <li> <p>XCTEST_UI_TEST_SPEC</p> </li> </ul> <p> If you call <code>CreateUpload</code> with <code>WEB_APP</code> specified, AWS Device Farm throws an <code>ArgumentException</code> error.</p>
        content_type: <p>The upload's content type (for example, <code>application/octet-stream</code>).</p>

    Raises:
        capo_device_farm.errors.argument_exception.ArgumentException: <p>An invalid argument was specified.</p>
        capo_device_farm.errors.limit_exceeded_exception.LimitExceededException: <p>A limit was exceeded.</p>
        capo_device_farm.errors.not_found_exception.NotFoundException: <p>The specified entity was not found.</p>
        capo_device_farm.errors.service_account_exception.ServiceAccountException: <p>There was a problem with the service account.</p>
        capo_device_farm.errors.UnknownServiceError: The service returned an error code this client does not model.
    """

    def _handler(
        req: "OperationRequest[capo_device_farm.types.create_upload_request.CreateUploadRequest]",
    ) -> OperationResponse[
        "capo_device_farm.types.create_upload_result.CreateUploadResult"
    ]:
        import capo_device_farm._operations.device_farm_20150623.create_upload

        output, http_response = (
            capo_device_farm._operations.device_farm_20150623.create_upload.create_upload(
                req.options, req.input
            )
        )
        return OperationResponse(output=output, response=http_response)

    def _redact_output(
        output: "capo_device_farm.types.create_upload_result.CreateUploadResult",
    ) -> dict[str, Any]:
        import capo_device_farm.types.create_upload_result

        return capo_device_farm.types.create_upload_result.redact_sensitive(output)

    interceptors_, options_ = self.operation_options(
        config_overrides,
        OperationLogging("CreateUpload", redact_output=_redact_output),
    )
    input_: capo_device_farm.types.create_upload_request.CreateUploadRequest = {
        "project_arn": project_arn,
        "name": name,
        "type": type,
    }
    if content_type is not None:
        input_["content_type"] = content_type

    response = execute_pipeline(
        OperationRequest(input=input_, options=options_),
        handler=_handler,
        interceptors=list(interceptors_),
    )
    response.response.close()
    return response.output