import * as pulumi from "@pulumi/pulumi";
import * as inputs from "../types/input";
import * as outputs from "../types/output";
/**
 * The AWS::GameLift::MatchmakingRuleSet resource creates an Amazon GameLift (GameLift) matchmaking rule set.
 *
 * ## Example Usage
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const matchmakingRuleSetResource = new aws_native.gamelift.MatchmakingRuleSet("matchmakingRuleSetResource", {
 *     name: "MyRuleSet",
 *     ruleSetBody: "{\"name\": \"MyMatchmakingRuleSet\",\"ruleLanguageVersion\": \"1.0\", \"teams\": [{\"name\": \"MyTeam\",\"minPlayers\": 1,\"maxPlayers\": 20}]}",
 * });
 * const matchmakingConfigurationResource = new aws_native.gamelift.MatchmakingConfiguration("matchmakingConfigurationResource", {
 *     name: "MyMatchmakingConfiguration",
 *     acceptanceRequired: true,
 *     acceptanceTimeoutSeconds: 60,
 *     backfillMode: aws_native.gamelift.MatchmakingConfigurationBackfillMode.Manual,
 *     customEventData: "MyCustomEventData",
 *     description: "A basic standalone matchmaking configuration",
 *     flexMatchMode: aws_native.gamelift.MatchmakingConfigurationFlexMatchMode.Standalone,
 *     requestTimeoutSeconds: 100,
 *     ruleSetName: matchmakingRuleSetResource.id,
 * }, {
 *     dependsOn: [matchmakingRuleSetResource],
 * });
 *
 * ```
 * ### Example
 *
 * ```typescript
 * import * as pulumi from "@pulumi/pulumi";
 * import * as aws_native from "@pulumi/aws-native";
 *
 * const matchmakingRuleSet = new aws_native.gamelift.MatchmakingRuleSet("matchmakingRuleSet", {
 *     name: "MyRuleSet",
 *     ruleSetBody: "{\"name\": \"MyMatchmakingRuleSet\",\"ruleLanguageVersion\": \"1.0\", \"teams\": [{\"name\": \"MyTeam\",\"minPlayers\": 1,\"maxPlayers\": 20}]}",
 * });
 *
 * ```
 */
export declare class MatchmakingRuleSet extends pulumi.CustomResource {
    /**
     * Get an existing MatchmakingRuleSet resource's state with the given name, ID, and optional extra
     * properties used to qualify the lookup.
     *
     * @param name The _unique_ name of the resulting resource.
     * @param id The _unique_ provider ID of the resource to lookup.
     * @param opts Optional settings to control the behavior of the CustomResource.
     */
    static get(name: string, id: pulumi.Input<pulumi.ID>, opts?: pulumi.CustomResourceOptions): MatchmakingRuleSet;
    /**
     * Returns true if the given object is an instance of MatchmakingRuleSet.  This is designed to work even
     * when multiple copies of the Pulumi SDK have been loaded into the same process.
     */
    static isInstance(obj: any): obj is MatchmakingRuleSet;
    /**
     * The Amazon Resource Name (ARN) that is assigned to a Amazon GameLift matchmaking rule set resource and uniquely identifies it.
     */
    readonly arn: pulumi.Output<string>;
    /**
     * A time stamp indicating when this data object was created. Format is a number expressed in Unix time as milliseconds.
     */
    readonly creationTime: pulumi.Output<string>;
    /**
     * A unique identifier for the matchmaking rule set.
     */
    readonly name: pulumi.Output<string>;
    /**
     * A collection of matchmaking rules, formatted as a JSON string.
     */
    readonly ruleSetBody: pulumi.Output<string>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    readonly tags: pulumi.Output<outputs.Tag[] | undefined>;
    /**
     * Create a MatchmakingRuleSet resource with the given unique name, arguments, and options.
     *
     * @param name The _unique_ name of the resource.
     * @param args The arguments to use to populate this resource's properties.
     * @param opts A bag of options that control this resource's behavior.
     */
    constructor(name: string, args: MatchmakingRuleSetArgs, opts?: pulumi.CustomResourceOptions);
}
/**
 * The set of arguments for constructing a MatchmakingRuleSet resource.
 */
export interface MatchmakingRuleSetArgs {
    /**
     * A unique identifier for the matchmaking rule set.
     */
    name?: pulumi.Input<string>;
    /**
     * A collection of matchmaking rules, formatted as a JSON string.
     */
    ruleSetBody: pulumi.Input<string>;
    /**
     * An array of key-value pairs to apply to this resource.
     */
    tags?: pulumi.Input<pulumi.Input<inputs.TagArgs>[]>;
}
