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

com.pulumi.aws.ecr.kotlin.EcrFunctions.kt Maven / Gradle / Ivy

@file:Suppress("NAME_SHADOWING", "DEPRECATION")

package com.pulumi.aws.ecr.kotlin

import com.pulumi.aws.ecr.EcrFunctions.getAuthorizationTokenPlain
import com.pulumi.aws.ecr.EcrFunctions.getCredentialsPlain
import com.pulumi.aws.ecr.EcrFunctions.getImagePlain
import com.pulumi.aws.ecr.EcrFunctions.getLifecyclePolicyDocumentPlain
import com.pulumi.aws.ecr.EcrFunctions.getPullThroughCacheRulePlain
import com.pulumi.aws.ecr.EcrFunctions.getRepositoriesPlain
import com.pulumi.aws.ecr.EcrFunctions.getRepositoryCreationTemplatePlain
import com.pulumi.aws.ecr.EcrFunctions.getRepositoryPlain
import com.pulumi.aws.ecr.kotlin.inputs.GetAuthorizationTokenPlainArgs
import com.pulumi.aws.ecr.kotlin.inputs.GetAuthorizationTokenPlainArgsBuilder
import com.pulumi.aws.ecr.kotlin.inputs.GetCredentialsPlainArgs
import com.pulumi.aws.ecr.kotlin.inputs.GetCredentialsPlainArgsBuilder
import com.pulumi.aws.ecr.kotlin.inputs.GetImagePlainArgs
import com.pulumi.aws.ecr.kotlin.inputs.GetImagePlainArgsBuilder
import com.pulumi.aws.ecr.kotlin.inputs.GetLifecyclePolicyDocumentPlainArgs
import com.pulumi.aws.ecr.kotlin.inputs.GetLifecyclePolicyDocumentPlainArgsBuilder
import com.pulumi.aws.ecr.kotlin.inputs.GetLifecyclePolicyDocumentRule
import com.pulumi.aws.ecr.kotlin.inputs.GetPullThroughCacheRulePlainArgs
import com.pulumi.aws.ecr.kotlin.inputs.GetPullThroughCacheRulePlainArgsBuilder
import com.pulumi.aws.ecr.kotlin.inputs.GetRepositoryCreationTemplatePlainArgs
import com.pulumi.aws.ecr.kotlin.inputs.GetRepositoryCreationTemplatePlainArgsBuilder
import com.pulumi.aws.ecr.kotlin.inputs.GetRepositoryPlainArgs
import com.pulumi.aws.ecr.kotlin.inputs.GetRepositoryPlainArgsBuilder
import com.pulumi.aws.ecr.kotlin.outputs.GetAuthorizationTokenResult
import com.pulumi.aws.ecr.kotlin.outputs.GetCredentialsResult
import com.pulumi.aws.ecr.kotlin.outputs.GetImageResult
import com.pulumi.aws.ecr.kotlin.outputs.GetLifecyclePolicyDocumentResult
import com.pulumi.aws.ecr.kotlin.outputs.GetPullThroughCacheRuleResult
import com.pulumi.aws.ecr.kotlin.outputs.GetRepositoriesResult
import com.pulumi.aws.ecr.kotlin.outputs.GetRepositoryCreationTemplateResult
import com.pulumi.aws.ecr.kotlin.outputs.GetRepositoryResult
import kotlinx.coroutines.future.await
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
import kotlin.collections.Map
import com.pulumi.aws.ecr.kotlin.outputs.GetAuthorizationTokenResult.Companion.toKotlin as getAuthorizationTokenResultToKotlin
import com.pulumi.aws.ecr.kotlin.outputs.GetCredentialsResult.Companion.toKotlin as getCredentialsResultToKotlin
import com.pulumi.aws.ecr.kotlin.outputs.GetImageResult.Companion.toKotlin as getImageResultToKotlin
import com.pulumi.aws.ecr.kotlin.outputs.GetLifecyclePolicyDocumentResult.Companion.toKotlin as getLifecyclePolicyDocumentResultToKotlin
import com.pulumi.aws.ecr.kotlin.outputs.GetPullThroughCacheRuleResult.Companion.toKotlin as getPullThroughCacheRuleResultToKotlin
import com.pulumi.aws.ecr.kotlin.outputs.GetRepositoriesResult.Companion.toKotlin as getRepositoriesResultToKotlin
import com.pulumi.aws.ecr.kotlin.outputs.GetRepositoryCreationTemplateResult.Companion.toKotlin as getRepositoryCreationTemplateResultToKotlin
import com.pulumi.aws.ecr.kotlin.outputs.GetRepositoryResult.Companion.toKotlin as getRepositoryResultToKotlin

public object EcrFunctions {
    /**
     * The ECR Authorization Token data source allows the authorization token, proxy endpoint, token expiration date, user name and password to be retrieved for an ECR repository.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const token = aws.ecr.getAuthorizationToken({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * token = aws.ecr.get_authorization_token()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var token = Aws.Ecr.GetAuthorizationToken.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := ecr.GetAuthorizationToken(ctx, &ecr.GetAuthorizationTokenArgs{}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import com.pulumi.aws.ecr.inputs.GetAuthorizationTokenArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var token = EcrFunctions.getAuthorizationToken();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   token:
     *     fn::invoke:
     *       Function: aws:ecr:getAuthorizationToken
     *       Arguments: {}
     * ```
     * 
     * @param argument A collection of arguments for invoking getAuthorizationToken.
     * @return A collection of values returned by getAuthorizationToken.
     */
    public suspend fun getAuthorizationToken(argument: GetAuthorizationTokenPlainArgs): GetAuthorizationTokenResult =
        getAuthorizationTokenResultToKotlin(getAuthorizationTokenPlain(argument.toJava()).await())

    /**
     * @see [getAuthorizationToken].
     * @param registryId AWS account ID of the ECR Repository. If not specified the default account is assumed.
     * @return A collection of values returned by getAuthorizationToken.
     */
    public suspend fun getAuthorizationToken(registryId: String? = null): GetAuthorizationTokenResult {
        val argument = GetAuthorizationTokenPlainArgs(
            registryId = registryId,
        )
        return getAuthorizationTokenResultToKotlin(getAuthorizationTokenPlain(argument.toJava()).await())
    }

    /**
     * @see [getAuthorizationToken].
     * @param argument Builder for [com.pulumi.aws.ecr.kotlin.inputs.GetAuthorizationTokenPlainArgs].
     * @return A collection of values returned by getAuthorizationToken.
     */
    public suspend fun getAuthorizationToken(argument: suspend GetAuthorizationTokenPlainArgsBuilder.() -> Unit): GetAuthorizationTokenResult {
        val builder = GetAuthorizationTokenPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getAuthorizationTokenResultToKotlin(getAuthorizationTokenPlain(builtArgument.toJava()).await())
    }

    /**
     *
     * @param argument A collection of arguments for invoking getCredentials.
     * @return A collection of values returned by getCredentials.
     */
    public suspend fun getCredentials(argument: GetCredentialsPlainArgs): GetCredentialsResult =
        getCredentialsResultToKotlin(getCredentialsPlain(argument.toJava()).await())

    /**
     * @see [getCredentials].
     * @param registryId
     * @return A collection of values returned by getCredentials.
     */
    public suspend fun getCredentials(registryId: String): GetCredentialsResult {
        val argument = GetCredentialsPlainArgs(
            registryId = registryId,
        )
        return getCredentialsResultToKotlin(getCredentialsPlain(argument.toJava()).await())
    }

    /**
     * @see [getCredentials].
     * @param argument Builder for [com.pulumi.aws.ecr.kotlin.inputs.GetCredentialsPlainArgs].
     * @return A collection of values returned by getCredentials.
     */
    public suspend fun getCredentials(argument: suspend GetCredentialsPlainArgsBuilder.() -> Unit): GetCredentialsResult {
        val builder = GetCredentialsPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getCredentialsResultToKotlin(getCredentialsPlain(builtArgument.toJava()).await())
    }

    /**
     * The ECR Image data source allows the details of an image with a particular tag or digest to be retrieved.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const serviceImage = aws.ecr.getImage({
     *     repositoryName: "my/service",
     *     imageTag: "latest",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * service_image = aws.ecr.get_image(repository_name="my/service",
     *     image_tag="latest")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var serviceImage = Aws.Ecr.GetImage.Invoke(new()
     *     {
     *         RepositoryName = "my/service",
     *         ImageTag = "latest",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := ecr.GetImage(ctx, &ecr.GetImageArgs{
     * 			RepositoryName: "my/service",
     * 			ImageTag:       pulumi.StringRef("latest"),
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import com.pulumi.aws.ecr.inputs.GetImageArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var serviceImage = EcrFunctions.getImage(GetImageArgs.builder()
     *             .repositoryName("my/service")
     *             .imageTag("latest")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   serviceImage:
     *     fn::invoke:
     *       Function: aws:ecr:getImage
     *       Arguments:
     *         repositoryName: my/service
     *         imageTag: latest
     * ```
     * 
     * @param argument A collection of arguments for invoking getImage.
     * @return A collection of values returned by getImage.
     */
    public suspend fun getImage(argument: GetImagePlainArgs): GetImageResult =
        getImageResultToKotlin(getImagePlain(argument.toJava()).await())

    /**
     * @see [getImage].
     * @param imageDigest Sha256 digest of the image manifest. At least one of `image_digest`, `image_tag`, or `most_recent` must be specified.
     * @param imageTag Tag associated with this image. At least one of `image_digest`, `image_tag`, or `most_recent` must be specified.
     * @param mostRecent Return the most recently pushed image. At least one of `image_digest`, `image_tag`, or `most_recent` must be specified.
     * @param registryId ID of the Registry where the repository resides.
     * @param repositoryName Name of the ECR Repository.
     * @return A collection of values returned by getImage.
     */
    public suspend fun getImage(
        imageDigest: String? = null,
        imageTag: String? = null,
        mostRecent: Boolean? = null,
        registryId: String? = null,
        repositoryName: String,
    ): GetImageResult {
        val argument = GetImagePlainArgs(
            imageDigest = imageDigest,
            imageTag = imageTag,
            mostRecent = mostRecent,
            registryId = registryId,
            repositoryName = repositoryName,
        )
        return getImageResultToKotlin(getImagePlain(argument.toJava()).await())
    }

    /**
     * @see [getImage].
     * @param argument Builder for [com.pulumi.aws.ecr.kotlin.inputs.GetImagePlainArgs].
     * @return A collection of values returned by getImage.
     */
    public suspend fun getImage(argument: suspend GetImagePlainArgsBuilder.() -> Unit): GetImageResult {
        val builder = GetImagePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getImageResultToKotlin(getImagePlain(builtArgument.toJava()).await())
    }

    /**
     * Generates an ECR lifecycle policy document in JSON format. Can be used with resources such as the `aws.ecr.LifecyclePolicy` resource.
     * > For more information about building AWS ECR lifecycle policy documents, see the [AWS ECR Lifecycle Policy Document Guide](https://docs.aws.amazon.com/AmazonECR/latest/userguide/LifecyclePolicies.html).
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const example = aws.ecr.getLifecyclePolicyDocument({
     *     rules: [{
     *         priority: 1,
     *         description: "This is a test.",
     *         selection: {
     *             tagStatus: "tagged",
     *             tagPrefixLists: ["prod"],
     *             countType: "imageCountMoreThan",
     *             countNumber: 100,
     *         },
     *     }],
     * });
     * const exampleLifecyclePolicy = new aws.ecr.LifecyclePolicy("example", {
     *     repository: exampleAwsEcrRepository.name,
     *     policy: example.then(example => example.json),
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * example = aws.ecr.get_lifecycle_policy_document(rules=[{
     *     "priority": 1,
     *     "description": "This is a test.",
     *     "selection": {
     *         "tag_status": "tagged",
     *         "tag_prefix_lists": ["prod"],
     *         "count_type": "imageCountMoreThan",
     *         "count_number": 100,
     *     },
     * }])
     * example_lifecycle_policy = aws.ecr.LifecyclePolicy("example",
     *     repository=example_aws_ecr_repository["name"],
     *     policy=example.json)
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Aws.Ecr.GetLifecyclePolicyDocument.Invoke(new()
     *     {
     *         Rules = new[]
     *         {
     *             new Aws.Ecr.Inputs.GetLifecyclePolicyDocumentRuleInputArgs
     *             {
     *                 Priority = 1,
     *                 Description = "This is a test.",
     *                 Selection = new Aws.Ecr.Inputs.GetLifecyclePolicyDocumentRuleSelectionInputArgs
     *                 {
     *                     TagStatus = "tagged",
     *                     TagPrefixLists = new[]
     *                     {
     *                         "prod",
     *                     },
     *                     CountType = "imageCountMoreThan",
     *                     CountNumber = 100,
     *                 },
     *             },
     *         },
     *     });
     *     var exampleLifecyclePolicy = new Aws.Ecr.LifecyclePolicy("example", new()
     *     {
     *         Repository = exampleAwsEcrRepository.Name,
     *         Policy = example.Apply(getLifecyclePolicyDocumentResult => getLifecyclePolicyDocumentResult.Json),
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		example, err := ecr.GetLifecyclePolicyDocument(ctx, &ecr.GetLifecyclePolicyDocumentArgs{
     * 			Rules: []ecr.GetLifecyclePolicyDocumentRule{
     * 				{
     * 					Priority:    1,
     * 					Description: pulumi.StringRef("This is a test."),
     * 					Selection: {
     * 						TagStatus: "tagged",
     * 						TagPrefixLists: []string{
     * 							"prod",
     * 						},
     * 						CountType:   "imageCountMoreThan",
     * 						CountNumber: 100,
     * 					},
     * 				},
     * 			},
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		_, err = ecr.NewLifecyclePolicy(ctx, "example", &ecr.LifecyclePolicyArgs{
     * 			Repository: pulumi.Any(exampleAwsEcrRepository.Name),
     * 			Policy:     pulumi.String(example.Json),
     * 		})
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import com.pulumi.aws.ecr.inputs.GetLifecyclePolicyDocumentArgs;
     * import com.pulumi.aws.ecr.LifecyclePolicy;
     * import com.pulumi.aws.ecr.LifecyclePolicyArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = EcrFunctions.getLifecyclePolicyDocument(GetLifecyclePolicyDocumentArgs.builder()
     *             .rules(GetLifecyclePolicyDocumentRuleArgs.builder()
     *                 .priority(1)
     *                 .description("This is a test.")
     *                 .selection(GetLifecyclePolicyDocumentRuleSelectionArgs.builder()
     *                     .tagStatus("tagged")
     *                     .tagPrefixLists("prod")
     *                     .countType("imageCountMoreThan")
     *                     .countNumber(100)
     *                     .build())
     *                 .build())
     *             .build());
     *         var exampleLifecyclePolicy = new LifecyclePolicy("exampleLifecyclePolicy", LifecyclePolicyArgs.builder()
     *             .repository(exampleAwsEcrRepository.name())
     *             .policy(example.applyValue(getLifecyclePolicyDocumentResult -> getLifecyclePolicyDocumentResult.json()))
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * resources:
     *   exampleLifecyclePolicy:
     *     type: aws:ecr:LifecyclePolicy
     *     name: example
     *     properties:
     *       repository: ${exampleAwsEcrRepository.name}
     *       policy: ${example.json}
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: aws:ecr:getLifecyclePolicyDocument
     *       Arguments:
     *         rules:
     *           - priority: 1
     *             description: This is a test.
     *             selection:
     *               tagStatus: tagged
     *               tagPrefixLists:
     *                 - prod
     *               countType: imageCountMoreThan
     *               countNumber: 100
     * ```
     * 
     * @param argument A collection of arguments for invoking getLifecyclePolicyDocument.
     * @return A collection of values returned by getLifecyclePolicyDocument.
     */
    public suspend fun getLifecyclePolicyDocument(argument: GetLifecyclePolicyDocumentPlainArgs): GetLifecyclePolicyDocumentResult =
        getLifecyclePolicyDocumentResultToKotlin(getLifecyclePolicyDocumentPlain(argument.toJava()).await())

    /**
     * @see [getLifecyclePolicyDocument].
     * @param rules
     * @return A collection of values returned by getLifecyclePolicyDocument.
     */
    public suspend fun getLifecyclePolicyDocument(
        rules: List? =
            null,
    ): GetLifecyclePolicyDocumentResult {
        val argument = GetLifecyclePolicyDocumentPlainArgs(
            rules = rules,
        )
        return getLifecyclePolicyDocumentResultToKotlin(getLifecyclePolicyDocumentPlain(argument.toJava()).await())
    }

    /**
     * @see [getLifecyclePolicyDocument].
     * @param argument Builder for [com.pulumi.aws.ecr.kotlin.inputs.GetLifecyclePolicyDocumentPlainArgs].
     * @return A collection of values returned by getLifecyclePolicyDocument.
     */
    public suspend fun getLifecyclePolicyDocument(argument: suspend GetLifecyclePolicyDocumentPlainArgsBuilder.() -> Unit): GetLifecyclePolicyDocumentResult {
        val builder = GetLifecyclePolicyDocumentPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getLifecyclePolicyDocumentResultToKotlin(getLifecyclePolicyDocumentPlain(builtArgument.toJava()).await())
    }

    /**
     * The ECR Pull Through Cache Rule data source allows the upstream registry URL and registry ID to be retrieved for a Pull Through Cache Rule.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const ecrPublic = aws.ecr.getPullThroughCacheRule({
     *     ecrRepositoryPrefix: "ecr-public",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * ecr_public = aws.ecr.get_pull_through_cache_rule(ecr_repository_prefix="ecr-public")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var ecrPublic = Aws.Ecr.GetPullThroughCacheRule.Invoke(new()
     *     {
     *         EcrRepositoryPrefix = "ecr-public",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := ecr.LookupPullThroughCacheRule(ctx, &ecr.LookupPullThroughCacheRuleArgs{
     * 			EcrRepositoryPrefix: "ecr-public",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import com.pulumi.aws.ecr.inputs.GetPullThroughCacheRuleArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var ecrPublic = EcrFunctions.getPullThroughCacheRule(GetPullThroughCacheRuleArgs.builder()
     *             .ecrRepositoryPrefix("ecr-public")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   ecrPublic:
     *     fn::invoke:
     *       Function: aws:ecr:getPullThroughCacheRule
     *       Arguments:
     *         ecrRepositoryPrefix: ecr-public
     * ```
     * 
     * @param argument A collection of arguments for invoking getPullThroughCacheRule.
     * @return A collection of values returned by getPullThroughCacheRule.
     */
    public suspend fun getPullThroughCacheRule(argument: GetPullThroughCacheRulePlainArgs): GetPullThroughCacheRuleResult =
        getPullThroughCacheRuleResultToKotlin(getPullThroughCacheRulePlain(argument.toJava()).await())

    /**
     * @see [getPullThroughCacheRule].
     * @param ecrRepositoryPrefix The repository name prefix to use when caching images from the source registry.
     * @return A collection of values returned by getPullThroughCacheRule.
     */
    public suspend fun getPullThroughCacheRule(ecrRepositoryPrefix: String): GetPullThroughCacheRuleResult {
        val argument = GetPullThroughCacheRulePlainArgs(
            ecrRepositoryPrefix = ecrRepositoryPrefix,
        )
        return getPullThroughCacheRuleResultToKotlin(getPullThroughCacheRulePlain(argument.toJava()).await())
    }

    /**
     * @see [getPullThroughCacheRule].
     * @param argument Builder for [com.pulumi.aws.ecr.kotlin.inputs.GetPullThroughCacheRulePlainArgs].
     * @return A collection of values returned by getPullThroughCacheRule.
     */
    public suspend fun getPullThroughCacheRule(argument: suspend GetPullThroughCacheRulePlainArgsBuilder.() -> Unit): GetPullThroughCacheRuleResult {
        val builder = GetPullThroughCacheRulePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getPullThroughCacheRuleResultToKotlin(getPullThroughCacheRulePlain(builtArgument.toJava()).await())
    }

    /**
     * Data source for providing information on AWS ECR (Elastic Container Registry) Repositories.
     * ## Example Usage
     * ### Basic Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const example = aws.ecr.getRepositories({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * example = aws.ecr.get_repositories()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Aws.Ecr.GetRepositories.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := ecr.GetRepositories(ctx, map[string]interface{}{}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = EcrFunctions.getRepositories();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: aws:ecr:getRepositories
     *       Arguments: {}
     * ```
     * 
     * @param argument Data source for providing information on AWS ECR (Elastic Container Registry) Repositories.
     * ## Example Usage
     * ### Basic Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const example = aws.ecr.getRepositories({});
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * example = aws.ecr.get_repositories()
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Aws.Ecr.GetRepositories.Invoke();
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := ecr.GetRepositories(ctx, map[string]interface{}{}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = EcrFunctions.getRepositories();
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: aws:ecr:getRepositories
     *       Arguments: {}
     * ```
     * 
     * @return A collection of values returned by getRepositories.
     */
    public suspend fun getRepositories(): GetRepositoriesResult =
        getRepositoriesResultToKotlin(getRepositoriesPlain().await())

    /**
     * The ECR Repository data source allows the ARN, Repository URI and Registry ID to be retrieved for an ECR repository.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const service = aws.ecr.getRepository({
     *     name: "ecr-repository",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * service = aws.ecr.get_repository(name="ecr-repository")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var service = Aws.Ecr.GetRepository.Invoke(new()
     *     {
     *         Name = "ecr-repository",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := ecr.LookupRepository(ctx, &ecr.LookupRepositoryArgs{
     * 			Name: "ecr-repository",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import com.pulumi.aws.ecr.inputs.GetRepositoryArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var service = EcrFunctions.getRepository(GetRepositoryArgs.builder()
     *             .name("ecr-repository")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   service:
     *     fn::invoke:
     *       Function: aws:ecr:getRepository
     *       Arguments:
     *         name: ecr-repository
     * ```
     * 
     * @param argument A collection of arguments for invoking getRepository.
     * @return A collection of values returned by getRepository.
     */
    public suspend fun getRepository(argument: GetRepositoryPlainArgs): GetRepositoryResult =
        getRepositoryResultToKotlin(getRepositoryPlain(argument.toJava()).await())

    /**
     * @see [getRepository].
     * @param name Name of the ECR Repository.
     * @param registryId Registry ID where the repository was created.
     * @param tags Map of tags assigned to the resource.
     * @return A collection of values returned by getRepository.
     */
    public suspend fun getRepository(
        name: String,
        registryId: String? = null,
        tags: Map? = null,
    ): GetRepositoryResult {
        val argument = GetRepositoryPlainArgs(
            name = name,
            registryId = registryId,
            tags = tags,
        )
        return getRepositoryResultToKotlin(getRepositoryPlain(argument.toJava()).await())
    }

    /**
     * @see [getRepository].
     * @param argument Builder for [com.pulumi.aws.ecr.kotlin.inputs.GetRepositoryPlainArgs].
     * @return A collection of values returned by getRepository.
     */
    public suspend fun getRepository(argument: suspend GetRepositoryPlainArgsBuilder.() -> Unit): GetRepositoryResult {
        val builder = GetRepositoryPlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getRepositoryResultToKotlin(getRepositoryPlain(builtArgument.toJava()).await())
    }

    /**
     * The ECR Repository Creation Template data source allows the template details to be retrieved for a Repository Creation Template.
     * ## Example Usage
     * 
     * ```typescript
     * import * as pulumi from "@pulumi/pulumi";
     * import * as aws from "@pulumi/aws";
     * const example = aws.ecr.getRepositoryCreationTemplate({
     *     prefix: "example",
     * });
     * ```
     * ```python
     * import pulumi
     * import pulumi_aws as aws
     * example = aws.ecr.get_repository_creation_template(prefix="example")
     * ```
     * ```csharp
     * using System.Collections.Generic;
     * using System.Linq;
     * using Pulumi;
     * using Aws = Pulumi.Aws;
     * return await Deployment.RunAsync(() =>
     * {
     *     var example = Aws.Ecr.GetRepositoryCreationTemplate.Invoke(new()
     *     {
     *         Prefix = "example",
     *     });
     * });
     * ```
     * ```go
     * package main
     * import (
     * 	"github.com/pulumi/pulumi-aws/sdk/v6/go/aws/ecr"
     * 	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
     * )
     * func main() {
     * 	pulumi.Run(func(ctx *pulumi.Context) error {
     * 		_, err := ecr.LookupRepositoryCreationTemplate(ctx, &ecr.LookupRepositoryCreationTemplateArgs{
     * 			Prefix: "example",
     * 		}, nil)
     * 		if err != nil {
     * 			return err
     * 		}
     * 		return nil
     * 	})
     * }
     * ```
     * ```java
     * package generated_program;
     * import com.pulumi.Context;
     * import com.pulumi.Pulumi;
     * import com.pulumi.core.Output;
     * import com.pulumi.aws.ecr.EcrFunctions;
     * import com.pulumi.aws.ecr.inputs.GetRepositoryCreationTemplateArgs;
     * import java.util.List;
     * import java.util.ArrayList;
     * import java.util.Map;
     * import java.io.File;
     * import java.nio.file.Files;
     * import java.nio.file.Paths;
     * public class App {
     *     public static void main(String[] args) {
     *         Pulumi.run(App::stack);
     *     }
     *     public static void stack(Context ctx) {
     *         final var example = EcrFunctions.getRepositoryCreationTemplate(GetRepositoryCreationTemplateArgs.builder()
     *             .prefix("example")
     *             .build());
     *     }
     * }
     * ```
     * ```yaml
     * variables:
     *   example:
     *     fn::invoke:
     *       Function: aws:ecr:getRepositoryCreationTemplate
     *       Arguments:
     *         prefix: example
     * ```
     * 
     * @param argument A collection of arguments for invoking getRepositoryCreationTemplate.
     * @return A collection of values returned by getRepositoryCreationTemplate.
     */
    public suspend fun getRepositoryCreationTemplate(argument: GetRepositoryCreationTemplatePlainArgs): GetRepositoryCreationTemplateResult =
        getRepositoryCreationTemplateResultToKotlin(getRepositoryCreationTemplatePlain(argument.toJava()).await())

    /**
     * @see [getRepositoryCreationTemplate].
     * @param prefix The repository name prefix that the template matches against.
     * @param resourceTags A map of tags to assign to any created repositories.
     * @return A collection of values returned by getRepositoryCreationTemplate.
     */
    public suspend fun getRepositoryCreationTemplate(
        prefix: String,
        resourceTags: Map? = null,
    ): GetRepositoryCreationTemplateResult {
        val argument = GetRepositoryCreationTemplatePlainArgs(
            prefix = prefix,
            resourceTags = resourceTags,
        )
        return getRepositoryCreationTemplateResultToKotlin(getRepositoryCreationTemplatePlain(argument.toJava()).await())
    }

    /**
     * @see [getRepositoryCreationTemplate].
     * @param argument Builder for [com.pulumi.aws.ecr.kotlin.inputs.GetRepositoryCreationTemplatePlainArgs].
     * @return A collection of values returned by getRepositoryCreationTemplate.
     */
    public suspend fun getRepositoryCreationTemplate(argument: suspend GetRepositoryCreationTemplatePlainArgsBuilder.() -> Unit): GetRepositoryCreationTemplateResult {
        val builder = GetRepositoryCreationTemplatePlainArgsBuilder()
        builder.argument()
        val builtArgument = builder.build()
        return getRepositoryCreationTemplateResultToKotlin(getRepositoryCreationTemplatePlain(builtArgument.toJava()).await())
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy