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

zio.aws.elasticinference.ElasticInference.scala Maven / Gradle / Ivy

The newest version!
package zio.aws.elasticinference
import zio.aws.elasticinference.model.DescribeAcceleratorsResponse.ReadOnly
import zio.aws.core.config.AwsConfig
import zio.aws.core.{AwsServiceBase, AwsError}
import software.amazon.awssdk.services.elasticinference.{
  ElasticInferenceAsyncClientBuilder,
  ElasticInferenceAsyncClient
}
import zio.aws.core.aspects.{AwsCallAspect, AspectSupport}
import zio.aws.elasticinference.model.{
  ListTagsForResourceRequest,
  DescribeAcceleratorsRequest,
  DescribeAcceleratorOfferingsRequest,
  UntagResourceRequest,
  DescribeAcceleratorTypesRequest,
  TagResourceRequest
}
import zio.{ZEnvironment, IO, ZIO, ZLayer, Scope}
import software.amazon.awssdk.services.elasticinference.model.{
  DescribeAcceleratorsResponse,
  DescribeAcceleratorOfferingsResponse,
  ElasticInferenceAccelerator,
  ListTagsForResourceResponse,
  UntagResourceResponse,
  DescribeAcceleratorTypesResponse,
  TagResourceResponse
}
import zio.stream.ZStream
import software.amazon.awssdk.services.elasticinference.paginators.DescribeAcceleratorsPublisher
import scala.jdk.CollectionConverters._
trait ElasticInference extends AspectSupport[ElasticInference] {
  val api: ElasticInferenceAsyncClient
  def describeAcceleratorOfferings(
      request: DescribeAcceleratorOfferingsRequest
  ): IO[
    AwsError,
    zio.aws.elasticinference.model.DescribeAcceleratorOfferingsResponse.ReadOnly
  ]
  def describeAccelerators(request: DescribeAcceleratorsRequest): ZStream[
    Any,
    AwsError,
    zio.aws.elasticinference.model.ElasticInferenceAccelerator.ReadOnly
  ]
  def describeAcceleratorsPaginated(
      request: DescribeAcceleratorsRequest
  ): IO[AwsError, ReadOnly]
  def untagResource(
      request: UntagResourceRequest
  ): IO[AwsError, zio.aws.elasticinference.model.UntagResourceResponse.ReadOnly]
  def listTagsForResource(request: ListTagsForResourceRequest): IO[
    AwsError,
    zio.aws.elasticinference.model.ListTagsForResourceResponse.ReadOnly
  ]
  def tagResource(
      request: TagResourceRequest
  ): IO[AwsError, zio.aws.elasticinference.model.TagResourceResponse.ReadOnly]
  def describeAcceleratorTypes(request: DescribeAcceleratorTypesRequest): IO[
    AwsError,
    zio.aws.elasticinference.model.DescribeAcceleratorTypesResponse.ReadOnly
  ]
}
object ElasticInference {
  val live: ZLayer[AwsConfig, java.lang.Throwable, ElasticInference] =
    customized(identity)
  def customized(
      customization: ElasticInferenceAsyncClientBuilder => ElasticInferenceAsyncClientBuilder
  ): ZLayer[AwsConfig, java.lang.Throwable, ElasticInference] =
    ZLayer.scoped(scoped(customization))
  def scoped(
      customization: ElasticInferenceAsyncClientBuilder => ElasticInferenceAsyncClientBuilder
  ): ZIO[AwsConfig with Scope, java.lang.Throwable, ElasticInference] = for (
    awsConfig <- ZIO.service[AwsConfig]; executor <- ZIO.executor;
    builder = ElasticInferenceAsyncClient
      .builder()
      .asyncConfiguration(
        software.amazon.awssdk.core.client.config.ClientAsyncConfiguration
          .builder()
          .advancedOption(
            software.amazon.awssdk.core.client.config.SdkAdvancedAsyncClientOption.FUTURE_COMPLETION_EXECUTOR,
            executor.asJava
          )
          .build()
      );
    b0 <- awsConfig.configure[
      ElasticInferenceAsyncClient,
      ElasticInferenceAsyncClientBuilder
    ](builder);
    b1 <- awsConfig.configureHttpClient[
      ElasticInferenceAsyncClient,
      ElasticInferenceAsyncClientBuilder
    ](
      b0,
      zio.aws.core.httpclient.ServiceHttpCapabilities(supportsHttp2 = false)
    ); client <- ZIO.attempt(customization(b1).build())
  )
    yield new ElasticInferenceImpl(
      client,
      AwsCallAspect.identity,
      ZEnvironment.empty
    )
  private class ElasticInferenceImpl[R](
      override val api: ElasticInferenceAsyncClient,
      override val aspect: AwsCallAspect[R],
      r: ZEnvironment[R]
  ) extends ElasticInference
      with AwsServiceBase[R] {
    override val serviceName: String = "ElasticInference"
    override def withAspect[R1](
        newAspect: AwsCallAspect[R1],
        r: ZEnvironment[R1]
    ): ElasticInferenceImpl[R1] = new ElasticInferenceImpl(api, newAspect, r)
    def describeAcceleratorOfferings(
        request: DescribeAcceleratorOfferingsRequest
    ): IO[
      AwsError,
      zio.aws.elasticinference.model.DescribeAcceleratorOfferingsResponse.ReadOnly
    ] = asyncRequestResponse[
      software.amazon.awssdk.services.elasticinference.model.DescribeAcceleratorOfferingsRequest,
      DescribeAcceleratorOfferingsResponse
    ]("describeAcceleratorOfferings", api.describeAcceleratorOfferings)(
      request.buildAwsValue()
    ).map(
      zio.aws.elasticinference.model.DescribeAcceleratorOfferingsResponse.wrap
    ).provideEnvironment(r)
    def describeAccelerators(request: DescribeAcceleratorsRequest): ZStream[
      Any,
      AwsError,
      zio.aws.elasticinference.model.ElasticInferenceAccelerator.ReadOnly
    ] = asyncJavaPaginatedRequest[
      software.amazon.awssdk.services.elasticinference.model.DescribeAcceleratorsRequest,
      ElasticInferenceAccelerator,
      DescribeAcceleratorsPublisher
    ](
      "describeAccelerators",
      api.describeAcceleratorsPaginator,
      _.acceleratorSet()
    )(request.buildAwsValue())
      .map(item =>
        zio.aws.elasticinference.model.ElasticInferenceAccelerator.wrap(item)
      )
      .provideEnvironment(r)
    def describeAcceleratorsPaginated(
        request: DescribeAcceleratorsRequest
    ): IO[AwsError, ReadOnly] = asyncRequestResponse[
      software.amazon.awssdk.services.elasticinference.model.DescribeAcceleratorsRequest,
      DescribeAcceleratorsResponse
    ]("describeAccelerators", api.describeAccelerators)(request.buildAwsValue())
      .map(zio.aws.elasticinference.model.DescribeAcceleratorsResponse.wrap)
      .provideEnvironment(r)
    def untagResource(request: UntagResourceRequest): IO[
      AwsError,
      zio.aws.elasticinference.model.UntagResourceResponse.ReadOnly
    ] = asyncRequestResponse[
      software.amazon.awssdk.services.elasticinference.model.UntagResourceRequest,
      UntagResourceResponse
    ]("untagResource", api.untagResource)(request.buildAwsValue())
      .map(zio.aws.elasticinference.model.UntagResourceResponse.wrap)
      .provideEnvironment(r)
    def listTagsForResource(request: ListTagsForResourceRequest): IO[
      AwsError,
      zio.aws.elasticinference.model.ListTagsForResourceResponse.ReadOnly
    ] = asyncRequestResponse[
      software.amazon.awssdk.services.elasticinference.model.ListTagsForResourceRequest,
      ListTagsForResourceResponse
    ]("listTagsForResource", api.listTagsForResource)(request.buildAwsValue())
      .map(zio.aws.elasticinference.model.ListTagsForResourceResponse.wrap)
      .provideEnvironment(r)
    def tagResource(request: TagResourceRequest): IO[
      AwsError,
      zio.aws.elasticinference.model.TagResourceResponse.ReadOnly
    ] = asyncRequestResponse[
      software.amazon.awssdk.services.elasticinference.model.TagResourceRequest,
      TagResourceResponse
    ]("tagResource", api.tagResource)(request.buildAwsValue())
      .map(zio.aws.elasticinference.model.TagResourceResponse.wrap)
      .provideEnvironment(r)
    def describeAcceleratorTypes(request: DescribeAcceleratorTypesRequest): IO[
      AwsError,
      zio.aws.elasticinference.model.DescribeAcceleratorTypesResponse.ReadOnly
    ] = asyncRequestResponse[
      software.amazon.awssdk.services.elasticinference.model.DescribeAcceleratorTypesRequest,
      DescribeAcceleratorTypesResponse
    ]("describeAcceleratorTypes", api.describeAcceleratorTypes)(
      request.buildAwsValue()
    ).map(zio.aws.elasticinference.model.DescribeAcceleratorTypesResponse.wrap)
      .provideEnvironment(r)
  }
  def describeAcceleratorOfferings(
      request: DescribeAcceleratorOfferingsRequest
  ): ZIO[
    zio.aws.elasticinference.ElasticInference,
    AwsError,
    zio.aws.elasticinference.model.DescribeAcceleratorOfferingsResponse.ReadOnly
  ] = ZIO.serviceWithZIO(_.describeAcceleratorOfferings(request))
  def describeAccelerators(request: DescribeAcceleratorsRequest): ZStream[
    zio.aws.elasticinference.ElasticInference,
    AwsError,
    zio.aws.elasticinference.model.ElasticInferenceAccelerator.ReadOnly
  ] = ZStream.serviceWithStream(_.describeAccelerators(request))
  def describeAcceleratorsPaginated(
      request: DescribeAcceleratorsRequest
  ): ZIO[zio.aws.elasticinference.ElasticInference, AwsError, ReadOnly] =
    ZIO.serviceWithZIO(_.describeAcceleratorsPaginated(request))
  def untagResource(request: UntagResourceRequest): ZIO[
    zio.aws.elasticinference.ElasticInference,
    AwsError,
    zio.aws.elasticinference.model.UntagResourceResponse.ReadOnly
  ] = ZIO.serviceWithZIO(_.untagResource(request))
  def listTagsForResource(request: ListTagsForResourceRequest): ZIO[
    zio.aws.elasticinference.ElasticInference,
    AwsError,
    zio.aws.elasticinference.model.ListTagsForResourceResponse.ReadOnly
  ] = ZIO.serviceWithZIO(_.listTagsForResource(request))
  def tagResource(request: TagResourceRequest): ZIO[
    zio.aws.elasticinference.ElasticInference,
    AwsError,
    zio.aws.elasticinference.model.TagResourceResponse.ReadOnly
  ] = ZIO.serviceWithZIO(_.tagResource(request))
  def describeAcceleratorTypes(request: DescribeAcceleratorTypesRequest): ZIO[
    zio.aws.elasticinference.ElasticInference,
    AwsError,
    zio.aws.elasticinference.model.DescribeAcceleratorTypesResponse.ReadOnly
  ] = ZIO.serviceWithZIO(_.describeAcceleratorTypes(request))
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy