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

commonMain.aws.sdk.kotlin.services.iotfleetwise.IotFleetWiseClient.kt Maven / Gradle / Ivy

The newest version!
// Code generated by smithy-kotlin-codegen. DO NOT EDIT!

package aws.sdk.kotlin.services.iotfleetwise

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.iotfleetwise.auth.DefaultIotFleetWiseAuthSchemeProvider
import aws.sdk.kotlin.services.iotfleetwise.auth.IotFleetWiseAuthSchemeProvider
import aws.sdk.kotlin.services.iotfleetwise.endpoints.DefaultIotFleetWiseEndpointProvider
import aws.sdk.kotlin.services.iotfleetwise.endpoints.IotFleetWiseEndpointParameters
import aws.sdk.kotlin.services.iotfleetwise.endpoints.IotFleetWiseEndpointProvider
import aws.sdk.kotlin.services.iotfleetwise.model.AssociateVehicleFleetRequest
import aws.sdk.kotlin.services.iotfleetwise.model.AssociateVehicleFleetResponse
import aws.sdk.kotlin.services.iotfleetwise.model.BatchCreateVehicleRequest
import aws.sdk.kotlin.services.iotfleetwise.model.BatchCreateVehicleResponse
import aws.sdk.kotlin.services.iotfleetwise.model.BatchUpdateVehicleRequest
import aws.sdk.kotlin.services.iotfleetwise.model.BatchUpdateVehicleResponse
import aws.sdk.kotlin.services.iotfleetwise.model.CreateCampaignRequest
import aws.sdk.kotlin.services.iotfleetwise.model.CreateCampaignResponse
import aws.sdk.kotlin.services.iotfleetwise.model.CreateDecoderManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.CreateDecoderManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.CreateFleetRequest
import aws.sdk.kotlin.services.iotfleetwise.model.CreateFleetResponse
import aws.sdk.kotlin.services.iotfleetwise.model.CreateModelManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.CreateModelManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.CreateSignalCatalogRequest
import aws.sdk.kotlin.services.iotfleetwise.model.CreateSignalCatalogResponse
import aws.sdk.kotlin.services.iotfleetwise.model.CreateVehicleRequest
import aws.sdk.kotlin.services.iotfleetwise.model.CreateVehicleResponse
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteCampaignRequest
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteCampaignResponse
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteDecoderManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteDecoderManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteFleetRequest
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteFleetResponse
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteModelManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteModelManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteSignalCatalogRequest
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteSignalCatalogResponse
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteVehicleRequest
import aws.sdk.kotlin.services.iotfleetwise.model.DeleteVehicleResponse
import aws.sdk.kotlin.services.iotfleetwise.model.DisassociateVehicleFleetRequest
import aws.sdk.kotlin.services.iotfleetwise.model.DisassociateVehicleFleetResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetCampaignRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetCampaignResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetDecoderManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetDecoderManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetEncryptionConfigurationRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetEncryptionConfigurationResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetFleetRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetFleetResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetLoggingOptionsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetLoggingOptionsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetModelManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetModelManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetRegisterAccountStatusRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetRegisterAccountStatusResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetSignalCatalogRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetSignalCatalogResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetVehicleRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetVehicleResponse
import aws.sdk.kotlin.services.iotfleetwise.model.GetVehicleStatusRequest
import aws.sdk.kotlin.services.iotfleetwise.model.GetVehicleStatusResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ImportDecoderManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ImportDecoderManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ImportSignalCatalogRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ImportSignalCatalogResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListCampaignsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListCampaignsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListDecoderManifestNetworkInterfacesRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListDecoderManifestNetworkInterfacesResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListDecoderManifestSignalsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListDecoderManifestSignalsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListDecoderManifestsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListDecoderManifestsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListFleetsForVehicleRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListFleetsForVehicleResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListFleetsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListFleetsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListModelManifestNodesRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListModelManifestNodesResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListModelManifestsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListModelManifestsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListSignalCatalogNodesRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListSignalCatalogNodesResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListSignalCatalogsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListSignalCatalogsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListTagsForResourceRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListTagsForResourceResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListVehiclesInFleetRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListVehiclesInFleetResponse
import aws.sdk.kotlin.services.iotfleetwise.model.ListVehiclesRequest
import aws.sdk.kotlin.services.iotfleetwise.model.ListVehiclesResponse
import aws.sdk.kotlin.services.iotfleetwise.model.PutEncryptionConfigurationRequest
import aws.sdk.kotlin.services.iotfleetwise.model.PutEncryptionConfigurationResponse
import aws.sdk.kotlin.services.iotfleetwise.model.PutLoggingOptionsRequest
import aws.sdk.kotlin.services.iotfleetwise.model.PutLoggingOptionsResponse
import aws.sdk.kotlin.services.iotfleetwise.model.RegisterAccountRequest
import aws.sdk.kotlin.services.iotfleetwise.model.RegisterAccountResponse
import aws.sdk.kotlin.services.iotfleetwise.model.TagResourceRequest
import aws.sdk.kotlin.services.iotfleetwise.model.TagResourceResponse
import aws.sdk.kotlin.services.iotfleetwise.model.UntagResourceRequest
import aws.sdk.kotlin.services.iotfleetwise.model.UntagResourceResponse
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateCampaignRequest
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateCampaignResponse
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateDecoderManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateDecoderManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateFleetRequest
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateFleetResponse
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateModelManifestRequest
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateModelManifestResponse
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateSignalCatalogRequest
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateSignalCatalogResponse
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateVehicleRequest
import aws.sdk.kotlin.services.iotfleetwise.model.UpdateVehicleResponse
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.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 = "IoTFleetWise"
public const val SdkVersion: String = "1.3.76"
public const val ServiceApiVersion: String = "2021-06-17"

/**
 * Amazon Web Services IoT FleetWise is a fully managed service that you can use to collect, model, and transfer vehicle data to the Amazon Web Services cloud at scale. With Amazon Web Services IoT FleetWise, you can standardize all of your vehicle data models, independent of the in-vehicle communication architecture, and define data collection rules to transfer only high-value data to the cloud.
 *
 * For more information, see [What is Amazon Web Services IoT FleetWise?](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public interface IotFleetWiseClient : SdkClient {
    /**
     * IotFleetWiseClient'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,
                "IotFleetWise",
                "IOTFLEETWISE",
                "iotfleetwise",
            )
        }
    }

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

    public class Config private constructor(builder: Builder) : AwsSdkClientConfig, CredentialsProviderConfig, HttpAuthConfig, HttpClientConfig, HttpEngineConfig by builder.buildHttpEngineConfig(), 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: IotFleetWiseEndpointProvider = builder.endpointProvider ?: DefaultIotFleetWiseEndpointProvider()
        public val endpointUrl: Url? = builder.endpointUrl
        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: IotFleetWiseAuthSchemeProvider = builder.authSchemeProvider ?: DefaultIotFleetWiseAuthSchemeProvider()
        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]
            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(), RetryClientConfig.Builder, RetryStrategyClientConfig.Builder by RetryStrategyClientConfigImpl.BuilderImpl(), SdkClientConfig.Builder, TelemetryConfig.Builder {
            /**
             * A reader-friendly name for the client.
             */
            override var clientName: String = "IoTFleetWise"

            /**
             * 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: IotFleetWiseEndpointProvider? = 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

            /**
             * 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: IotFleetWiseAuthSchemeProvider? = null

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

    /**
     * Adds, or associates, a vehicle with a fleet.
     */
    public suspend fun associateVehicleFleet(input: AssociateVehicleFleetRequest): AssociateVehicleFleetResponse

    /**
     * Creates a group, or batch, of vehicles.
     *
     *  You must specify a decoder manifest and a vehicle model (model manifest) for each vehicle.
     *
     * For more information, see [Create multiple vehicles (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicles-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     */
    public suspend fun batchCreateVehicle(input: BatchCreateVehicleRequest): BatchCreateVehicleResponse

    /**
     * Updates a group, or batch, of vehicles.
     *
     *  You must specify a decoder manifest and a vehicle model (model manifest) for each vehicle.
     *
     * For more information, see [Update multiple vehicles (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/update-vehicles-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     */
    public suspend fun batchUpdateVehicle(input: BatchUpdateVehicleRequest): BatchUpdateVehicleResponse

    /**
     * Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software running in vehicles uses campaigns to decide how to collect and transfer data to the cloud. You create campaigns in the cloud. After you or your team approve campaigns, Amazon Web Services IoT FleetWise automatically deploys them to vehicles.
     *
     * For more information, see [Collect and transfer data with campaigns](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     */
    public suspend fun createCampaign(input: CreateCampaignRequest): CreateCampaignResponse

    /**
     * Creates the decoder manifest associated with a model manifest. To create a decoder manifest, the following must be true:
     * + Every signal decoder has a unique name.
     * + Each signal decoder is associated with a network interface.
     * + Each network interface has a unique ID.
     * + The signal decoders are specified in the model manifest.
     */
    public suspend fun createDecoderManifest(input: CreateDecoderManifestRequest): CreateDecoderManifestResponse

    /**
     * Creates a fleet that represents a group of vehicles.
     *
     * You must create both a signal catalog and vehicles before you can create a fleet.
     *
     * For more information, see [Fleets](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleets.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     */
    public suspend fun createFleet(input: CreateFleetRequest): CreateFleetResponse

    /**
     * Creates a vehicle model (model manifest) that specifies signals (attributes, branches, sensors, and actuators).
     *
     * For more information, see [Vehicle models](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/vehicle-models.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     */
    public suspend fun createModelManifest(input: CreateModelManifestRequest): CreateModelManifestResponse

    /**
     * Creates a collection of standardized signals that can be reused to create vehicle models.
     */
    public suspend fun createSignalCatalog(input: CreateSignalCatalogRequest): CreateSignalCatalogResponse

    /**
     * Creates a vehicle, which is an instance of a vehicle model (model manifest). Vehicles created from the same vehicle model consist of the same signals inherited from the vehicle model.
     *
     *  If you have an existing Amazon Web Services IoT thing, you can use Amazon Web Services IoT FleetWise to create a vehicle and collect data from your thing.
     *
     * For more information, see [Create a vehicle (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicle-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     */
    public suspend fun createVehicle(input: CreateVehicleRequest): CreateVehicleResponse

    /**
     * Deletes a data collection campaign. Deleting a campaign suspends all data collection and removes it from any vehicles.
     */
    public suspend fun deleteCampaign(input: DeleteCampaignRequest): DeleteCampaignResponse

    /**
     * Deletes a decoder manifest. You can't delete a decoder manifest if it has vehicles associated with it.
     *
     * If the decoder manifest is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
     */
    public suspend fun deleteDecoderManifest(input: DeleteDecoderManifestRequest): DeleteDecoderManifestResponse

    /**
     * Deletes a fleet. Before you delete a fleet, all vehicles must be dissociated from the fleet. For more information, see [Delete a fleet (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/delete-fleet-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     *
     * If the fleet is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
     */
    public suspend fun deleteFleet(input: DeleteFleetRequest): DeleteFleetResponse

    /**
     * Deletes a vehicle model (model manifest).
     *
     * If the vehicle model is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
     */
    public suspend fun deleteModelManifest(input: DeleteModelManifestRequest): DeleteModelManifestResponse

    /**
     * Deletes a signal catalog.
     *
     * If the signal catalog is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
     */
    public suspend fun deleteSignalCatalog(input: DeleteSignalCatalogRequest): DeleteSignalCatalogResponse

    /**
     * Deletes a vehicle and removes it from any campaigns.
     *
     * If the vehicle is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
     */
    public suspend fun deleteVehicle(input: DeleteVehicleRequest): DeleteVehicleResponse

    /**
     * Removes, or disassociates, a vehicle from a fleet. Disassociating a vehicle from a fleet doesn't delete the vehicle.
     *
     * If the vehicle is successfully dissociated from a fleet, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
     */
    public suspend fun disassociateVehicleFleet(input: DisassociateVehicleFleetRequest): DisassociateVehicleFleetResponse

    /**
     * Retrieves information about a campaign.
     */
    public suspend fun getCampaign(input: GetCampaignRequest): GetCampaignResponse

    /**
     * Retrieves information about a created decoder manifest.
     */
    public suspend fun getDecoderManifest(input: GetDecoderManifestRequest): GetDecoderManifestResponse

    /**
     * Retrieves the encryption configuration for resources and data in Amazon Web Services IoT FleetWise.
     */
    public suspend fun getEncryptionConfiguration(input: GetEncryptionConfigurationRequest = GetEncryptionConfigurationRequest { }): GetEncryptionConfigurationResponse

    /**
     * Retrieves information about a fleet.
     */
    public suspend fun getFleet(input: GetFleetRequest): GetFleetResponse

    /**
     * Retrieves the logging options.
     */
    public suspend fun getLoggingOptions(input: GetLoggingOptionsRequest = GetLoggingOptionsRequest { }): GetLoggingOptionsResponse

    /**
     * Retrieves information about a vehicle model (model manifest).
     */
    public suspend fun getModelManifest(input: GetModelManifestRequest): GetModelManifestResponse

    /**
     * Retrieves information about the status of registering your Amazon Web Services account, IAM, and Amazon Timestream resources so that Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud.
     *
     * For more information, including step-by-step procedures, see [Setting up Amazon Web Services IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html).
     *
     * This API operation doesn't require input parameters.
     */
    public suspend fun getRegisterAccountStatus(input: GetRegisterAccountStatusRequest = GetRegisterAccountStatusRequest { }): GetRegisterAccountStatusResponse

    /**
     * Retrieves information about a signal catalog.
     */
    public suspend fun getSignalCatalog(input: GetSignalCatalogRequest): GetSignalCatalogResponse

    /**
     * Retrieves information about a vehicle.
     */
    public suspend fun getVehicle(input: GetVehicleRequest): GetVehicleResponse

    /**
     * Retrieves information about the status of a vehicle with any associated campaigns.
     */
    public suspend fun getVehicleStatus(input: GetVehicleStatusRequest): GetVehicleStatusResponse

    /**
     * Creates a decoder manifest using your existing CAN DBC file from your local device.
     */
    public suspend fun importDecoderManifest(input: ImportDecoderManifestRequest): ImportDecoderManifestResponse

    /**
     * Creates a signal catalog using your existing VSS formatted content from your local device.
     */
    public suspend fun importSignalCatalog(input: ImportSignalCatalogRequest): ImportSignalCatalogResponse

    /**
     * Lists information about created campaigns.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listCampaigns(input: ListCampaignsRequest = ListCampaignsRequest { }): ListCampaignsResponse

    /**
     * Lists the network interfaces specified in a decoder manifest.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listDecoderManifestNetworkInterfaces(input: ListDecoderManifestNetworkInterfacesRequest): ListDecoderManifestNetworkInterfacesResponse

    /**
     * A list of information about signal decoders specified in a decoder manifest.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listDecoderManifestSignals(input: ListDecoderManifestSignalsRequest): ListDecoderManifestSignalsResponse

    /**
     * Lists decoder manifests.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listDecoderManifests(input: ListDecoderManifestsRequest = ListDecoderManifestsRequest { }): ListDecoderManifestsResponse

    /**
     * Retrieves information for each created fleet in an Amazon Web Services account.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listFleets(input: ListFleetsRequest = ListFleetsRequest { }): ListFleetsResponse

    /**
     * Retrieves a list of IDs for all fleets that the vehicle is associated with.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listFleetsForVehicle(input: ListFleetsForVehicleRequest): ListFleetsForVehicleResponse

    /**
     * Lists information about nodes specified in a vehicle model (model manifest).
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listModelManifestNodes(input: ListModelManifestNodesRequest): ListModelManifestNodesResponse

    /**
     * Retrieves a list of vehicle models (model manifests).
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listModelManifests(input: ListModelManifestsRequest = ListModelManifestsRequest { }): ListModelManifestsResponse

    /**
     * Lists of information about the signals (nodes) specified in a signal catalog.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listSignalCatalogNodes(input: ListSignalCatalogNodesRequest): ListSignalCatalogNodesResponse

    /**
     * Lists all the created signal catalogs in an Amazon Web Services account.
     *
     * You can use to list information about each signal (node) specified in a signal catalog.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listSignalCatalogs(input: ListSignalCatalogsRequest = ListSignalCatalogsRequest { }): ListSignalCatalogsResponse

    /**
     * Lists the tags (metadata) you have assigned to the resource.
     */
    public suspend fun listTagsForResource(input: ListTagsForResourceRequest): ListTagsForResourceResponse

    /**
     * Retrieves a list of summaries of created vehicles.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listVehicles(input: ListVehiclesRequest = ListVehiclesRequest { }): ListVehiclesResponse

    /**
     * Retrieves a list of summaries of all vehicles associated with a fleet.
     *
     * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
     */
    public suspend fun listVehiclesInFleet(input: ListVehiclesInFleetRequest): ListVehiclesInFleetResponse

    /**
     * Creates or updates the encryption configuration. Amazon Web Services IoT FleetWise can encrypt your data and resources using an Amazon Web Services managed key. Or, you can use a KMS key that you own and manage. For more information, see [Data encryption](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/data-encryption.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
     */
    public suspend fun putEncryptionConfiguration(input: PutEncryptionConfigurationRequest): PutEncryptionConfigurationResponse

    /**
     * Creates or updates the logging option.
     */
    public suspend fun putLoggingOptions(input: PutLoggingOptionsRequest): PutLoggingOptionsResponse

    /**
     * This API operation contains deprecated parameters. Register your account again without the Timestream resources parameter so that Amazon Web Services IoT FleetWise can remove the Timestream metadata stored. You should then pass the data destination into the [CreateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateCampaign.html) API operation.
     *
     * You must delete any existing campaigns that include an empty data destination before you register your account again. For more information, see the [DeleteCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_DeleteCampaign.html) API operation.
     *
     * If you want to delete the Timestream inline policy from the service-linked role, such as to mitigate an overly permissive policy, you must first delete any existing campaigns. Then delete the service-linked role and register your account again to enable CloudWatch metrics. For more information, see [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) in the *Identity and Access Management API Reference*.
     *
     * Registers your Amazon Web Services account, IAM, and Amazon Timestream resources so Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud. For more information, including step-by-step procedures, see [Setting up Amazon Web Services IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html).
     *
     * An Amazon Web Services account is **not** the same thing as a "user." An [Amazon Web Services user](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-identity-users) is an identity that you create using Identity and Access Management (IAM) and takes the form of either an [IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) or an [IAM role, both with credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). A single Amazon Web Services account can, and typically does, contain many users and roles.
     */
    public suspend fun registerAccount(input: RegisterAccountRequest = RegisterAccountRequest { }): RegisterAccountResponse

    /**
     * Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource.
     */
    public suspend fun tagResource(input: TagResourceRequest): TagResourceResponse

    /**
     * Removes the given tags (metadata) from the resource.
     */
    public suspend fun untagResource(input: UntagResourceRequest): UntagResourceResponse

    /**
     * Updates a campaign.
     */
    public suspend fun updateCampaign(input: UpdateCampaignRequest): UpdateCampaignResponse

    /**
     * Updates a decoder manifest.
     *
     * A decoder manifest can only be updated when the status is `DRAFT`. Only `ACTIVE` decoder manifests can be associated with vehicles.
     */
    public suspend fun updateDecoderManifest(input: UpdateDecoderManifestRequest): UpdateDecoderManifestResponse

    /**
     * Updates the description of an existing fleet.
     *
     * If the fleet is successfully updated, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty HTTP body.
     */
    public suspend fun updateFleet(input: UpdateFleetRequest): UpdateFleetResponse

    /**
     * Updates a vehicle model (model manifest). If created vehicles are associated with a vehicle model, it can't be updated.
     */
    public suspend fun updateModelManifest(input: UpdateModelManifestRequest): UpdateModelManifestResponse

    /**
     * Updates a signal catalog.
     */
    public suspend fun updateSignalCatalog(input: UpdateSignalCatalogRequest): UpdateSignalCatalogResponse

    /**
     * Updates a vehicle.
     */
    public suspend fun updateVehicle(input: UpdateVehicleRequest): UpdateVehicleResponse
}

/**
 * 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 IotFleetWiseClient.withConfig(block: IotFleetWiseClient.Config.Builder.() -> Unit): IotFleetWiseClient {
    val newConfig = config.toBuilder().apply(block).build()
    return DefaultIotFleetWiseClient(newConfig)
}

/**
 * Adds, or associates, a vehicle with a fleet.
 */
public suspend inline fun IotFleetWiseClient.associateVehicleFleet(crossinline block: AssociateVehicleFleetRequest.Builder.() -> Unit): AssociateVehicleFleetResponse = associateVehicleFleet(AssociateVehicleFleetRequest.Builder().apply(block).build())

/**
 * Creates a group, or batch, of vehicles.
 *
 *  You must specify a decoder manifest and a vehicle model (model manifest) for each vehicle.
 *
 * For more information, see [Create multiple vehicles (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicles-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public suspend inline fun IotFleetWiseClient.batchCreateVehicle(crossinline block: BatchCreateVehicleRequest.Builder.() -> Unit): BatchCreateVehicleResponse = batchCreateVehicle(BatchCreateVehicleRequest.Builder().apply(block).build())

/**
 * Updates a group, or batch, of vehicles.
 *
 *  You must specify a decoder manifest and a vehicle model (model manifest) for each vehicle.
 *
 * For more information, see [Update multiple vehicles (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/update-vehicles-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public suspend inline fun IotFleetWiseClient.batchUpdateVehicle(crossinline block: BatchUpdateVehicleRequest.Builder.() -> Unit): BatchUpdateVehicleResponse = batchUpdateVehicle(BatchUpdateVehicleRequest.Builder().apply(block).build())

/**
 * Creates an orchestration of data collection rules. The Amazon Web Services IoT FleetWise Edge Agent software running in vehicles uses campaigns to decide how to collect and transfer data to the cloud. You create campaigns in the cloud. After you or your team approve campaigns, Amazon Web Services IoT FleetWise automatically deploys them to vehicles.
 *
 * For more information, see [Collect and transfer data with campaigns](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/campaigns.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public suspend inline fun IotFleetWiseClient.createCampaign(crossinline block: CreateCampaignRequest.Builder.() -> Unit): CreateCampaignResponse = createCampaign(CreateCampaignRequest.Builder().apply(block).build())

/**
 * Creates the decoder manifest associated with a model manifest. To create a decoder manifest, the following must be true:
 * + Every signal decoder has a unique name.
 * + Each signal decoder is associated with a network interface.
 * + Each network interface has a unique ID.
 * + The signal decoders are specified in the model manifest.
 */
public suspend inline fun IotFleetWiseClient.createDecoderManifest(crossinline block: CreateDecoderManifestRequest.Builder.() -> Unit): CreateDecoderManifestResponse = createDecoderManifest(CreateDecoderManifestRequest.Builder().apply(block).build())

/**
 * Creates a fleet that represents a group of vehicles.
 *
 * You must create both a signal catalog and vehicles before you can create a fleet.
 *
 * For more information, see [Fleets](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/fleets.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public suspend inline fun IotFleetWiseClient.createFleet(crossinline block: CreateFleetRequest.Builder.() -> Unit): CreateFleetResponse = createFleet(CreateFleetRequest.Builder().apply(block).build())

/**
 * Creates a vehicle model (model manifest) that specifies signals (attributes, branches, sensors, and actuators).
 *
 * For more information, see [Vehicle models](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/vehicle-models.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public suspend inline fun IotFleetWiseClient.createModelManifest(crossinline block: CreateModelManifestRequest.Builder.() -> Unit): CreateModelManifestResponse = createModelManifest(CreateModelManifestRequest.Builder().apply(block).build())

/**
 * Creates a collection of standardized signals that can be reused to create vehicle models.
 */
public suspend inline fun IotFleetWiseClient.createSignalCatalog(crossinline block: CreateSignalCatalogRequest.Builder.() -> Unit): CreateSignalCatalogResponse = createSignalCatalog(CreateSignalCatalogRequest.Builder().apply(block).build())

/**
 * Creates a vehicle, which is an instance of a vehicle model (model manifest). Vehicles created from the same vehicle model consist of the same signals inherited from the vehicle model.
 *
 *  If you have an existing Amazon Web Services IoT thing, you can use Amazon Web Services IoT FleetWise to create a vehicle and collect data from your thing.
 *
 * For more information, see [Create a vehicle (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/create-vehicle-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public suspend inline fun IotFleetWiseClient.createVehicle(crossinline block: CreateVehicleRequest.Builder.() -> Unit): CreateVehicleResponse = createVehicle(CreateVehicleRequest.Builder().apply(block).build())

/**
 * Deletes a data collection campaign. Deleting a campaign suspends all data collection and removes it from any vehicles.
 */
public suspend inline fun IotFleetWiseClient.deleteCampaign(crossinline block: DeleteCampaignRequest.Builder.() -> Unit): DeleteCampaignResponse = deleteCampaign(DeleteCampaignRequest.Builder().apply(block).build())

/**
 * Deletes a decoder manifest. You can't delete a decoder manifest if it has vehicles associated with it.
 *
 * If the decoder manifest is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
 */
public suspend inline fun IotFleetWiseClient.deleteDecoderManifest(crossinline block: DeleteDecoderManifestRequest.Builder.() -> Unit): DeleteDecoderManifestResponse = deleteDecoderManifest(DeleteDecoderManifestRequest.Builder().apply(block).build())

/**
 * Deletes a fleet. Before you delete a fleet, all vehicles must be dissociated from the fleet. For more information, see [Delete a fleet (AWS CLI)](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/delete-fleet-cli.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 *
 * If the fleet is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
 */
public suspend inline fun IotFleetWiseClient.deleteFleet(crossinline block: DeleteFleetRequest.Builder.() -> Unit): DeleteFleetResponse = deleteFleet(DeleteFleetRequest.Builder().apply(block).build())

/**
 * Deletes a vehicle model (model manifest).
 *
 * If the vehicle model is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
 */
public suspend inline fun IotFleetWiseClient.deleteModelManifest(crossinline block: DeleteModelManifestRequest.Builder.() -> Unit): DeleteModelManifestResponse = deleteModelManifest(DeleteModelManifestRequest.Builder().apply(block).build())

/**
 * Deletes a signal catalog.
 *
 * If the signal catalog is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
 */
public suspend inline fun IotFleetWiseClient.deleteSignalCatalog(crossinline block: DeleteSignalCatalogRequest.Builder.() -> Unit): DeleteSignalCatalogResponse = deleteSignalCatalog(DeleteSignalCatalogRequest.Builder().apply(block).build())

/**
 * Deletes a vehicle and removes it from any campaigns.
 *
 * If the vehicle is successfully deleted, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
 */
public suspend inline fun IotFleetWiseClient.deleteVehicle(crossinline block: DeleteVehicleRequest.Builder.() -> Unit): DeleteVehicleResponse = deleteVehicle(DeleteVehicleRequest.Builder().apply(block).build())

/**
 * Removes, or disassociates, a vehicle from a fleet. Disassociating a vehicle from a fleet doesn't delete the vehicle.
 *
 * If the vehicle is successfully dissociated from a fleet, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty body.
 */
public suspend inline fun IotFleetWiseClient.disassociateVehicleFleet(crossinline block: DisassociateVehicleFleetRequest.Builder.() -> Unit): DisassociateVehicleFleetResponse = disassociateVehicleFleet(DisassociateVehicleFleetRequest.Builder().apply(block).build())

/**
 * Retrieves information about a campaign.
 */
public suspend inline fun IotFleetWiseClient.getCampaign(crossinline block: GetCampaignRequest.Builder.() -> Unit): GetCampaignResponse = getCampaign(GetCampaignRequest.Builder().apply(block).build())

/**
 * Retrieves information about a created decoder manifest.
 */
public suspend inline fun IotFleetWiseClient.getDecoderManifest(crossinline block: GetDecoderManifestRequest.Builder.() -> Unit): GetDecoderManifestResponse = getDecoderManifest(GetDecoderManifestRequest.Builder().apply(block).build())

/**
 * Retrieves the encryption configuration for resources and data in Amazon Web Services IoT FleetWise.
 */
public suspend inline fun IotFleetWiseClient.getEncryptionConfiguration(crossinline block: GetEncryptionConfigurationRequest.Builder.() -> Unit): GetEncryptionConfigurationResponse = getEncryptionConfiguration(GetEncryptionConfigurationRequest.Builder().apply(block).build())

/**
 * Retrieves information about a fleet.
 */
public suspend inline fun IotFleetWiseClient.getFleet(crossinline block: GetFleetRequest.Builder.() -> Unit): GetFleetResponse = getFleet(GetFleetRequest.Builder().apply(block).build())

/**
 * Retrieves the logging options.
 */
public suspend inline fun IotFleetWiseClient.getLoggingOptions(crossinline block: GetLoggingOptionsRequest.Builder.() -> Unit): GetLoggingOptionsResponse = getLoggingOptions(GetLoggingOptionsRequest.Builder().apply(block).build())

/**
 * Retrieves information about a vehicle model (model manifest).
 */
public suspend inline fun IotFleetWiseClient.getModelManifest(crossinline block: GetModelManifestRequest.Builder.() -> Unit): GetModelManifestResponse = getModelManifest(GetModelManifestRequest.Builder().apply(block).build())

/**
 * Retrieves information about the status of registering your Amazon Web Services account, IAM, and Amazon Timestream resources so that Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud.
 *
 * For more information, including step-by-step procedures, see [Setting up Amazon Web Services IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html).
 *
 * This API operation doesn't require input parameters.
 */
public suspend inline fun IotFleetWiseClient.getRegisterAccountStatus(crossinline block: GetRegisterAccountStatusRequest.Builder.() -> Unit): GetRegisterAccountStatusResponse = getRegisterAccountStatus(GetRegisterAccountStatusRequest.Builder().apply(block).build())

/**
 * Retrieves information about a signal catalog.
 */
public suspend inline fun IotFleetWiseClient.getSignalCatalog(crossinline block: GetSignalCatalogRequest.Builder.() -> Unit): GetSignalCatalogResponse = getSignalCatalog(GetSignalCatalogRequest.Builder().apply(block).build())

/**
 * Retrieves information about a vehicle.
 */
public suspend inline fun IotFleetWiseClient.getVehicle(crossinline block: GetVehicleRequest.Builder.() -> Unit): GetVehicleResponse = getVehicle(GetVehicleRequest.Builder().apply(block).build())

/**
 * Retrieves information about the status of a vehicle with any associated campaigns.
 */
public suspend inline fun IotFleetWiseClient.getVehicleStatus(crossinline block: GetVehicleStatusRequest.Builder.() -> Unit): GetVehicleStatusResponse = getVehicleStatus(GetVehicleStatusRequest.Builder().apply(block).build())

/**
 * Creates a decoder manifest using your existing CAN DBC file from your local device.
 */
public suspend inline fun IotFleetWiseClient.importDecoderManifest(crossinline block: ImportDecoderManifestRequest.Builder.() -> Unit): ImportDecoderManifestResponse = importDecoderManifest(ImportDecoderManifestRequest.Builder().apply(block).build())

/**
 * Creates a signal catalog using your existing VSS formatted content from your local device.
 */
public suspend inline fun IotFleetWiseClient.importSignalCatalog(crossinline block: ImportSignalCatalogRequest.Builder.() -> Unit): ImportSignalCatalogResponse = importSignalCatalog(ImportSignalCatalogRequest.Builder().apply(block).build())

/**
 * Lists information about created campaigns.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listCampaigns(crossinline block: ListCampaignsRequest.Builder.() -> Unit): ListCampaignsResponse = listCampaigns(ListCampaignsRequest.Builder().apply(block).build())

/**
 * Lists the network interfaces specified in a decoder manifest.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listDecoderManifestNetworkInterfaces(crossinline block: ListDecoderManifestNetworkInterfacesRequest.Builder.() -> Unit): ListDecoderManifestNetworkInterfacesResponse = listDecoderManifestNetworkInterfaces(ListDecoderManifestNetworkInterfacesRequest.Builder().apply(block).build())

/**
 * A list of information about signal decoders specified in a decoder manifest.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listDecoderManifestSignals(crossinline block: ListDecoderManifestSignalsRequest.Builder.() -> Unit): ListDecoderManifestSignalsResponse = listDecoderManifestSignals(ListDecoderManifestSignalsRequest.Builder().apply(block).build())

/**
 * Lists decoder manifests.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listDecoderManifests(crossinline block: ListDecoderManifestsRequest.Builder.() -> Unit): ListDecoderManifestsResponse = listDecoderManifests(ListDecoderManifestsRequest.Builder().apply(block).build())

/**
 * Retrieves information for each created fleet in an Amazon Web Services account.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listFleets(crossinline block: ListFleetsRequest.Builder.() -> Unit): ListFleetsResponse = listFleets(ListFleetsRequest.Builder().apply(block).build())

/**
 * Retrieves a list of IDs for all fleets that the vehicle is associated with.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listFleetsForVehicle(crossinline block: ListFleetsForVehicleRequest.Builder.() -> Unit): ListFleetsForVehicleResponse = listFleetsForVehicle(ListFleetsForVehicleRequest.Builder().apply(block).build())

/**
 * Lists information about nodes specified in a vehicle model (model manifest).
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listModelManifestNodes(crossinline block: ListModelManifestNodesRequest.Builder.() -> Unit): ListModelManifestNodesResponse = listModelManifestNodes(ListModelManifestNodesRequest.Builder().apply(block).build())

/**
 * Retrieves a list of vehicle models (model manifests).
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listModelManifests(crossinline block: ListModelManifestsRequest.Builder.() -> Unit): ListModelManifestsResponse = listModelManifests(ListModelManifestsRequest.Builder().apply(block).build())

/**
 * Lists of information about the signals (nodes) specified in a signal catalog.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listSignalCatalogNodes(crossinline block: ListSignalCatalogNodesRequest.Builder.() -> Unit): ListSignalCatalogNodesResponse = listSignalCatalogNodes(ListSignalCatalogNodesRequest.Builder().apply(block).build())

/**
 * Lists all the created signal catalogs in an Amazon Web Services account.
 *
 * You can use to list information about each signal (node) specified in a signal catalog.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listSignalCatalogs(crossinline block: ListSignalCatalogsRequest.Builder.() -> Unit): ListSignalCatalogsResponse = listSignalCatalogs(ListSignalCatalogsRequest.Builder().apply(block).build())

/**
 * Lists the tags (metadata) you have assigned to the resource.
 */
public suspend inline fun IotFleetWiseClient.listTagsForResource(crossinline block: ListTagsForResourceRequest.Builder.() -> Unit): ListTagsForResourceResponse = listTagsForResource(ListTagsForResourceRequest.Builder().apply(block).build())

/**
 * Retrieves a list of summaries of created vehicles.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listVehicles(crossinline block: ListVehiclesRequest.Builder.() -> Unit): ListVehiclesResponse = listVehicles(ListVehiclesRequest.Builder().apply(block).build())

/**
 * Retrieves a list of summaries of all vehicles associated with a fleet.
 *
 * This API operation uses pagination. Specify the `nextToken` parameter in the request to return more results.
 */
public suspend inline fun IotFleetWiseClient.listVehiclesInFleet(crossinline block: ListVehiclesInFleetRequest.Builder.() -> Unit): ListVehiclesInFleetResponse = listVehiclesInFleet(ListVehiclesInFleetRequest.Builder().apply(block).build())

/**
 * Creates or updates the encryption configuration. Amazon Web Services IoT FleetWise can encrypt your data and resources using an Amazon Web Services managed key. Or, you can use a KMS key that you own and manage. For more information, see [Data encryption](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/data-encryption.html) in the *Amazon Web Services IoT FleetWise Developer Guide*.
 */
public suspend inline fun IotFleetWiseClient.putEncryptionConfiguration(crossinline block: PutEncryptionConfigurationRequest.Builder.() -> Unit): PutEncryptionConfigurationResponse = putEncryptionConfiguration(PutEncryptionConfigurationRequest.Builder().apply(block).build())

/**
 * Creates or updates the logging option.
 */
public suspend inline fun IotFleetWiseClient.putLoggingOptions(crossinline block: PutLoggingOptionsRequest.Builder.() -> Unit): PutLoggingOptionsResponse = putLoggingOptions(PutLoggingOptionsRequest.Builder().apply(block).build())

/**
 * This API operation contains deprecated parameters. Register your account again without the Timestream resources parameter so that Amazon Web Services IoT FleetWise can remove the Timestream metadata stored. You should then pass the data destination into the [CreateCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_CreateCampaign.html) API operation.
 *
 * You must delete any existing campaigns that include an empty data destination before you register your account again. For more information, see the [DeleteCampaign](https://docs.aws.amazon.com/iot-fleetwise/latest/APIReference/API_DeleteCampaign.html) API operation.
 *
 * If you want to delete the Timestream inline policy from the service-linked role, such as to mitigate an overly permissive policy, you must first delete any existing campaigns. Then delete the service-linked role and register your account again to enable CloudWatch metrics. For more information, see [DeleteServiceLinkedRole](https://docs.aws.amazon.com/IAM/latest/APIReference/API_DeleteServiceLinkedRole.html) in the *Identity and Access Management API Reference*.
 *
 * Registers your Amazon Web Services account, IAM, and Amazon Timestream resources so Amazon Web Services IoT FleetWise can transfer your vehicle data to the Amazon Web Services Cloud. For more information, including step-by-step procedures, see [Setting up Amazon Web Services IoT FleetWise](https://docs.aws.amazon.com/iot-fleetwise/latest/developerguide/setting-up.html).
 *
 * An Amazon Web Services account is **not** the same thing as a "user." An [Amazon Web Services user](https://docs.aws.amazon.com/IAM/latest/UserGuide/introduction_identity-management.html#intro-identity-users) is an identity that you create using Identity and Access Management (IAM) and takes the form of either an [IAM user](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_users.html) or an [IAM role, both with credentials](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles.html). A single Amazon Web Services account can, and typically does, contain many users and roles.
 */
public suspend inline fun IotFleetWiseClient.registerAccount(crossinline block: RegisterAccountRequest.Builder.() -> Unit): RegisterAccountResponse = registerAccount(RegisterAccountRequest.Builder().apply(block).build())

/**
 * Adds to or modifies the tags of the given resource. Tags are metadata which can be used to manage a resource.
 */
public suspend inline fun IotFleetWiseClient.tagResource(crossinline block: TagResourceRequest.Builder.() -> Unit): TagResourceResponse = tagResource(TagResourceRequest.Builder().apply(block).build())

/**
 * Removes the given tags (metadata) from the resource.
 */
public suspend inline fun IotFleetWiseClient.untagResource(crossinline block: UntagResourceRequest.Builder.() -> Unit): UntagResourceResponse = untagResource(UntagResourceRequest.Builder().apply(block).build())

/**
 * Updates a campaign.
 */
public suspend inline fun IotFleetWiseClient.updateCampaign(crossinline block: UpdateCampaignRequest.Builder.() -> Unit): UpdateCampaignResponse = updateCampaign(UpdateCampaignRequest.Builder().apply(block).build())

/**
 * Updates a decoder manifest.
 *
 * A decoder manifest can only be updated when the status is `DRAFT`. Only `ACTIVE` decoder manifests can be associated with vehicles.
 */
public suspend inline fun IotFleetWiseClient.updateDecoderManifest(crossinline block: UpdateDecoderManifestRequest.Builder.() -> Unit): UpdateDecoderManifestResponse = updateDecoderManifest(UpdateDecoderManifestRequest.Builder().apply(block).build())

/**
 * Updates the description of an existing fleet.
 *
 * If the fleet is successfully updated, Amazon Web Services IoT FleetWise sends back an HTTP 200 response with an empty HTTP body.
 */
public suspend inline fun IotFleetWiseClient.updateFleet(crossinline block: UpdateFleetRequest.Builder.() -> Unit): UpdateFleetResponse = updateFleet(UpdateFleetRequest.Builder().apply(block).build())

/**
 * Updates a vehicle model (model manifest). If created vehicles are associated with a vehicle model, it can't be updated.
 */
public suspend inline fun IotFleetWiseClient.updateModelManifest(crossinline block: UpdateModelManifestRequest.Builder.() -> Unit): UpdateModelManifestResponse = updateModelManifest(UpdateModelManifestRequest.Builder().apply(block).build())

/**
 * Updates a signal catalog.
 */
public suspend inline fun IotFleetWiseClient.updateSignalCatalog(crossinline block: UpdateSignalCatalogRequest.Builder.() -> Unit): UpdateSignalCatalogResponse = updateSignalCatalog(UpdateSignalCatalogRequest.Builder().apply(block).build())

/**
 * Updates a vehicle.
 */
public suspend inline fun IotFleetWiseClient.updateVehicle(crossinline block: UpdateVehicleRequest.Builder.() -> Unit): UpdateVehicleResponse = updateVehicle(UpdateVehicleRequest.Builder().apply(block).build())




© 2015 - 2024 Weber Informatics LLC | Privacy Policy