JobStep

class JobStep : KotlinCustomResource

Manages an Elastic Job Step.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
const example = new azure.core.ResourceGroup("example", {
name: "example",
location: "westeurope",
});
const exampleServer = new azure.mssql.Server("example", {
name: "example-server",
location: example.location,
resourceGroupName: example.name,
version: "12.0",
administratorLogin: "4dm1n157r470r",
administratorLoginPassword: "4-v3ry-53cr37-p455w0rd",
});
const exampleDatabase = new azure.mssql.Database("example", {
name: "example-db",
serverId: exampleServer.id,
collation: "SQL_Latin1_General_CP1_CI_AS",
skuName: "S1",
});
const exampleJobAgent = new azure.mssql.JobAgent("example", {
name: "example-job-agent",
location: example.location,
databaseId: exampleDatabase.id,
});
const exampleJobCredential = new azure.mssql.JobCredential("example", {
name: "example-job-credential",
jobAgentId: exampleJobAgent.id,
username: "testusername",
password: "testpassword",
});
const exampleJobTargetGroup = new azure.mssql.JobTargetGroup("example", {
name: "example-target-group",
jobAgentId: exampleJobAgent.id,
jobTargets: [{
serverName: exampleServer.name,
databaseName: exampleDatabase.name,
jobCredentialId: exampleJobCredential.id,
}],
});
const exampleJob = new azure.mssql.Job("example", {
name: "example-job",
jobAgentId: exampleJobAgent.id,
description: "example description",
});
const test = new azure.mssql.JobStep("test", {
name: "example-job-step",
jobId: exampleJob.id,
jobCredentialId: exampleJobCredential.id,
jobTargetGroupId: exampleJobTargetGroup.id,
jobStepIndex: 1,
sqlScript: `IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'Pets')
CREATE TABLE Pets (
Animal NVARCHAR(50),
Name NVARCHAR(50),
);
`,
});
import pulumi
import pulumi_azure as azure
example = azure.core.ResourceGroup("example",
name="example",
location="westeurope")
example_server = azure.mssql.Server("example",
name="example-server",
location=example.location,
resource_group_name=example.name,
version="12.0",
administrator_login="4dm1n157r470r",
administrator_login_password="4-v3ry-53cr37-p455w0rd")
example_database = azure.mssql.Database("example",
name="example-db",
server_id=example_server.id,
collation="SQL_Latin1_General_CP1_CI_AS",
sku_name="S1")
example_job_agent = azure.mssql.JobAgent("example",
name="example-job-agent",
location=example.location,
database_id=example_database.id)
example_job_credential = azure.mssql.JobCredential("example",
name="example-job-credential",
job_agent_id=example_job_agent.id,
username="testusername",
password="testpassword")
example_job_target_group = azure.mssql.JobTargetGroup("example",
name="example-target-group",
job_agent_id=example_job_agent.id,
job_targets=[{
"server_name": example_server.name,
"database_name": example_database.name,
"job_credential_id": example_job_credential.id,
}])
example_job = azure.mssql.Job("example",
name="example-job",
job_agent_id=example_job_agent.id,
description="example description")
test = azure.mssql.JobStep("test",
name="example-job-step",
job_id=example_job.id,
job_credential_id=example_job_credential.id,
job_target_group_id=example_job_target_group.id,
job_step_index=1,
sql_script="""IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'Pets')
CREATE TABLE Pets (
Animal NVARCHAR(50),
Name NVARCHAR(50),
);
""")
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",
Location = "westeurope",
});
var exampleServer = new Azure.MSSql.Server("example", new()
{
Name = "example-server",
Location = example.Location,
ResourceGroupName = example.Name,
Version = "12.0",
AdministratorLogin = "4dm1n157r470r",
AdministratorLoginPassword = "4-v3ry-53cr37-p455w0rd",
});
var exampleDatabase = new Azure.MSSql.Database("example", new()
{
Name = "example-db",
ServerId = exampleServer.Id,
Collation = "SQL_Latin1_General_CP1_CI_AS",
SkuName = "S1",
});
var exampleJobAgent = new Azure.MSSql.JobAgent("example", new()
{
Name = "example-job-agent",
Location = example.Location,
DatabaseId = exampleDatabase.Id,
});
var exampleJobCredential = new Azure.MSSql.JobCredential("example", new()
{
Name = "example-job-credential",
JobAgentId = exampleJobAgent.Id,
Username = "testusername",
Password = "testpassword",
});
var exampleJobTargetGroup = new Azure.MSSql.JobTargetGroup("example", new()
{
Name = "example-target-group",
JobAgentId = exampleJobAgent.Id,
JobTargets = new[]
{
new Azure.MSSql.Inputs.JobTargetGroupJobTargetArgs
{
ServerName = exampleServer.Name,
DatabaseName = exampleDatabase.Name,
JobCredentialId = exampleJobCredential.Id,
},
},
});
var exampleJob = new Azure.MSSql.Job("example", new()
{
Name = "example-job",
JobAgentId = exampleJobAgent.Id,
Description = "example description",
});
var test = new Azure.MSSql.JobStep("test", new()
{
Name = "example-job-step",
JobId = exampleJob.Id,
JobCredentialId = exampleJobCredential.Id,
JobTargetGroupId = exampleJobTargetGroup.Id,
JobStepIndex = 1,
SqlScript = @"IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'Pets')
CREATE TABLE Pets (
Animal NVARCHAR(50),
Name NVARCHAR(50),
);
",
});
});
package main
import (
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/mssql"
"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"),
Location: pulumi.String("westeurope"),
})
if err != nil {
return err
}
exampleServer, err := mssql.NewServer(ctx, "example", &mssql.ServerArgs{
Name: pulumi.String("example-server"),
Location: example.Location,
ResourceGroupName: example.Name,
Version: pulumi.String("12.0"),
AdministratorLogin: pulumi.String("4dm1n157r470r"),
AdministratorLoginPassword: pulumi.String("4-v3ry-53cr37-p455w0rd"),
})
if err != nil {
return err
}
exampleDatabase, err := mssql.NewDatabase(ctx, "example", &mssql.DatabaseArgs{
Name: pulumi.String("example-db"),
ServerId: exampleServer.ID(),
Collation: pulumi.String("SQL_Latin1_General_CP1_CI_AS"),
SkuName: pulumi.String("S1"),
})
if err != nil {
return err
}
exampleJobAgent, err := mssql.NewJobAgent(ctx, "example", &mssql.JobAgentArgs{
Name: pulumi.String("example-job-agent"),
Location: example.Location,
DatabaseId: exampleDatabase.ID(),
})
if err != nil {
return err
}
exampleJobCredential, err := mssql.NewJobCredential(ctx, "example", &mssql.JobCredentialArgs{
Name: pulumi.String("example-job-credential"),
JobAgentId: exampleJobAgent.ID(),
Username: pulumi.String("testusername"),
Password: pulumi.String("testpassword"),
})
if err != nil {
return err
}
exampleJobTargetGroup, err := mssql.NewJobTargetGroup(ctx, "example", &mssql.JobTargetGroupArgs{
Name: pulumi.String("example-target-group"),
JobAgentId: exampleJobAgent.ID(),
JobTargets: mssql.JobTargetGroupJobTargetArray{
&mssql.JobTargetGroupJobTargetArgs{
ServerName: exampleServer.Name,
DatabaseName: exampleDatabase.Name,
JobCredentialId: exampleJobCredential.ID(),
},
},
})
if err != nil {
return err
}
exampleJob, err := mssql.NewJob(ctx, "example", &mssql.JobArgs{
Name: pulumi.String("example-job"),
JobAgentId: exampleJobAgent.ID(),
Description: pulumi.String("example description"),
})
if err != nil {
return err
}
_, err = mssql.NewJobStep(ctx, "test", &mssql.JobStepArgs{
Name: pulumi.String("example-job-step"),
JobId: exampleJob.ID(),
JobCredentialId: exampleJobCredential.ID(),
JobTargetGroupId: exampleJobTargetGroup.ID(),
JobStepIndex: pulumi.Int(1),
SqlScript: pulumi.String(`IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'Pets')
CREATE TABLE Pets (
Animal NVARCHAR(50),
Name NVARCHAR(50),
);
`),
})
if err != nil {
return err
}
return nil
})
}
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.mssql.Server;
import com.pulumi.azure.mssql.ServerArgs;
import com.pulumi.azure.mssql.Database;
import com.pulumi.azure.mssql.DatabaseArgs;
import com.pulumi.azure.mssql.JobAgent;
import com.pulumi.azure.mssql.JobAgentArgs;
import com.pulumi.azure.mssql.JobCredential;
import com.pulumi.azure.mssql.JobCredentialArgs;
import com.pulumi.azure.mssql.JobTargetGroup;
import com.pulumi.azure.mssql.JobTargetGroupArgs;
import com.pulumi.azure.mssql.inputs.JobTargetGroupJobTargetArgs;
import com.pulumi.azure.mssql.Job;
import com.pulumi.azure.mssql.JobArgs;
import com.pulumi.azure.mssql.JobStep;
import com.pulumi.azure.mssql.JobStepArgs;
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")
.location("westeurope")
.build());
var exampleServer = new Server("exampleServer", ServerArgs.builder()
.name("example-server")
.location(example.location())
.resourceGroupName(example.name())
.version("12.0")
.administratorLogin("4dm1n157r470r")
.administratorLoginPassword("4-v3ry-53cr37-p455w0rd")
.build());
var exampleDatabase = new Database("exampleDatabase", DatabaseArgs.builder()
.name("example-db")
.serverId(exampleServer.id())
.collation("SQL_Latin1_General_CP1_CI_AS")
.skuName("S1")
.build());
var exampleJobAgent = new JobAgent("exampleJobAgent", JobAgentArgs.builder()
.name("example-job-agent")
.location(example.location())
.databaseId(exampleDatabase.id())
.build());
var exampleJobCredential = new JobCredential("exampleJobCredential", JobCredentialArgs.builder()
.name("example-job-credential")
.jobAgentId(exampleJobAgent.id())
.username("testusername")
.password("testpassword")
.build());
var exampleJobTargetGroup = new JobTargetGroup("exampleJobTargetGroup", JobTargetGroupArgs.builder()
.name("example-target-group")
.jobAgentId(exampleJobAgent.id())
.jobTargets(JobTargetGroupJobTargetArgs.builder()
.serverName(exampleServer.name())
.databaseName(exampleDatabase.name())
.jobCredentialId(exampleJobCredential.id())
.build())
.build());
var exampleJob = new Job("exampleJob", JobArgs.builder()
.name("example-job")
.jobAgentId(exampleJobAgent.id())
.description("example description")
.build());
var test = new JobStep("test", JobStepArgs.builder()
.name("example-job-step")
.jobId(exampleJob.id())
.jobCredentialId(exampleJobCredential.id())
.jobTargetGroupId(exampleJobTargetGroup.id())
.jobStepIndex(1)
.sqlScript("""
IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'Pets')
CREATE TABLE Pets (
Animal NVARCHAR(50),
Name NVARCHAR(50),
);
""")
.build());
}
}
resources:
example:
type: azure:core:ResourceGroup
properties:
name: example
location: westeurope
exampleServer:
type: azure:mssql:Server
name: example
properties:
name: example-server
location: ${example.location}
resourceGroupName: ${example.name}
version: '12.0'
administratorLogin: 4dm1n157r470r
administratorLoginPassword: 4-v3ry-53cr37-p455w0rd
exampleDatabase:
type: azure:mssql:Database
name: example
properties:
name: example-db
serverId: ${exampleServer.id}
collation: SQL_Latin1_General_CP1_CI_AS
skuName: S1
exampleJobAgent:
type: azure:mssql:JobAgent
name: example
properties:
name: example-job-agent
location: ${example.location}
databaseId: ${exampleDatabase.id}
exampleJobCredential:
type: azure:mssql:JobCredential
name: example
properties:
name: example-job-credential
jobAgentId: ${exampleJobAgent.id}
username: testusername
password: testpassword
exampleJobTargetGroup:
type: azure:mssql:JobTargetGroup
name: example
properties:
name: example-target-group
jobAgentId: ${exampleJobAgent.id}
jobTargets:
- serverName: ${exampleServer.name}
databaseName: ${exampleDatabase.name}
jobCredentialId: ${exampleJobCredential.id}
exampleJob:
type: azure:mssql:Job
name: example
properties:
name: example-job
jobAgentId: ${exampleJobAgent.id}
description: example description
test:
type: azure:mssql:JobStep
properties:
name: example-job-step
jobId: ${exampleJob.id}
jobCredentialId: ${exampleJobCredential.id}
jobTargetGroupId: ${exampleJobTargetGroup.id}
jobStepIndex: 1
sqlScript: |
IF NOT EXISTS (SELECT * FROM sys.objects WHERE [name] = N'Pets')
CREATE TABLE Pets (
Animal NVARCHAR(50),
Name NVARCHAR(50),
);

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.Sql: 2023-08-01-preview

Import

Elastic Job Steps can be imported using the resource id, e.g.

$ pulumi import azure:mssql/jobStep:JobStep example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Sql/servers/myserver1/jobAgents/myjobagent1/jobs/myjob1/steps/myjobstep1

Properties

Link copied to clipboard
val id: Output<String>
Link copied to clipboard

The initial retry interval in seconds. Defaults to 1.

Link copied to clipboard
val jobCredentialId: Output<String>

The ID of the Elastic Job Credential to use when executing this Elastic Job Step.

Link copied to clipboard
val jobId: Output<String>

The ID of the Elastic Job. Changing this forces a new Elastic Job Step to be created.

Link copied to clipboard
val jobStepIndex: Output<Int>

The index at which to insert this Elastic Job Step into the Elastic Job.

Link copied to clipboard

The ID of the Elastic Job Target Group.

Link copied to clipboard

The maximum retry interval in seconds. Defaults to 120.

Link copied to clipboard
val name: Output<String>

The name which should be used for this Elastic Job Step. Changing this forces a new Elastic Job Step to be created.

Link copied to clipboard

An output_target block as defined below.

Link copied to clipboard
val pulumiChildResources: Set<KotlinResource>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val retryAttempts: Output<Int>?

The number of retry attempts. Defaults to 10.

Link copied to clipboard

The multiplier for time between retries. Defaults to 2.

Link copied to clipboard
val sqlScript: Output<String>

The T-SQL script to be executed by this Elastic Job Step.

Link copied to clipboard
val timeoutSeconds: Output<Int>?

The execution timeout in seconds for this Elastic Job Step. Defaults to 43200.

Link copied to clipboard
val urn: Output<String>