{"note":"OpenAPI conversion -- returning structured metadata","name":"amazonaws-com-devicefarm","description":"AWS Device Farm","version":"2015-06-23","base_url":"","endpoints":77,"raw":"@lap v0.3\n# Machine-readable API spec. Each @endpoint block is one API call.\n@api AWS Device Farm\n@version 2015-06-23\n@auth AWS SigV4\n@endpoints 77\n@hint download_for_search\n@toc root(77)\n\n@endpoint POST /\n@desc Creates a device pool.\n@required {projectArn: str, name: str, rules: [Rule]}\n@optional {description: str, maxDevices: int}\n@returns(200) {devicePool: DevicePool?{arn: str?, name: str?, description: str?, type: str?, rules: [Rule]?, maxDevices: int?}}\n\n@endpoint POST /\n@desc Creates a profile that can be applied to one or more private fleet device instances.\n@required {name: str}\n@optional {description: str, packageCleanup: bool, excludeAppPackagesFromCleanup: [str], rebootAfterUse: bool}\n@returns(200) {instanceProfile: InstanceProfile?{arn: str?, packageCleanup: bool?, excludeAppPackagesFromCleanup: [str]?, rebootAfterUse: bool?, name: str?, description: str?}}\n\n@endpoint POST /\n@desc Creates a network profile.\n@required {projectArn: str, name: str}\n@optional {description: str, type: str, uplinkBandwidthBits: int(i64), downlinkBandwidthBits: int(i64), uplinkDelayMs: int(i64), downlinkDelayMs: int(i64), uplinkJitterMs: int(i64), downlinkJitterMs: int(i64), uplinkLossPercent: int, downlinkLossPercent: int}\n@returns(200) {networkProfile: NetworkProfile?{arn: str?, name: str?, description: str?, type: str?, uplinkBandwidthBits: int(i64)?, downlinkBandwidthBits: int(i64)?, uplinkDelayMs: int(i64)?, downlinkDelayMs: int(i64)?, uplinkJitterMs: int(i64)?, downlinkJitterMs: int(i64)?, uplinkLossPercent: int?, downlinkLossPercent: int?}}\n\n@endpoint POST /\n@desc Creates a project.\n@required {name: str}\n@optional {defaultJobTimeoutMinutes: int, vpcConfig: VpcConfig}\n@returns(200) {project: Project?{arn: str?, name: str?, defaultJobTimeoutMinutes: int?, created: str(timestamp)?, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Specifies and starts a remote access session.\n@required {projectArn: str, deviceArn: str}\n@optional {instanceArn: str, sshPublicKey: str, remoteDebugEnabled: bool, remoteRecordEnabled: bool, remoteRecordAppArn: str, name: str, clientId: str, configuration: CreateRemoteAccessSessionConfiguration, interactionMode: str, skipAppResign: bool}\n@returns(200) {remoteAccessSession: RemoteAccessSession?{arn: str?, name: str?, created: str(timestamp)?, status: str?, result: str?, message: str?, started: str(timestamp)?, stopped: str(timestamp)?, device: Device?{arn: str?, name: str?, manufacturer: str?, model: str?, modelId: str?, formFactor: str?, platform: str?, os: str?, cpu: CPU?{frequency: str?, architecture: str?, clock: num(f64)?}, resolution: Resolution?{width: int?, height: int?}, heapSize: int(i64)?, memory: int(i64)?, image: str?, carrier: str?, radio: str?, remoteAccessEnabled: bool?, remoteDebugEnabled: bool?, fleetType: str?, fleetName: str?, instances: [DeviceInstance]?, availability: str?}, instanceArn: str?, remoteDebugEnabled: bool?, remoteRecordEnabled: bool?, remoteRecordAppArn: str?, hostAddress: str?, clientId: str?, billingMethod: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, endpoint: str?, deviceUdid: str?, interactionMode: str?, skipAppResign: bool?, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Creates a Selenium testing project. Projects are used to track TestGridSession instances.\n@required {name: str}\n@optional {description: str, vpcConfig: TestGridVpcConfig}\n@returns(200) {testGridProject: TestGridProject?{arn: str?, name: str?, description: str?, vpcConfig: TestGridVpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}, created: str(timestamp)?}}\n\n@endpoint POST /\n@desc Creates a signed, short-term URL that can be passed to a Selenium RemoteWebDriver constructor.\n@required {projectArn: str, expiresInSeconds: int}\n@returns(200) {url: str?, expires: str(timestamp)?}\n\n@endpoint POST /\n@desc Uploads an app or test scripts.\n@required {projectArn: str, name: str, type: str}\n@optional {contentType: str}\n@returns(200) {upload: Upload?{arn: str?, name: str?, created: str(timestamp)?, type: str?, status: str?, url: str?, metadata: str?, contentType: str?, message: str?, category: str?}}\n\n@endpoint POST /\n@desc Creates a configuration record in Device Farm for your Amazon Virtual Private Cloud (VPC) endpoint.\n@required {vpceConfigurationName: str, vpceServiceName: str, serviceDnsName: str}\n@optional {vpceConfigurationDescription: str}\n@returns(200) {vpceConfiguration: VPCEConfiguration?{arn: str?, vpceConfigurationName: str?, vpceServiceName: str?, serviceDnsName: str?, vpceConfigurationDescription: str?}}\n\n@endpoint POST /\n@desc Deletes a device pool given the pool ARN. Does not allow deletion of curated pools owned by the system.\n@required {arn: str}\n\n@endpoint POST /\n@desc Deletes a profile that can be applied to one or more private device instances.\n@required {arn: str}\n\n@endpoint POST /\n@desc Deletes a network profile.\n@required {arn: str}\n\n@endpoint POST /\n@desc Deletes an AWS Device Farm project, given the project ARN.  Deleting this resource does not stop an in-progress run.\n@required {arn: str}\n\n@endpoint POST /\n@desc Deletes a completed remote access session and its results.\n@required {arn: str}\n\n@endpoint POST /\n@desc Deletes the run, given the run ARN.  Deleting this resource does not stop an in-progress run.\n@required {arn: str}\n\n@endpoint POST /\n@desc Deletes a Selenium testing project and all content generated under it.   You cannot undo this operation.   You cannot delete a project if it has active sessions.\n@required {projectArn: str}\n\n@endpoint POST /\n@desc Deletes an upload given the upload ARN.\n@required {arn: str}\n\n@endpoint POST /\n@desc Deletes a configuration for your Amazon Virtual Private Cloud (VPC) endpoint.\n@required {arn: str}\n\n@endpoint POST /\n@desc Returns the number of unmetered iOS or unmetered Android devices that have been purchased by the account.\n@returns(200) {accountSettings: AccountSettings?{awsAccountNumber: str?, unmeteredDevices: map<str,int>?, unmeteredRemoteAccessDevices: map<str,int>?, maxJobTimeoutMinutes: int?, trialMinutes: TrialMinutes?{total: num(f64)?, remaining: num(f64)?}, maxSlots: map<str,int>?, defaultJobTimeoutMinutes: int?, skipAppResign: bool?}}\n\n@endpoint POST /\n@desc Gets information about a unique device type.\n@required {arn: str}\n@returns(200) {device: Device?{arn: str?, name: str?, manufacturer: str?, model: str?, modelId: str?, formFactor: str?, platform: str?, os: str?, cpu: CPU?{frequency: str?, architecture: str?, clock: num(f64)?}, resolution: Resolution?{width: int?, height: int?}, heapSize: int(i64)?, memory: int(i64)?, image: str?, carrier: str?, radio: str?, remoteAccessEnabled: bool?, remoteDebugEnabled: bool?, fleetType: str?, fleetName: str?, instances: [DeviceInstance]?, availability: str?}}\n\n@endpoint POST /\n@desc Returns information about a device instance that belongs to a private device fleet.\n@required {arn: str}\n@returns(200) {deviceInstance: DeviceInstance?{arn: str?, deviceArn: str?, labels: [str]?, status: str?, udid: str?, instanceProfile: InstanceProfile?{arn: str?, packageCleanup: bool?, excludeAppPackagesFromCleanup: [str]?, rebootAfterUse: bool?, name: str?, description: str?}}}\n\n@endpoint POST /\n@desc Gets information about a device pool.\n@required {arn: str}\n@returns(200) {devicePool: DevicePool?{arn: str?, name: str?, description: str?, type: str?, rules: [Rule]?, maxDevices: int?}}\n\n@endpoint POST /\n@desc Gets information about compatibility with a device pool.\n@required {devicePoolArn: str}\n@optional {appArn: str, testType: str, test: ScheduleRunTest, configuration: ScheduleRunConfiguration}\n@returns(200) {compatibleDevices: [DevicePoolCompatibilityResult]?, incompatibleDevices: [DevicePoolCompatibilityResult]?}\n\n@endpoint POST /\n@desc Returns information about the specified instance profile.\n@required {arn: str}\n@returns(200) {instanceProfile: InstanceProfile?{arn: str?, packageCleanup: bool?, excludeAppPackagesFromCleanup: [str]?, rebootAfterUse: bool?, name: str?, description: str?}}\n\n@endpoint POST /\n@desc Gets information about a job.\n@required {arn: str}\n@returns(200) {job: Job?{arn: str?, name: str?, type: str?, created: str(timestamp)?, status: str?, result: str?, started: str(timestamp)?, stopped: str(timestamp)?, counters: Counters?{total: int?, passed: int?, failed: int?, warned: int?, errored: int?, stopped: int?, skipped: int?}, message: str?, device: Device?{arn: str?, name: str?, manufacturer: str?, model: str?, modelId: str?, formFactor: str?, platform: str?, os: str?, cpu: CPU?{frequency: str?, architecture: str?, clock: num(f64)?}, resolution: Resolution?{width: int?, height: int?}, heapSize: int(i64)?, memory: int(i64)?, image: str?, carrier: str?, radio: str?, remoteAccessEnabled: bool?, remoteDebugEnabled: bool?, fleetType: str?, fleetName: str?, instances: [DeviceInstance]?, availability: str?}, instanceArn: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, videoEndpoint: str?, videoCapture: bool?}}\n\n@endpoint POST /\n@desc Returns information about a network profile.\n@required {arn: str}\n@returns(200) {networkProfile: NetworkProfile?{arn: str?, name: str?, description: str?, type: str?, uplinkBandwidthBits: int(i64)?, downlinkBandwidthBits: int(i64)?, uplinkDelayMs: int(i64)?, downlinkDelayMs: int(i64)?, uplinkJitterMs: int(i64)?, downlinkJitterMs: int(i64)?, uplinkLossPercent: int?, downlinkLossPercent: int?}}\n\n@endpoint POST /\n@desc Gets the current status and future status of all offerings purchased by an AWS account. The response indicates how many offerings are currently available and the offerings that will be available in the next period. The API returns a NotEligible error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.\n@optional {nextToken: str}\n@returns(200) {current: map<str,OfferingStatus>?, nextPeriod: map<str,OfferingStatus>?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about a project.\n@required {arn: str}\n@returns(200) {project: Project?{arn: str?, name: str?, defaultJobTimeoutMinutes: int?, created: str(timestamp)?, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Returns a link to a currently running remote access session.\n@required {arn: str}\n@returns(200) {remoteAccessSession: RemoteAccessSession?{arn: str?, name: str?, created: str(timestamp)?, status: str?, result: str?, message: str?, started: str(timestamp)?, stopped: str(timestamp)?, device: Device?{arn: str?, name: str?, manufacturer: str?, model: str?, modelId: str?, formFactor: str?, platform: str?, os: str?, cpu: CPU?{frequency: str?, architecture: str?, clock: num(f64)?}, resolution: Resolution?{width: int?, height: int?}, heapSize: int(i64)?, memory: int(i64)?, image: str?, carrier: str?, radio: str?, remoteAccessEnabled: bool?, remoteDebugEnabled: bool?, fleetType: str?, fleetName: str?, instances: [DeviceInstance]?, availability: str?}, instanceArn: str?, remoteDebugEnabled: bool?, remoteRecordEnabled: bool?, remoteRecordAppArn: str?, hostAddress: str?, clientId: str?, billingMethod: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, endpoint: str?, deviceUdid: str?, interactionMode: str?, skipAppResign: bool?, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Gets information about a run.\n@required {arn: str}\n@returns(200) {run: Run?{arn: str?, name: str?, type: str?, platform: str?, created: str(timestamp)?, status: str?, result: str?, started: str(timestamp)?, stopped: str(timestamp)?, counters: Counters?{total: int?, passed: int?, failed: int?, warned: int?, errored: int?, stopped: int?, skipped: int?}, message: str?, totalJobs: int?, completedJobs: int?, billingMethod: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, networkProfile: NetworkProfile?{arn: str?, name: str?, description: str?, type: str?, uplinkBandwidthBits: int(i64)?, downlinkBandwidthBits: int(i64)?, uplinkDelayMs: int(i64)?, downlinkDelayMs: int(i64)?, uplinkJitterMs: int(i64)?, downlinkJitterMs: int(i64)?, uplinkLossPercent: int?, downlinkLossPercent: int?}, parsingResultUrl: str?, resultCode: str?, seed: int?, appUpload: str?, eventCount: int?, jobTimeoutMinutes: int?, devicePoolArn: str?, locale: str?, radios: Radios?{wifi: bool?, bluetooth: bool?, nfc: bool?, gps: bool?}, location: Location?{latitude: num(f64), longitude: num(f64)}, customerArtifactPaths: CustomerArtifactPaths?{iosPaths: [str]?, androidPaths: [str]?, deviceHostPaths: [str]?}, webUrl: str?, skipAppResign: bool?, testSpecArn: str?, deviceSelectionResult: DeviceSelectionResult?{filters: [DeviceFilter]?, matchedDevicesCount: int?, maxDevices: int?}, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Gets information about a suite.\n@required {arn: str}\n@returns(200) {suite: Suite?{arn: str?, name: str?, type: str?, created: str(timestamp)?, status: str?, result: str?, started: str(timestamp)?, stopped: str(timestamp)?, counters: Counters?{total: int?, passed: int?, failed: int?, warned: int?, errored: int?, stopped: int?, skipped: int?}, message: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}}}\n\n@endpoint POST /\n@desc Gets information about a test.\n@required {arn: str}\n@returns(200) {test: Test?{arn: str?, name: str?, type: str?, created: str(timestamp)?, status: str?, result: str?, started: str(timestamp)?, stopped: str(timestamp)?, counters: Counters?{total: int?, passed: int?, failed: int?, warned: int?, errored: int?, stopped: int?, skipped: int?}, message: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}}}\n\n@endpoint POST /\n@desc Retrieves information about a Selenium testing project.\n@required {projectArn: str}\n@returns(200) {testGridProject: TestGridProject?{arn: str?, name: str?, description: str?, vpcConfig: TestGridVpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}, created: str(timestamp)?}}\n\n@endpoint POST /\n@desc A session is an instance of a browser created through a RemoteWebDriver with the URL from CreateTestGridUrlResult$url. You can use the following to look up sessions:   The session ARN (GetTestGridSessionRequest$sessionArn).   The project ARN and a session ID (GetTestGridSessionRequest$projectArn and GetTestGridSessionRequest$sessionId).\n@optional {projectArn: str, sessionId: str, sessionArn: str}\n@returns(200) {testGridSession: TestGridSession?{arn: str?, status: str?, created: str(timestamp)?, ended: str(timestamp)?, billingMinutes: num(f64)?, seleniumProperties: str?}}\n\n@endpoint POST /\n@desc Gets information about an upload.\n@required {arn: str}\n@returns(200) {upload: Upload?{arn: str?, name: str?, created: str(timestamp)?, type: str?, status: str?, url: str?, metadata: str?, contentType: str?, message: str?, category: str?}}\n\n@endpoint POST /\n@desc Returns information about the configuration settings for your Amazon Virtual Private Cloud (VPC) endpoint.\n@required {arn: str}\n@returns(200) {vpceConfiguration: VPCEConfiguration?{arn: str?, vpceConfigurationName: str?, vpceServiceName: str?, serviceDnsName: str?, vpceConfigurationDescription: str?}}\n\n@endpoint POST /\n@desc Installs an application to the device in a remote access session. For Android applications, the file must be in .apk format. For iOS applications, the file must be in .ipa format.\n@required {remoteAccessSessionArn: str, appArn: str}\n@returns(200) {appUpload: Upload?{arn: str?, name: str?, created: str(timestamp)?, type: str?, status: str?, url: str?, metadata: str?, contentType: str?, message: str?, category: str?}}\n\n@endpoint POST /\n@desc Gets information about artifacts.\n@required {arn: str, type: str}\n@optional {nextToken: str}\n@returns(200) {artifacts: [Artifact]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns information about the private device instances associated with one or more AWS accounts.\n@optional {maxResults: int, nextToken: str}\n@returns(200) {deviceInstances: [DeviceInstance]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about device pools.\n@required {arn: str}\n@optional {type: str, nextToken: str}\n@returns(200) {devicePools: [DevicePool]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about unique device types.\n@optional {arn: str, nextToken: str, filters: [DeviceFilter]}\n@returns(200) {devices: [Device]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns information about all the instance profiles in an AWS account.\n@optional {maxResults: int, nextToken: str}\n@returns(200) {instanceProfiles: [InstanceProfile]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about jobs for a given test run.\n@required {arn: str}\n@optional {nextToken: str}\n@returns(200) {jobs: [Job]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns the list of available network profiles.\n@required {arn: str}\n@optional {type: str, nextToken: str}\n@returns(200) {networkProfiles: [NetworkProfile]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns a list of offering promotions. Each offering promotion record contains the ID and description of the promotion. The API returns a NotEligible error if the caller is not permitted to invoke the operation. Contact aws-devicefarm-support@amazon.com if you must be able to invoke this operation.\n@optional {nextToken: str}\n@returns(200) {offeringPromotions: [OfferingPromotion]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns a list of all historical purchases, renewals, and system renewal transactions for an AWS account. The list is paginated and ordered by a descending timestamp (most recent transactions are first). The API returns a NotEligible error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.\n@optional {nextToken: str}\n@returns(200) {offeringTransactions: [OfferingTransaction]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns a list of products or offerings that the user can manage through the API. Each offering record indicates the recurring price per unit and the frequency for that offering. The API returns a NotEligible error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.\n@optional {nextToken: str}\n@returns(200) {offerings: [Offering]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about projects.\n@optional {arn: str, nextToken: str}\n@returns(200) {projects: [Project]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns a list of all currently running remote access sessions.\n@required {arn: str}\n@optional {nextToken: str}\n@returns(200) {remoteAccessSessions: [RemoteAccessSession]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about runs, given an AWS Device Farm project ARN.\n@required {arn: str}\n@optional {nextToken: str}\n@returns(200) {runs: [Run]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about samples, given an AWS Device Farm job ARN.\n@required {arn: str}\n@optional {nextToken: str}\n@returns(200) {samples: [Sample]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about test suites for a given job.\n@required {arn: str}\n@optional {nextToken: str}\n@returns(200) {suites: [Suite]?, nextToken: str?}\n\n@endpoint POST /\n@desc List the tags for an AWS Device Farm resource.\n@required {ResourceARN: str}\n@returns(200) {Tags: [Tag]?}\n\n@endpoint POST /\n@desc Gets a list of all Selenium testing projects in your account.\n@optional {maxResult: int, nextToken: str}\n@returns(200) {testGridProjects: [TestGridProject]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns a list of the actions taken in a TestGridSession.\n@required {sessionArn: str}\n@optional {maxResult: int, nextToken: str}\n@returns(200) {actions: [TestGridSessionAction]?, nextToken: str?}\n\n@endpoint POST /\n@desc Retrieves a list of artifacts created during the session.\n@required {sessionArn: str}\n@optional {type: str, maxResult: int, nextToken: str}\n@returns(200) {artifacts: [TestGridSessionArtifact]?, nextToken: str?}\n\n@endpoint POST /\n@desc Retrieves a list of sessions for a TestGridProject.\n@required {projectArn: str}\n@optional {status: str, creationTimeAfter: str(timestamp), creationTimeBefore: str(timestamp), endTimeAfter: str(timestamp), endTimeBefore: str(timestamp), maxResult: int, nextToken: str}\n@returns(200) {testGridSessions: [TestGridSession]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about tests in a given test suite.\n@required {arn: str}\n@optional {nextToken: str}\n@returns(200) {tests: [Test]?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about unique problems, such as exceptions or crashes. Unique problems are defined as a single instance of an error across a run, job, or suite. For example, if a call in your application consistently raises an exception (OutOfBoundsException in MyActivity.java:386), ListUniqueProblems returns a single entry instead of many individual entries for that exception.\n@required {arn: str}\n@optional {nextToken: str}\n@returns(200) {uniqueProblems: map<str,[UniqueProblem]>?, nextToken: str?}\n\n@endpoint POST /\n@desc Gets information about uploads, given an AWS Device Farm project ARN.\n@required {arn: str}\n@optional {type: str, nextToken: str}\n@returns(200) {uploads: [Upload]?, nextToken: str?}\n\n@endpoint POST /\n@desc Returns information about all Amazon Virtual Private Cloud (VPC) endpoint configurations in the AWS account.\n@optional {maxResults: int, nextToken: str}\n@returns(200) {vpceConfigurations: [VPCEConfiguration]?, nextToken: str?}\n\n@endpoint POST /\n@desc Immediately purchases offerings for an AWS account. Offerings renew with the latest total purchased quantity for an offering, unless the renewal was overridden. The API returns a NotEligible error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.\n@required {offeringId: str, quantity: int}\n@optional {offeringPromotionId: str}\n@returns(200) {offeringTransaction: OfferingTransaction?{offeringStatus: OfferingStatus?{type: str?, offering: Offering?{id: str?, description: str?, type: str?, platform: str?, recurringCharges: [RecurringCharge]?}, quantity: int?, effectiveOn: str(timestamp)?}, transactionId: str?, offeringPromotionId: str?, createdOn: str(timestamp)?, cost: MonetaryAmount?{amount: num(f64)?, currencyCode: str?}}}\n\n@endpoint POST /\n@desc Explicitly sets the quantity of devices to renew for an offering, starting from the effectiveDate of the next period. The API returns a NotEligible error if the user is not permitted to invoke the operation. If you must be able to invoke this operation, contact aws-devicefarm-support@amazon.com.\n@required {offeringId: str, quantity: int}\n@returns(200) {offeringTransaction: OfferingTransaction?{offeringStatus: OfferingStatus?{type: str?, offering: Offering?{id: str?, description: str?, type: str?, platform: str?, recurringCharges: [RecurringCharge]?}, quantity: int?, effectiveOn: str(timestamp)?}, transactionId: str?, offeringPromotionId: str?, createdOn: str(timestamp)?, cost: MonetaryAmount?{amount: num(f64)?, currencyCode: str?}}}\n\n@endpoint POST /\n@desc Schedules a run.\n@required {projectArn: str, test: ScheduleRunTest}\n@optional {appArn: str, devicePoolArn: str, deviceSelectionConfiguration: DeviceSelectionConfiguration, name: str, configuration: ScheduleRunConfiguration, executionConfiguration: ExecutionConfiguration}\n@returns(200) {run: Run?{arn: str?, name: str?, type: str?, platform: str?, created: str(timestamp)?, status: str?, result: str?, started: str(timestamp)?, stopped: str(timestamp)?, counters: Counters?{total: int?, passed: int?, failed: int?, warned: int?, errored: int?, stopped: int?, skipped: int?}, message: str?, totalJobs: int?, completedJobs: int?, billingMethod: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, networkProfile: NetworkProfile?{arn: str?, name: str?, description: str?, type: str?, uplinkBandwidthBits: int(i64)?, downlinkBandwidthBits: int(i64)?, uplinkDelayMs: int(i64)?, downlinkDelayMs: int(i64)?, uplinkJitterMs: int(i64)?, downlinkJitterMs: int(i64)?, uplinkLossPercent: int?, downlinkLossPercent: int?}, parsingResultUrl: str?, resultCode: str?, seed: int?, appUpload: str?, eventCount: int?, jobTimeoutMinutes: int?, devicePoolArn: str?, locale: str?, radios: Radios?{wifi: bool?, bluetooth: bool?, nfc: bool?, gps: bool?}, location: Location?{latitude: num(f64), longitude: num(f64)}, customerArtifactPaths: CustomerArtifactPaths?{iosPaths: [str]?, androidPaths: [str]?, deviceHostPaths: [str]?}, webUrl: str?, skipAppResign: bool?, testSpecArn: str?, deviceSelectionResult: DeviceSelectionResult?{filters: [DeviceFilter]?, matchedDevicesCount: int?, maxDevices: int?}, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Initiates a stop request for the current job. AWS Device Farm immediately stops the job on the device where tests have not started. You are not billed for this device. On the device where tests have started, setup suite and teardown suite tests run to completion on the device. You are billed for setup, teardown, and any tests that were in progress or already completed.\n@required {arn: str}\n@returns(200) {job: Job?{arn: str?, name: str?, type: str?, created: str(timestamp)?, status: str?, result: str?, started: str(timestamp)?, stopped: str(timestamp)?, counters: Counters?{total: int?, passed: int?, failed: int?, warned: int?, errored: int?, stopped: int?, skipped: int?}, message: str?, device: Device?{arn: str?, name: str?, manufacturer: str?, model: str?, modelId: str?, formFactor: str?, platform: str?, os: str?, cpu: CPU?{frequency: str?, architecture: str?, clock: num(f64)?}, resolution: Resolution?{width: int?, height: int?}, heapSize: int(i64)?, memory: int(i64)?, image: str?, carrier: str?, radio: str?, remoteAccessEnabled: bool?, remoteDebugEnabled: bool?, fleetType: str?, fleetName: str?, instances: [DeviceInstance]?, availability: str?}, instanceArn: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, videoEndpoint: str?, videoCapture: bool?}}\n\n@endpoint POST /\n@desc Ends a specified remote access session.\n@required {arn: str}\n@returns(200) {remoteAccessSession: RemoteAccessSession?{arn: str?, name: str?, created: str(timestamp)?, status: str?, result: str?, message: str?, started: str(timestamp)?, stopped: str(timestamp)?, device: Device?{arn: str?, name: str?, manufacturer: str?, model: str?, modelId: str?, formFactor: str?, platform: str?, os: str?, cpu: CPU?{frequency: str?, architecture: str?, clock: num(f64)?}, resolution: Resolution?{width: int?, height: int?}, heapSize: int(i64)?, memory: int(i64)?, image: str?, carrier: str?, radio: str?, remoteAccessEnabled: bool?, remoteDebugEnabled: bool?, fleetType: str?, fleetName: str?, instances: [DeviceInstance]?, availability: str?}, instanceArn: str?, remoteDebugEnabled: bool?, remoteRecordEnabled: bool?, remoteRecordAppArn: str?, hostAddress: str?, clientId: str?, billingMethod: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, endpoint: str?, deviceUdid: str?, interactionMode: str?, skipAppResign: bool?, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Initiates a stop request for the current test run. AWS Device Farm immediately stops the run on devices where tests have not started. You are not billed for these devices. On devices where tests have started executing, setup suite and teardown suite tests run to completion on those devices. You are billed for setup, teardown, and any tests that were in progress or already completed.\n@required {arn: str}\n@returns(200) {run: Run?{arn: str?, name: str?, type: str?, platform: str?, created: str(timestamp)?, status: str?, result: str?, started: str(timestamp)?, stopped: str(timestamp)?, counters: Counters?{total: int?, passed: int?, failed: int?, warned: int?, errored: int?, stopped: int?, skipped: int?}, message: str?, totalJobs: int?, completedJobs: int?, billingMethod: str?, deviceMinutes: DeviceMinutes?{total: num(f64)?, metered: num(f64)?, unmetered: num(f64)?}, networkProfile: NetworkProfile?{arn: str?, name: str?, description: str?, type: str?, uplinkBandwidthBits: int(i64)?, downlinkBandwidthBits: int(i64)?, uplinkDelayMs: int(i64)?, downlinkDelayMs: int(i64)?, uplinkJitterMs: int(i64)?, downlinkJitterMs: int(i64)?, uplinkLossPercent: int?, downlinkLossPercent: int?}, parsingResultUrl: str?, resultCode: str?, seed: int?, appUpload: str?, eventCount: int?, jobTimeoutMinutes: int?, devicePoolArn: str?, locale: str?, radios: Radios?{wifi: bool?, bluetooth: bool?, nfc: bool?, gps: bool?}, location: Location?{latitude: num(f64), longitude: num(f64)}, customerArtifactPaths: CustomerArtifactPaths?{iosPaths: [str]?, androidPaths: [str]?, deviceHostPaths: [str]?}, webUrl: str?, skipAppResign: bool?, testSpecArn: str?, deviceSelectionResult: DeviceSelectionResult?{filters: [DeviceFilter]?, matchedDevicesCount: int?, maxDevices: int?}, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Associates the specified tags to a resource with the specified resourceArn. If existing tags on a resource are not specified in the request parameters, they are not changed. When a resource is deleted, the tags associated with that resource are also deleted.\n@required {ResourceARN: str, Tags: [Tag]}\n\n@endpoint POST /\n@desc Deletes the specified tags from a resource.\n@required {ResourceARN: str, TagKeys: [str]}\n\n@endpoint POST /\n@desc Updates information about a private device instance.\n@required {arn: str}\n@optional {profileArn: str, labels: [str]}\n@returns(200) {deviceInstance: DeviceInstance?{arn: str?, deviceArn: str?, labels: [str]?, status: str?, udid: str?, instanceProfile: InstanceProfile?{arn: str?, packageCleanup: bool?, excludeAppPackagesFromCleanup: [str]?, rebootAfterUse: bool?, name: str?, description: str?}}}\n\n@endpoint POST /\n@desc Modifies the name, description, and rules in a device pool given the attributes and the pool ARN. Rule updates are all-or-nothing, meaning they can only be updated as a whole (or not at all).\n@required {arn: str}\n@optional {name: str, description: str, rules: [Rule], maxDevices: int, clearMaxDevices: bool}\n@returns(200) {devicePool: DevicePool?{arn: str?, name: str?, description: str?, type: str?, rules: [Rule]?, maxDevices: int?}}\n\n@endpoint POST /\n@desc Updates information about an existing private device instance profile.\n@required {arn: str}\n@optional {name: str, description: str, packageCleanup: bool, excludeAppPackagesFromCleanup: [str], rebootAfterUse: bool}\n@returns(200) {instanceProfile: InstanceProfile?{arn: str?, packageCleanup: bool?, excludeAppPackagesFromCleanup: [str]?, rebootAfterUse: bool?, name: str?, description: str?}}\n\n@endpoint POST /\n@desc Updates the network profile.\n@required {arn: str}\n@optional {name: str, description: str, type: str, uplinkBandwidthBits: int(i64), downlinkBandwidthBits: int(i64), uplinkDelayMs: int(i64), downlinkDelayMs: int(i64), uplinkJitterMs: int(i64), downlinkJitterMs: int(i64), uplinkLossPercent: int, downlinkLossPercent: int}\n@returns(200) {networkProfile: NetworkProfile?{arn: str?, name: str?, description: str?, type: str?, uplinkBandwidthBits: int(i64)?, downlinkBandwidthBits: int(i64)?, uplinkDelayMs: int(i64)?, downlinkDelayMs: int(i64)?, uplinkJitterMs: int(i64)?, downlinkJitterMs: int(i64)?, uplinkLossPercent: int?, downlinkLossPercent: int?}}\n\n@endpoint POST /\n@desc Modifies the specified project name, given the project ARN and a new name.\n@required {arn: str}\n@optional {name: str, defaultJobTimeoutMinutes: int, vpcConfig: VpcConfig}\n@returns(200) {project: Project?{arn: str?, name: str?, defaultJobTimeoutMinutes: int?, created: str(timestamp)?, vpcConfig: VpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}}}\n\n@endpoint POST /\n@desc Change details of a project.\n@required {projectArn: str}\n@optional {name: str, description: str, vpcConfig: TestGridVpcConfig}\n@returns(200) {testGridProject: TestGridProject?{arn: str?, name: str?, description: str?, vpcConfig: TestGridVpcConfig?{securityGroupIds: [str], subnetIds: [str], vpcId: str}, created: str(timestamp)?}}\n\n@endpoint POST /\n@desc Updates an uploaded test spec.\n@required {arn: str}\n@optional {name: str, contentType: str, editContent: bool}\n@returns(200) {upload: Upload?{arn: str?, name: str?, created: str(timestamp)?, type: str?, status: str?, url: str?, metadata: str?, contentType: str?, message: str?, category: str?}}\n\n@endpoint POST /\n@desc Updates information about an Amazon Virtual Private Cloud (VPC) endpoint configuration.\n@required {arn: str}\n@optional {vpceConfigurationName: str, vpceServiceName: str, serviceDnsName: str, vpceConfigurationDescription: str}\n@returns(200) {vpceConfiguration: VPCEConfiguration?{arn: str?, vpceConfigurationName: str?, vpceServiceName: str?, serviceDnsName: str?, vpceConfigurationDescription: str?}}\n\n@end\n"}