All Downloads are FREE. Search and download functionalities are using the official Maven repository.

commonMain.aws.sdk.kotlin.services.medicalimaging.MedicalImagingClient.kt Maven / Gradle / Ivy

There is a newer version: 1.3.35
Show newest version
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.medicalimaging

import aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider
import aws.sdk.kotlin.runtime.auth.credentials.internal.manage
import aws.sdk.kotlin.runtime.client.AwsSdkClientConfig
import aws.sdk.kotlin.runtime.config.AbstractAwsSdkClientFactory
import aws.sdk.kotlin.runtime.config.endpoints.resolveEndpointUrl
import aws.sdk.kotlin.runtime.config.profile.AwsProfile
import aws.sdk.kotlin.runtime.config.profile.AwsSharedConfig
import aws.sdk.kotlin.runtime.http.retries.AwsRetryPolicy
import aws.sdk.kotlin.services.medicalimaging.auth.DefaultMedicalImagingAuthSchemeProvider
import aws.sdk.kotlin.services.medicalimaging.auth.MedicalImagingAuthSchemeProvider
import aws.sdk.kotlin.services.medicalimaging.endpoints.DefaultMedicalImagingEndpointProvider
import aws.sdk.kotlin.services.medicalimaging.endpoints.MedicalImagingEndpointParameters
import aws.sdk.kotlin.services.medicalimaging.endpoints.MedicalImagingEndpointProvider
import aws.sdk.kotlin.services.medicalimaging.model.CopyImageSetRequest
import aws.sdk.kotlin.services.medicalimaging.model.CopyImageSetResponse
import aws.sdk.kotlin.services.medicalimaging.model.CreateDatastoreRequest
import aws.sdk.kotlin.services.medicalimaging.model.CreateDatastoreResponse
import aws.sdk.kotlin.services.medicalimaging.model.DeleteDatastoreRequest
import aws.sdk.kotlin.services.medicalimaging.model.DeleteDatastoreResponse
import aws.sdk.kotlin.services.medicalimaging.model.DeleteImageSetRequest
import aws.sdk.kotlin.services.medicalimaging.model.DeleteImageSetResponse
import aws.sdk.kotlin.services.medicalimaging.model.GetDatastoreRequest
import aws.sdk.kotlin.services.medicalimaging.model.GetDatastoreResponse
import aws.sdk.kotlin.services.medicalimaging.model.GetDicomImportJobRequest
import aws.sdk.kotlin.services.medicalimaging.model.GetDicomImportJobResponse
import aws.sdk.kotlin.services.medicalimaging.model.GetImageFrameRequest
import aws.sdk.kotlin.services.medicalimaging.model.GetImageFrameResponse
import aws.sdk.kotlin.services.medicalimaging.model.GetImageSetMetadataRequest
import aws.sdk.kotlin.services.medicalimaging.model.GetImageSetMetadataResponse
import aws.sdk.kotlin.services.medicalimaging.model.GetImageSetRequest
import aws.sdk.kotlin.services.medicalimaging.model.GetImageSetResponse
import aws.sdk.kotlin.services.medicalimaging.model.ListDatastoresRequest
import aws.sdk.kotlin.services.medicalimaging.model.ListDatastoresResponse
import aws.sdk.kotlin.services.medicalimaging.model.ListDicomImportJobsRequest
import aws.sdk.kotlin.services.medicalimaging.model.ListDicomImportJobsResponse
import aws.sdk.kotlin.services.medicalimaging.model.ListImageSetVersionsRequest
import aws.sdk.kotlin.services.medicalimaging.model.ListImageSetVersionsResponse
import aws.sdk.kotlin.services.medicalimaging.model.ListTagsForResourceRequest
import aws.sdk.kotlin.services.medicalimaging.model.ListTagsForResourceResponse
import aws.sdk.kotlin.services.medicalimaging.model.SearchImageSetsRequest
import aws.sdk.kotlin.services.medicalimaging.model.SearchImageSetsResponse
import aws.sdk.kotlin.services.medicalimaging.model.StartDicomImportJobRequest
import aws.sdk.kotlin.services.medicalimaging.model.StartDicomImportJobResponse
import aws.sdk.kotlin.services.medicalimaging.model.TagResourceRequest
import aws.sdk.kotlin.services.medicalimaging.model.TagResourceResponse
import aws.sdk.kotlin.services.medicalimaging.model.UntagResourceRequest
import aws.sdk.kotlin.services.medicalimaging.model.UntagResourceResponse
import aws.sdk.kotlin.services.medicalimaging.model.UpdateImageSetMetadataRequest
import aws.sdk.kotlin.services.medicalimaging.model.UpdateImageSetMetadataResponse
import aws.smithy.kotlin.runtime.auth.awscredentials.CredentialsProvider
import aws.smithy.kotlin.runtime.auth.awscredentials.CredentialsProviderConfig
import aws.smithy.kotlin.runtime.awsprotocol.ClockSkewInterceptor
import aws.smithy.kotlin.runtime.client.AbstractSdkClientBuilder
import aws.smithy.kotlin.runtime.client.AbstractSdkClientFactory
import aws.smithy.kotlin.runtime.client.IdempotencyTokenConfig
import aws.smithy.kotlin.runtime.client.IdempotencyTokenProvider
import aws.smithy.kotlin.runtime.client.LogMode
import aws.smithy.kotlin.runtime.client.RetryClientConfig
import aws.smithy.kotlin.runtime.client.RetryStrategyClientConfig
import aws.smithy.kotlin.runtime.client.RetryStrategyClientConfigImpl
import aws.smithy.kotlin.runtime.client.SdkClient
import aws.smithy.kotlin.runtime.client.SdkClientConfig
import aws.smithy.kotlin.runtime.http.auth.AuthScheme
import aws.smithy.kotlin.runtime.http.auth.HttpAuthConfig
import aws.smithy.kotlin.runtime.http.config.HttpClientConfig
import aws.smithy.kotlin.runtime.http.config.HttpEngineConfig
import aws.smithy.kotlin.runtime.http.engine.HttpClientEngine
import aws.smithy.kotlin.runtime.http.engine.HttpEngineConfigImpl
import aws.smithy.kotlin.runtime.http.interceptors.HttpInterceptor
import aws.smithy.kotlin.runtime.net.url.Url
import aws.smithy.kotlin.runtime.retries.RetryStrategy
import aws.smithy.kotlin.runtime.retries.policy.RetryPolicy
import aws.smithy.kotlin.runtime.telemetry.Global
import aws.smithy.kotlin.runtime.telemetry.TelemetryConfig
import aws.smithy.kotlin.runtime.telemetry.TelemetryProvider
import aws.smithy.kotlin.runtime.util.LazyAsyncValue
import kotlin.collections.List
import kotlin.jvm.JvmStatic


public const val ServiceId: String = "Medical Imaging"
public const val SdkVersion: String = "1.3.42"
public const val ServiceApiVersion: String = "2023-07-19"

/**
 * This is the *AWS HealthImaging API Reference*. AWS HealthImaging is a HIPAA eligible service that empowers healthcare providers, life science organizations, and their software partners to store, analyze, and share medical images in the cloud at petabyte scale. For an introduction to the service, see the *AWS HealthImaging Developer Guide*[](https://docs.aws.amazon.com/healthimaging/latest/devguide/what-is.html).
 *
 * We recommend using one of the AWS Software Development Kits (SDKs) for your programming language, as they take care of request authentication, serialization, and connection management. For more information, see [Tools to build on AWS](http://aws.amazon.com/developer/tools).
 *
 * The following sections list AWS HealthImaging API actions categorized according to functionality. Links are provided to actions within this Reference, along with links back to corresponding sections in the *AWS HealthImaging Developer Guide* where you can view tested code examples.
 *
 * **Data store actions**
 * + [CreateDatastore](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_CreateDatastore.html) – See [Creating a data store](https://docs.aws.amazon.com/healthimaging/latest/devguide/create-data-store.html).
 * + [GetDatastore](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetDatastore.html) – See [Getting data store properties](https://docs.aws.amazon.com/healthimaging/latest/devguide/get-data-store.html).
 * + [ListDatastores](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_ListDatastores.html) – See [Listing data stores](https://docs.aws.amazon.com/healthimaging/latest/devguide/list-data-stores.html).
 * + [DeleteDatastore](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_DeleteDatastore.html) – See [Deleting a data store](https://docs.aws.amazon.com/healthimaging/latest/devguide/delete-data-store.html).
 *
 * **Import job actions**
 * + [StartDICOMImportJob](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_StartDICOMImportJob.html) – See [Starting an import job](https://docs.aws.amazon.com/healthimaging/latest/devguide/start-dicom-import-job.html).
 * + [GetDICOMImportJob](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetDICOMImportJob.html) – See [Getting import job properties](https://docs.aws.amazon.com/healthimaging/latest/devguide/get-dicom-import-job.html).
 * + [ListDICOMImportJobs](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_ListDICOMImportJobs.html) – See [Listing import jobs](https://docs.aws.amazon.com/healthimaging/latest/devguide/list-dicom-import-jobs.html).
 *
 * **Image set access actions**
 * + [SearchImageSets](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_SearchImageSets.html) – See [Searching image sets](https://docs.aws.amazon.com/healthimaging/latest/devguide/search-image-sets.html).
 * + [GetImageSet](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetImageSet.html) – See [Getting image set properties](https://docs.aws.amazon.com/healthimaging/latest/devguide/get-image-set-properties.html).
 * + [GetImageSetMetadata](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetImageSetMetadata.html) – See [Getting image set metadata](https://docs.aws.amazon.com/healthimaging/latest/devguide/get-image-set-metadata.html).
 * + [GetImageFrame](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_GetImageFrame.html) – See [Getting image set pixel data](https://docs.aws.amazon.com/healthimaging/latest/devguide/get-image-frame.html).
 *
 * **Image set modification actions**
 * + [ListImageSetVersions](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_ListImageSetVersions.html) – See [Listing image set versions](https://docs.aws.amazon.com/healthimaging/latest/devguide/list-image-set-versions.html).
 * + [UpdateImageSetMetadata](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UpdateImageSetMetadata.html) – See [Updating image set metadata](https://docs.aws.amazon.com/healthimaging/latest/devguide/update-image-set-metadata.html).
 * + [CopyImageSet](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_CopyImageSet.html) – See [Copying an image set](https://docs.aws.amazon.com/healthimaging/latest/devguide/copy-image-set.html).
 * + [DeleteImageSet](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_DeleteImageSet.html) – See [Deleting an image set](https://docs.aws.amazon.com/healthimaging/latest/devguide/delete-image-set.html).
 *
 * **Tagging actions**
 * + [TagResource](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_TagResource.html) – See [Tagging a resource](https://docs.aws.amazon.com/healthimaging/latest/devguide/tag-resource.html).
 * + [ListTagsForResource](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_ListTagsForResource.html) – See [Listing tags for a resource](https://docs.aws.amazon.com/healthimaging/latest/devguide/list-tag-resource.html).
 * + [UntagResource](https://docs.aws.amazon.com/healthimaging/latest/APIReference/API_UntagResource.html) – See [Untagging a resource](https://docs.aws.amazon.com/healthimaging/latest/devguide/untag-resource.html).
 */
public interface MedicalImagingClient : SdkClient {
    /**
     * MedicalImagingClient's configuration
     */
    public override val config: Config

    public companion object : AbstractAwsSdkClientFactory()
     {
        @JvmStatic
        override fun builder(): Builder = Builder()

        override fun finalizeConfig(builder: Builder) {
            super.finalizeConfig(builder)
            builder.config.interceptors.add(0, ClockSkewInterceptor())
        }

        override suspend fun finalizeEnvironmentalConfig(builder: Builder, sharedConfig: LazyAsyncValue, activeProfile: LazyAsyncValue) {
            super.finalizeEnvironmentalConfig(builder, sharedConfig, activeProfile)
            builder.config.endpointUrl = builder.config.endpointUrl ?: resolveEndpointUrl(
                sharedConfig,
                "MedicalImaging",
                "MEDICAL_IMAGING",
                "medical_imaging",
            )
        }
    }

    public class Builder internal constructor(): AbstractSdkClientBuilder() {
        override val config: Config.Builder = Config.Builder()
        override fun newClient(config: Config): MedicalImagingClient = DefaultMedicalImagingClient(config)
    }

    public class Config private constructor(builder: Builder) : AwsSdkClientConfig, CredentialsProviderConfig, HttpAuthConfig, HttpClientConfig, HttpEngineConfig by builder.buildHttpEngineConfig(), IdempotencyTokenConfig, RetryClientConfig, RetryStrategyClientConfig by builder.buildRetryStrategyClientConfig(), SdkClientConfig, TelemetryConfig {
        override val clientName: String = builder.clientName
        override val region: String? = builder.region
        override val authSchemes: kotlin.collections.List = builder.authSchemes
        override val credentialsProvider: CredentialsProvider = builder.credentialsProvider ?: DefaultChainCredentialsProvider(httpClient = httpClient, region = region).manage()
        public val endpointProvider: MedicalImagingEndpointProvider = builder.endpointProvider ?: DefaultMedicalImagingEndpointProvider()
        public val endpointUrl: Url? = builder.endpointUrl
        override val idempotencyTokenProvider: IdempotencyTokenProvider = builder.idempotencyTokenProvider ?: IdempotencyTokenProvider.Default
        override val interceptors: kotlin.collections.List = builder.interceptors
        override val logMode: LogMode = builder.logMode ?: LogMode.Default
        override val retryPolicy: RetryPolicy = builder.retryPolicy ?: AwsRetryPolicy.Default
        override val telemetryProvider: TelemetryProvider = builder.telemetryProvider ?: TelemetryProvider.Global
        override val useDualStack: Boolean = builder.useDualStack ?: false
        override val useFips: Boolean = builder.useFips ?: false
        override val applicationId: String? = builder.applicationId
        public val authSchemeProvider: MedicalImagingAuthSchemeProvider = builder.authSchemeProvider ?: DefaultMedicalImagingAuthSchemeProvider()
        public companion object {
            public inline operator fun invoke(block: Builder.() -> kotlin.Unit): Config = Builder().apply(block).build()
        }

        public fun toBuilder(): Builder = Builder().apply {
            clientName = [email protected]
            region = [email protected]
            authSchemes = [email protected]
            credentialsProvider = [email protected]
            endpointProvider = [email protected]
            endpointUrl = [email protected]
            httpClient = [email protected]
            idempotencyTokenProvider = [email protected]
            interceptors = [email protected]()
            logMode = [email protected]
            retryPolicy = [email protected]
            retryStrategy = [email protected]
            telemetryProvider = [email protected]
            useDualStack = [email protected]
            useFips = [email protected]
            applicationId = [email protected]
            authSchemeProvider = [email protected]
        }

        public class Builder : AwsSdkClientConfig.Builder, CredentialsProviderConfig.Builder, HttpAuthConfig.Builder, HttpClientConfig.Builder, HttpEngineConfig.Builder by HttpEngineConfigImpl.BuilderImpl(), IdempotencyTokenConfig.Builder, RetryClientConfig.Builder, RetryStrategyClientConfig.Builder by RetryStrategyClientConfigImpl.BuilderImpl(), SdkClientConfig.Builder, TelemetryConfig.Builder {
            /**
             * A reader-friendly name for the client.
             */
            override var clientName: String = "Medical Imaging"

            /**
             * The AWS region (e.g. `us-west-2`) to make requests to. See about AWS
             * [global infrastructure](https://aws.amazon.com/about-aws/global-infrastructure/regions_az/) for more
             * information
             */
            override var region: String? = null

            /**
             * Register new or override default [AuthScheme]s configured for this client. By default, the set
             * of auth schemes configured comes from the service model. An auth scheme configured explicitly takes
             * precedence over the defaults and can be used to customize identity resolution and signing for specific
             * authentication schemes.
             */
            override var authSchemes: kotlin.collections.List = emptyList()

            /**
             * The AWS credentials provider to use for authenticating requests. If not provided a
             * [aws.sdk.kotlin.runtime.auth.credentials.DefaultChainCredentialsProvider] instance will be used.
             * NOTE: The caller is responsible for managing the lifetime of the provider when set. The SDK
             * client will not close it when the client is closed.
             */
            override var credentialsProvider: CredentialsProvider? = null

            /**
             * The endpoint provider used to determine where to make service requests. **This is an advanced config
             * option.**
             *
             * Endpoint resolution occurs as part of the workflow for every request made via the service client.
             *
             * The inputs to endpoint resolution are defined on a per-service basis (see [EndpointParameters]).
             */
            public var endpointProvider: MedicalImagingEndpointProvider? = null

            /**
             * A custom endpoint to route requests to. The endpoint set here is passed to the configured
             * [endpointProvider], which may inspect and modify it as needed.
             *
             * Setting a custom endpointUrl should generally be preferred to overriding the [endpointProvider] and is
             * the recommended way to route requests to development or preview instances of a service.
             *
             * **This is an advanced config option.**
             */
            public var endpointUrl: Url? = null

            /**
             * Override the default idempotency token generator. SDK clients will generate tokens for members
             * that represent idempotent tokens when not explicitly set by the caller using this generator.
             */
            override var idempotencyTokenProvider: IdempotencyTokenProvider? = null

            /**
             * Add an [aws.smithy.kotlin.runtime.client.Interceptor] that will have access to read and modify
             * the request and response objects as they are processed by the SDK.
             * Interceptors added using this method are executed in the order they are configured and are always
             * later than any added automatically by the SDK.
             */
            override var interceptors: kotlin.collections.MutableList = kotlin.collections.mutableListOf()

            /**
             * Configure events that will be logged. By default clients will not output
             * raw requests or responses. Use this setting to opt-in to additional debug logging.
             *
             * This can be used to configure logging of requests, responses, retries, etc of SDK clients.
             *
             * **NOTE**: Logging of raw requests or responses may leak sensitive information! It may also have
             * performance considerations when dumping the request/response body. This is primarily a tool for
             * debug purposes.
             */
            override var logMode: LogMode? = null

            /**
             * The policy to use for evaluating operation results and determining whether/how to retry.
             */
            override var retryPolicy: RetryPolicy? = null

            /**
             * The telemetry provider used to instrument the SDK operations with. By default, the global telemetry
             * provider will be used.
             */
            override var telemetryProvider: TelemetryProvider? = null

            /**
             *            Flag to toggle whether to use dual-stack endpoints when making requests.
             *            See [https://docs.aws.amazon.com/sdkref/latest/guide/feature-endpoints.html] for more information.
             * `          Disabled by default.
             */
            override var useDualStack: Boolean? = null

            /**
             *            Flag to toggle whether to use [FIPS](https://aws.amazon.com/compliance/fips/) endpoints when making requests.
             * `          Disabled by default.
             */
            override var useFips: Boolean? = null

            /**
             * An optional application specific identifier.
             * When set it will be appended to the User-Agent header of every request in the form of: `app/{applicationId}`.
             * When not explicitly set, the value will be loaded from the following locations:
             *
             * - JVM System Property: `aws.userAgentAppId`
             * - Environment variable: `AWS_SDK_UA_APP_ID`
             * - Shared configuration profile attribute: `sdk_ua_app_id`
             *
             * See [shared configuration settings](https://docs.aws.amazon.com/sdkref/latest/guide/settings-reference.html)
             * reference for more information on environment variables and shared config settings.
             */
            override var applicationId: String? = null

            /**
             * Configure the provider used to resolve the authentication scheme to use for a particular operation.
             */
            public var authSchemeProvider: MedicalImagingAuthSchemeProvider? = null

            override fun build(): Config = Config(this)
        }
    }

    /**
     * Copy an image set.
     */
    public suspend fun copyImageSet(input: CopyImageSetRequest): CopyImageSetResponse

    /**
     * Create a data store.
     */
    public suspend fun createDatastore(input: CreateDatastoreRequest): CreateDatastoreResponse

    /**
     * Delete a data store.
     *
     * Before a data store can be deleted, you must first delete all image sets within it.
     */
    public suspend fun deleteDatastore(input: DeleteDatastoreRequest): DeleteDatastoreResponse

    /**
     * Delete an image set.
     */
    public suspend fun deleteImageSet(input: DeleteImageSetRequest): DeleteImageSetResponse

    /**
     * Get data store properties.
     */
    public suspend fun getDatastore(input: GetDatastoreRequest): GetDatastoreResponse

    /**
     * Get the import job properties to learn more about the job or job progress.
     *
     * The `jobStatus` refers to the execution of the import job. Therefore, an import job can return a `jobStatus` as `COMPLETED` even if validation issues are discovered during the import process. If a `jobStatus` returns as `COMPLETED`, we still recommend you review the output manifests written to S3, as they provide details on the success or failure of individual P10 object imports.
     */
    public suspend fun getDicomImportJob(input: GetDicomImportJobRequest): GetDicomImportJobResponse

    /**
     * Get an image frame (pixel data) for an image set.
     */
    public suspend fun  getImageFrame(input: GetImageFrameRequest, block: suspend (GetImageFrameResponse) -> T): T

    /**
     * Get image set properties.
     */
    public suspend fun getImageSet(input: GetImageSetRequest): GetImageSetResponse

    /**
     * Get metadata attributes for an image set.
     */
    public suspend fun  getImageSetMetadata(input: GetImageSetMetadataRequest, block: suspend (GetImageSetMetadataResponse) -> T): T

    /**
     * List data stores.
     */
    public suspend fun listDatastores(input: ListDatastoresRequest = ListDatastoresRequest { }): ListDatastoresResponse

    /**
     * List import jobs created for a specific data store.
     */
    public suspend fun listDicomImportJobs(input: ListDicomImportJobsRequest): ListDicomImportJobsResponse

    /**
     * List image set versions.
     */
    public suspend fun listImageSetVersions(input: ListImageSetVersionsRequest): ListImageSetVersionsResponse

    /**
     * Lists all tags associated with a medical imaging resource.
     */
    public suspend fun listTagsForResource(input: ListTagsForResourceRequest): ListTagsForResourceResponse

    /**
     * Search image sets based on defined input attributes.
     *
     * `SearchImageSets` accepts a single search query parameter and returns a paginated response of all image sets that have the matching criteria. All date range queries must be input as `(lowerBound, upperBound)`.
     *
     * By default, `SearchImageSets` uses the `updatedAt` field for sorting in descending order from newest to oldest.
     */
    public suspend fun searchImageSets(input: SearchImageSetsRequest): SearchImageSetsResponse

    /**
     * Start importing bulk data into an `ACTIVE` data store. The import job imports DICOM P10 files found in the S3 prefix specified by the `inputS3Uri` parameter. The import job stores processing results in the file specified by the `outputS3Uri` parameter.
     */
    public suspend fun startDicomImportJob(input: StartDicomImportJobRequest): StartDicomImportJobResponse

    /**
     * Adds a user-specifed key and value tag to a medical imaging resource.
     */
    public suspend fun tagResource(input: TagResourceRequest): TagResourceResponse

    /**
     * Removes tags from a medical imaging resource.
     */
    public suspend fun untagResource(input: UntagResourceRequest): UntagResourceResponse

    /**
     * Update image set metadata attributes.
     */
    public suspend fun updateImageSetMetadata(input: UpdateImageSetMetadataRequest): UpdateImageSetMetadataResponse
}

/**
 * Create a copy of the client with one or more configuration values overridden.
 * This method allows the caller to perform scoped config overrides for one or more client operations.
 *
 * Any resources created on your behalf will be shared between clients, and will only be closed when ALL clients using them are closed.
 * If you provide a resource (e.g. [HttpClientEngine]) to the SDK, you are responsible for managing the lifetime of that resource.
 */
public fun MedicalImagingClient.withConfig(block: MedicalImagingClient.Config.Builder.() -> Unit): MedicalImagingClient {
    val newConfig = config.toBuilder().apply(block).build()
    return DefaultMedicalImagingClient(newConfig)
}

/**
 * Copy an image set.
 */
public suspend inline fun MedicalImagingClient.copyImageSet(crossinline block: CopyImageSetRequest.Builder.() -> Unit): CopyImageSetResponse = copyImageSet(CopyImageSetRequest.Builder().apply(block).build())

/**
 * Create a data store.
 */
public suspend inline fun MedicalImagingClient.createDatastore(crossinline block: CreateDatastoreRequest.Builder.() -> Unit): CreateDatastoreResponse = createDatastore(CreateDatastoreRequest.Builder().apply(block).build())

/**
 * Delete a data store.
 *
 * Before a data store can be deleted, you must first delete all image sets within it.
 */
public suspend inline fun MedicalImagingClient.deleteDatastore(crossinline block: DeleteDatastoreRequest.Builder.() -> Unit): DeleteDatastoreResponse = deleteDatastore(DeleteDatastoreRequest.Builder().apply(block).build())

/**
 * Delete an image set.
 */
public suspend inline fun MedicalImagingClient.deleteImageSet(crossinline block: DeleteImageSetRequest.Builder.() -> Unit): DeleteImageSetResponse = deleteImageSet(DeleteImageSetRequest.Builder().apply(block).build())

/**
 * Get data store properties.
 */
public suspend inline fun MedicalImagingClient.getDatastore(crossinline block: GetDatastoreRequest.Builder.() -> Unit): GetDatastoreResponse = getDatastore(GetDatastoreRequest.Builder().apply(block).build())

/**
 * Get the import job properties to learn more about the job or job progress.
 *
 * The `jobStatus` refers to the execution of the import job. Therefore, an import job can return a `jobStatus` as `COMPLETED` even if validation issues are discovered during the import process. If a `jobStatus` returns as `COMPLETED`, we still recommend you review the output manifests written to S3, as they provide details on the success or failure of individual P10 object imports.
 */
public suspend inline fun MedicalImagingClient.getDicomImportJob(crossinline block: GetDicomImportJobRequest.Builder.() -> Unit): GetDicomImportJobResponse = getDicomImportJob(GetDicomImportJobRequest.Builder().apply(block).build())

/**
 * Get image set properties.
 */
public suspend inline fun MedicalImagingClient.getImageSet(crossinline block: GetImageSetRequest.Builder.() -> Unit): GetImageSetResponse = getImageSet(GetImageSetRequest.Builder().apply(block).build())

/**
 * List data stores.
 */
public suspend inline fun MedicalImagingClient.listDatastores(crossinline block: ListDatastoresRequest.Builder.() -> Unit): ListDatastoresResponse = listDatastores(ListDatastoresRequest.Builder().apply(block).build())

/**
 * List import jobs created for a specific data store.
 */
public suspend inline fun MedicalImagingClient.listDicomImportJobs(crossinline block: ListDicomImportJobsRequest.Builder.() -> Unit): ListDicomImportJobsResponse = listDicomImportJobs(ListDicomImportJobsRequest.Builder().apply(block).build())

/**
 * List image set versions.
 */
public suspend inline fun MedicalImagingClient.listImageSetVersions(crossinline block: ListImageSetVersionsRequest.Builder.() -> Unit): ListImageSetVersionsResponse = listImageSetVersions(ListImageSetVersionsRequest.Builder().apply(block).build())

/**
 * Lists all tags associated with a medical imaging resource.
 */
public suspend inline fun MedicalImagingClient.listTagsForResource(crossinline block: ListTagsForResourceRequest.Builder.() -> Unit): ListTagsForResourceResponse = listTagsForResource(ListTagsForResourceRequest.Builder().apply(block).build())

/**
 * Search image sets based on defined input attributes.
 *
 * `SearchImageSets` accepts a single search query parameter and returns a paginated response of all image sets that have the matching criteria. All date range queries must be input as `(lowerBound, upperBound)`.
 *
 * By default, `SearchImageSets` uses the `updatedAt` field for sorting in descending order from newest to oldest.
 */
public suspend inline fun MedicalImagingClient.searchImageSets(crossinline block: SearchImageSetsRequest.Builder.() -> Unit): SearchImageSetsResponse = searchImageSets(SearchImageSetsRequest.Builder().apply(block).build())

/**
 * Start importing bulk data into an `ACTIVE` data store. The import job imports DICOM P10 files found in the S3 prefix specified by the `inputS3Uri` parameter. The import job stores processing results in the file specified by the `outputS3Uri` parameter.
 */
public suspend inline fun MedicalImagingClient.startDicomImportJob(crossinline block: StartDicomImportJobRequest.Builder.() -> Unit): StartDicomImportJobResponse = startDicomImportJob(StartDicomImportJobRequest.Builder().apply(block).build())

/**
 * Adds a user-specifed key and value tag to a medical imaging resource.
 */
public suspend inline fun MedicalImagingClient.tagResource(crossinline block: TagResourceRequest.Builder.() -> Unit): TagResourceResponse = tagResource(TagResourceRequest.Builder().apply(block).build())

/**
 * Removes tags from a medical imaging resource.
 */
public suspend inline fun MedicalImagingClient.untagResource(crossinline block: UntagResourceRequest.Builder.() -> Unit): UntagResourceResponse = untagResource(UntagResourceRequest.Builder().apply(block).build())

/**
 * Update image set metadata attributes.
 */
public suspend inline fun MedicalImagingClient.updateImageSetMetadata(crossinline block: UpdateImageSetMetadataRequest.Builder.() -> Unit): UpdateImageSetMetadataResponse = updateImageSetMetadata(UpdateImageSetMetadataRequest.Builder().apply(block).build())




© 2015 - 2024 Weber Informatics LLC | Privacy Policy