
com.pulumi.azure.containerservice.kotlin.ConnectedRegistry.kt Maven / Gradle / Ivy
@file:Suppress("NAME_SHADOWING", "DEPRECATION")
package com.pulumi.azure.containerservice.kotlin
import com.pulumi.azure.containerservice.kotlin.outputs.ConnectedRegistryNotification
import com.pulumi.azure.containerservice.kotlin.outputs.ConnectedRegistryNotification.Companion.toKotlin
import com.pulumi.core.Output
import com.pulumi.kotlin.KotlinCustomResource
import com.pulumi.kotlin.PulumiTagMarker
import com.pulumi.kotlin.ResourceMapper
import com.pulumi.kotlin.options.CustomResourceOptions
import com.pulumi.kotlin.options.CustomResourceOptionsBuilder
import com.pulumi.resources.Resource
import kotlin.Boolean
import kotlin.String
import kotlin.Suppress
import kotlin.Unit
import kotlin.collections.List
/**
* Builder for [ConnectedRegistry].
*/
@PulumiTagMarker
public class ConnectedRegistryResourceBuilder internal constructor() {
public var name: String? = null
public var args: ConnectedRegistryArgs = ConnectedRegistryArgs()
public var opts: CustomResourceOptions = CustomResourceOptions()
/**
* @param name The _unique_ name of the resulting resource.
*/
public fun name(`value`: String) {
this.name = value
}
/**
* @param block The arguments to use to populate this resource's properties.
*/
public suspend fun args(block: suspend ConnectedRegistryArgsBuilder.() -> Unit) {
val builder = ConnectedRegistryArgsBuilder()
block(builder)
this.args = builder.build()
}
/**
* @param block A bag of options that control this resource's behavior.
*/
public suspend fun opts(block: suspend CustomResourceOptionsBuilder.() -> Unit) {
this.opts = com.pulumi.kotlin.options.CustomResourceOptions.opts(block)
}
internal fun build(): ConnectedRegistry {
val builtJavaResource =
com.pulumi.azure.containerservice.ConnectedRegistry(
this.name,
this.args.toJava(),
this.opts.toJava(),
)
return ConnectedRegistry(builtJavaResource)
}
}
/**
* Manages a Container Connected Registry.
* ## Example Usage
*
* ```typescript
* import * as pulumi from "@pulumi/pulumi";
* import * as azure from "@pulumi/azure";
* const example = new azure.core.ResourceGroup("example", {
* name: "example-rg",
* location: "West Europe",
* });
* const exampleRegistry = new azure.containerservice.Registry("example", {
* name: "exampleacr",
* resourceGroupName: example.name,
* location: example.location,
* sku: "Premium",
* dataEndpointEnabled: true,
* });
* const exampleRegistryScopeMap = new azure.containerservice.RegistryScopeMap("example", {
* name: "examplescopemap",
* containerRegistryName: exampleRegistry.name,
* resourceGroupName: exampleRegistry.resourceGroupName,
* actions: [
* "repositories/hello-world/content/delete",
* "repositories/hello-world/content/read",
* "repositories/hello-world/content/write",
* "repositories/hello-world/metadata/read",
* "repositories/hello-world/metadata/write",
* "gateway/examplecr/config/read",
* "gateway/examplecr/config/write",
* "gateway/examplecr/message/read",
* "gateway/examplecr/message/write",
* ],
* });
* const exampleRegistryToken = new azure.containerservice.RegistryToken("example", {
* name: "exampletoken",
* containerRegistryName: exampleRegistry.name,
* resourceGroupName: exampleRegistry.resourceGroupName,
* scopeMapId: exampleRegistryScopeMap.id,
* });
* const exampleConnectedRegistry = new azure.containerservice.ConnectedRegistry("example", {
* name: "examplecr",
* containerRegistryId: exampleRegistry.id,
* syncTokenId: exampleRegistryToken.id,
* });
* ```
* ```python
* import pulumi
* import pulumi_azure as azure
* example = azure.core.ResourceGroup("example",
* name="example-rg",
* location="West Europe")
* example_registry = azure.containerservice.Registry("example",
* name="exampleacr",
* resource_group_name=example.name,
* location=example.location,
* sku="Premium",
* data_endpoint_enabled=True)
* example_registry_scope_map = azure.containerservice.RegistryScopeMap("example",
* name="examplescopemap",
* container_registry_name=example_registry.name,
* resource_group_name=example_registry.resource_group_name,
* actions=[
* "repositories/hello-world/content/delete",
* "repositories/hello-world/content/read",
* "repositories/hello-world/content/write",
* "repositories/hello-world/metadata/read",
* "repositories/hello-world/metadata/write",
* "gateway/examplecr/config/read",
* "gateway/examplecr/config/write",
* "gateway/examplecr/message/read",
* "gateway/examplecr/message/write",
* ])
* example_registry_token = azure.containerservice.RegistryToken("example",
* name="exampletoken",
* container_registry_name=example_registry.name,
* resource_group_name=example_registry.resource_group_name,
* scope_map_id=example_registry_scope_map.id)
* example_connected_registry = azure.containerservice.ConnectedRegistry("example",
* name="examplecr",
* container_registry_id=example_registry.id,
* sync_token_id=example_registry_token.id)
* ```
* ```csharp
* using System.Collections.Generic;
* using System.Linq;
* using Pulumi;
* using Azure = Pulumi.Azure;
* return await Deployment.RunAsync(() =>
* {
* var example = new Azure.Core.ResourceGroup("example", new()
* {
* Name = "example-rg",
* Location = "West Europe",
* });
* var exampleRegistry = new Azure.ContainerService.Registry("example", new()
* {
* Name = "exampleacr",
* ResourceGroupName = example.Name,
* Location = example.Location,
* Sku = "Premium",
* DataEndpointEnabled = true,
* });
* var exampleRegistryScopeMap = new Azure.ContainerService.RegistryScopeMap("example", new()
* {
* Name = "examplescopemap",
* ContainerRegistryName = exampleRegistry.Name,
* ResourceGroupName = exampleRegistry.ResourceGroupName,
* Actions = new[]
* {
* "repositories/hello-world/content/delete",
* "repositories/hello-world/content/read",
* "repositories/hello-world/content/write",
* "repositories/hello-world/metadata/read",
* "repositories/hello-world/metadata/write",
* "gateway/examplecr/config/read",
* "gateway/examplecr/config/write",
* "gateway/examplecr/message/read",
* "gateway/examplecr/message/write",
* },
* });
* var exampleRegistryToken = new Azure.ContainerService.RegistryToken("example", new()
* {
* Name = "exampletoken",
* ContainerRegistryName = exampleRegistry.Name,
* ResourceGroupName = exampleRegistry.ResourceGroupName,
* ScopeMapId = exampleRegistryScopeMap.Id,
* });
* var exampleConnectedRegistry = new Azure.ContainerService.ConnectedRegistry("example", new()
* {
* Name = "examplecr",
* ContainerRegistryId = exampleRegistry.Id,
* SyncTokenId = exampleRegistryToken.Id,
* });
* });
* ```
* ```go
* package main
* import (
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/containerservice"
* "github.com/pulumi/pulumi-azure/sdk/v5/go/azure/core"
* "github.com/pulumi/pulumi/sdk/v3/go/pulumi"
* )
* func main() {
* pulumi.Run(func(ctx *pulumi.Context) error {
* example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
* Name: pulumi.String("example-rg"),
* Location: pulumi.String("West Europe"),
* })
* if err != nil {
* return err
* }
* exampleRegistry, err := containerservice.NewRegistry(ctx, "example", &containerservice.RegistryArgs{
* Name: pulumi.String("exampleacr"),
* ResourceGroupName: example.Name,
* Location: example.Location,
* Sku: pulumi.String("Premium"),
* DataEndpointEnabled: pulumi.Bool(true),
* })
* if err != nil {
* return err
* }
* exampleRegistryScopeMap, err := containerservice.NewRegistryScopeMap(ctx, "example", &containerservice.RegistryScopeMapArgs{
* Name: pulumi.String("examplescopemap"),
* ContainerRegistryName: exampleRegistry.Name,
* ResourceGroupName: exampleRegistry.ResourceGroupName,
* Actions: pulumi.StringArray{
* pulumi.String("repositories/hello-world/content/delete"),
* pulumi.String("repositories/hello-world/content/read"),
* pulumi.String("repositories/hello-world/content/write"),
* pulumi.String("repositories/hello-world/metadata/read"),
* pulumi.String("repositories/hello-world/metadata/write"),
* pulumi.String("gateway/examplecr/config/read"),
* pulumi.String("gateway/examplecr/config/write"),
* pulumi.String("gateway/examplecr/message/read"),
* pulumi.String("gateway/examplecr/message/write"),
* },
* })
* if err != nil {
* return err
* }
* exampleRegistryToken, err := containerservice.NewRegistryToken(ctx, "example", &containerservice.RegistryTokenArgs{
* Name: pulumi.String("exampletoken"),
* ContainerRegistryName: exampleRegistry.Name,
* ResourceGroupName: exampleRegistry.ResourceGroupName,
* ScopeMapId: exampleRegistryScopeMap.ID(),
* })
* if err != nil {
* return err
* }
* _, err = containerservice.NewConnectedRegistry(ctx, "example", &containerservice.ConnectedRegistryArgs{
* Name: pulumi.String("examplecr"),
* ContainerRegistryId: exampleRegistry.ID(),
* SyncTokenId: exampleRegistryToken.ID(),
* })
* 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.azure.core.ResourceGroup;
* import com.pulumi.azure.core.ResourceGroupArgs;
* import com.pulumi.azure.containerservice.Registry;
* import com.pulumi.azure.containerservice.RegistryArgs;
* import com.pulumi.azure.containerservice.RegistryScopeMap;
* import com.pulumi.azure.containerservice.RegistryScopeMapArgs;
* import com.pulumi.azure.containerservice.RegistryToken;
* import com.pulumi.azure.containerservice.RegistryTokenArgs;
* import com.pulumi.azure.containerservice.ConnectedRegistry;
* import com.pulumi.azure.containerservice.ConnectedRegistryArgs;
* 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) {
* var example = new ResourceGroup("example", ResourceGroupArgs.builder()
* .name("example-rg")
* .location("West Europe")
* .build());
* var exampleRegistry = new Registry("exampleRegistry", RegistryArgs.builder()
* .name("exampleacr")
* .resourceGroupName(example.name())
* .location(example.location())
* .sku("Premium")
* .dataEndpointEnabled(true)
* .build());
* var exampleRegistryScopeMap = new RegistryScopeMap("exampleRegistryScopeMap", RegistryScopeMapArgs.builder()
* .name("examplescopemap")
* .containerRegistryName(exampleRegistry.name())
* .resourceGroupName(exampleRegistry.resourceGroupName())
* .actions(
* "repositories/hello-world/content/delete",
* "repositories/hello-world/content/read",
* "repositories/hello-world/content/write",
* "repositories/hello-world/metadata/read",
* "repositories/hello-world/metadata/write",
* "gateway/examplecr/config/read",
* "gateway/examplecr/config/write",
* "gateway/examplecr/message/read",
* "gateway/examplecr/message/write")
* .build());
* var exampleRegistryToken = new RegistryToken("exampleRegistryToken", RegistryTokenArgs.builder()
* .name("exampletoken")
* .containerRegistryName(exampleRegistry.name())
* .resourceGroupName(exampleRegistry.resourceGroupName())
* .scopeMapId(exampleRegistryScopeMap.id())
* .build());
* var exampleConnectedRegistry = new ConnectedRegistry("exampleConnectedRegistry", ConnectedRegistryArgs.builder()
* .name("examplecr")
* .containerRegistryId(exampleRegistry.id())
* .syncTokenId(exampleRegistryToken.id())
* .build());
* }
* }
* ```
* ```yaml
* resources:
* example:
* type: azure:core:ResourceGroup
* properties:
* name: example-rg
* location: West Europe
* exampleRegistry:
* type: azure:containerservice:Registry
* name: example
* properties:
* name: exampleacr
* resourceGroupName: ${example.name}
* location: ${example.location}
* sku: Premium
* dataEndpointEnabled: true
* exampleRegistryScopeMap:
* type: azure:containerservice:RegistryScopeMap
* name: example
* properties:
* name: examplescopemap
* containerRegistryName: ${exampleRegistry.name}
* resourceGroupName: ${exampleRegistry.resourceGroupName}
* actions:
* - repositories/hello-world/content/delete
* - repositories/hello-world/content/read
* - repositories/hello-world/content/write
* - repositories/hello-world/metadata/read
* - repositories/hello-world/metadata/write
* - gateway/examplecr/config/read
* - gateway/examplecr/config/write
* - gateway/examplecr/message/read
* - gateway/examplecr/message/write
* exampleRegistryToken:
* type: azure:containerservice:RegistryToken
* name: example
* properties:
* name: exampletoken
* containerRegistryName: ${exampleRegistry.name}
* resourceGroupName: ${exampleRegistry.resourceGroupName}
* scopeMapId: ${exampleRegistryScopeMap.id}
* exampleConnectedRegistry:
* type: azure:containerservice:ConnectedRegistry
* name: example
* properties:
* name: examplecr
* containerRegistryId: ${exampleRegistry.id}
* syncTokenId: ${exampleRegistryToken.id}
* ```
*
* ## Import
* Container Connected Registries can be imported using the `resource id`, e.g.
* ```sh
* $ pulumi import azure:containerservice/connectedRegistry:ConnectedRegistry example /subscriptions/12345678-1234-9876-4563-123456789012/resourceGroups/group1/providers/Microsoft.ContainerRegistry/registries/registry1/connectedRegistries/registry1
* ```
*/
public class ConnectedRegistry internal constructor(
override val javaResource: com.pulumi.azure.containerservice.ConnectedRegistry,
) : KotlinCustomResource(javaResource, ConnectedRegistryMapper) {
/**
* Should the log auditing be enabled?
*/
public val auditLogEnabled: Output?
get() = javaResource.auditLogEnabled().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* Specifies a list of IDs of Container Registry Tokens, which are meant to be used by the clients to connect to the Connected Registry.
*/
public val clientTokenIds: Output>?
get() = javaResource.clientTokenIds().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 -> args0 })
}).orElse(null)
})
/**
* The ID of the Container Registry that this Connected Registry will reside in. Changing this forces a new Container Connected Registry to be created.
* > If `parent_registry_id` is not specified, the Connected Registry will be connected to the Container Registry identified by `container_registry_id`.
*/
public val containerRegistryId: Output
get() = javaResource.containerRegistryId().applyValue({ args0 -> args0 })
/**
* The verbosity of the logs. Possible values are `None`, `Debug`, `Information`, `Warning` and `Error`. Defaults to `None`.
*/
public val logLevel: Output?
get() = javaResource.logLevel().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* The mode of the Connected Registry. Possible values are `Mirror`, `ReadOnly`, `ReadWrite` and `Registry`. Changing this forces a new Container Connected Registry to be created. Defaults to `ReadWrite`.
*/
public val mode: Output?
get() = javaResource.mode().applyValue({ args0 -> args0.map({ args0 -> args0 }).orElse(null) })
/**
* The name which should be used for this Container Connected Registry. Changing this forces a new Container Connected Registry to be created.
*/
public val name: Output
get() = javaResource.name().applyValue({ args0 -> args0 })
/**
* One or more `notification` blocks as defined below.
*/
public val notifications: Output>?
get() = javaResource.notifications().applyValue({ args0 ->
args0.map({ args0 ->
args0.map({ args0 -> args0.let({ args0 -> toKotlin(args0) }) })
}).orElse(null)
})
/**
* The ID of the parent registry. This can be either a Container Registry ID or a Connected Registry ID. Changing this forces a new Container Connected Registry to be created.
*/
public val parentRegistryId: Output?
get() = javaResource.parentRegistryId().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The period of time (in form of ISO8601) for which a message is available to sync before it is expired. Allowed range is from `P1D` to `P90D`. Defaults to `P1D`.
*/
public val syncMessageTtl: Output?
get() = javaResource.syncMessageTtl().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The cron expression indicating the schedule that the Connected Registry will sync with its parent. Defaults to `* * * * *`.
*/
public val syncSchedule: Output?
get() = javaResource.syncSchedule().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
/**
* The ID of the Container Registry Token which is used for synchronizing the Connected Registry. Changing this forces a new Container Connected Registry to be created.
*/
public val syncTokenId: Output
get() = javaResource.syncTokenId().applyValue({ args0 -> args0 })
/**
* The time window (in form of ISO8601) during which sync is enabled for each schedule occurrence. Allowed range is from `PT3H` to `P7D`.
*/
public val syncWindow: Output?
get() = javaResource.syncWindow().applyValue({ args0 ->
args0.map({ args0 ->
args0
}).orElse(null)
})
}
public object ConnectedRegistryMapper : ResourceMapper {
override fun supportsMappingOfType(javaResource: Resource): Boolean =
com.pulumi.azure.containerservice.ConnectedRegistry::class == javaResource::class
override fun map(javaResource: Resource): ConnectedRegistry = ConnectedRegistry(
javaResource as
com.pulumi.azure.containerservice.ConnectedRegistry,
)
}
/**
* @see [ConnectedRegistry].
* @param name The _unique_ name of the resulting resource.
* @param block Builder for [ConnectedRegistry].
*/
public suspend fun connectedRegistry(
name: String,
block: suspend ConnectedRegistryResourceBuilder.() -> Unit,
): ConnectedRegistry {
val builder = ConnectedRegistryResourceBuilder()
builder.name(name)
block(builder)
return builder.build()
}
/**
* @see [ConnectedRegistry].
* @param name The _unique_ name of the resulting resource.
*/
public fun connectedRegistry(name: String): ConnectedRegistry {
val builder = ConnectedRegistryResourceBuilder()
builder.name(name)
return builder.build()
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy