response = client.create_ota_update( otaUpdateId='string', description='string', targets=[ 'string', ], protocols=[ 'MQTT'|'HTTP', ], targetSelection='CONTINUOUS'|'SNAPSHOT', awsJobExecutionsRolloutConfig={ 'maximumPerMinute': 123, 'exponentialRate': { 'baseRatePerMinute': 123, 'incrementFactor': 123.0, 'rateIncreaseCriteria': { 'numberOfNotifiedThings': 123, 'numberOfSucceededThings': 123 } } }, awsJobPresignedUrlConfig={ 'expiresInSec': 123 }, awsJobAbortConfig={ 'abortCriteriaList': [ { 'failureType': 'FAILED'|'REJECTED'|'TIMED_OUT'|'ALL', 'action': 'CANCEL', 'thresholdPercentage': 123.0, 'minNumberOfExecutedThings': 123 }, ] }, awsJobTimeoutConfig={ 'inProgressTimeoutInMinutes': 123 }, files=[ { 'fileName': 'string', 'fileType': 123, 'fileVersion': 'string', 'fileLocation': { 'stream': { 'streamId': 'string', 'fileId': 123 }, 's3Location': { 'bucket': 'string', 'key': 'string', 'version': 'string' } }, 'codeSigning': { 'awsSignerJobId': 'string', 'startSigningJobParameter': { 'signingProfileParameter': { 'certificateArn': 'string', 'platform': 'string', 'certificatePathOnDevice': 'string' }, 'signingProfileName': 'string', 'destination': { 's3Destination': { 'bucket': 'string', 'prefix': 'string' } } }, 'customCodeSigning': { 'signature': { 'inlineDocument': b'bytes' }, 'certificateChain': { 'certificateName': 'string', 'inlineDocument': 'string' }, 'hashAlgorithm': 'string', 'signatureAlgorithm': 'string' } }, 'attributes': { 'string': 'string' } }, ], roleArn='string', additionalParameters={ 'string': 'string' }, tags=[ { 'Key': 'string', 'Value': 'string' }, ])