# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'GetJobDefinitionResult',
    'AwaitableGetJobDefinitionResult',
    'get_job_definition',
    'get_job_definition_output',
]

@pulumi.output_type
class GetJobDefinitionResult:
    def __init__(__self__, container_properties=None, id=None, node_properties=None, parameters=None, platform_capabilities=None, propagate_tags=None, retry_strategy=None, scheduling_priority=None, timeout=None, type=None):
        if container_properties and not isinstance(container_properties, dict):
            raise TypeError("Expected argument 'container_properties' to be a dict")
        pulumi.set(__self__, "container_properties", container_properties)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if node_properties and not isinstance(node_properties, dict):
            raise TypeError("Expected argument 'node_properties' to be a dict")
        pulumi.set(__self__, "node_properties", node_properties)
        if parameters and not isinstance(parameters, dict):
            raise TypeError("Expected argument 'parameters' to be a dict")
        pulumi.set(__self__, "parameters", parameters)
        if platform_capabilities and not isinstance(platform_capabilities, list):
            raise TypeError("Expected argument 'platform_capabilities' to be a list")
        pulumi.set(__self__, "platform_capabilities", platform_capabilities)
        if propagate_tags and not isinstance(propagate_tags, bool):
            raise TypeError("Expected argument 'propagate_tags' to be a bool")
        pulumi.set(__self__, "propagate_tags", propagate_tags)
        if retry_strategy and not isinstance(retry_strategy, dict):
            raise TypeError("Expected argument 'retry_strategy' to be a dict")
        pulumi.set(__self__, "retry_strategy", retry_strategy)
        if scheduling_priority and not isinstance(scheduling_priority, int):
            raise TypeError("Expected argument 'scheduling_priority' to be a int")
        pulumi.set(__self__, "scheduling_priority", scheduling_priority)
        if timeout and not isinstance(timeout, dict):
            raise TypeError("Expected argument 'timeout' to be a dict")
        pulumi.set(__self__, "timeout", timeout)
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="containerProperties")
    def container_properties(self) -> Optional['outputs.JobDefinitionContainerProperties']:
        return pulumi.get(self, "container_properties")

    @property
    @pulumi.getter
    def id(self) -> Optional[str]:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="nodeProperties")
    def node_properties(self) -> Optional['outputs.JobDefinitionNodeProperties']:
        return pulumi.get(self, "node_properties")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Any]:
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="platformCapabilities")
    def platform_capabilities(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "platform_capabilities")

    @property
    @pulumi.getter(name="propagateTags")
    def propagate_tags(self) -> Optional[bool]:
        return pulumi.get(self, "propagate_tags")

    @property
    @pulumi.getter(name="retryStrategy")
    def retry_strategy(self) -> Optional['outputs.JobDefinitionRetryStrategy']:
        return pulumi.get(self, "retry_strategy")

    @property
    @pulumi.getter(name="schedulingPriority")
    def scheduling_priority(self) -> Optional[int]:
        return pulumi.get(self, "scheduling_priority")

    @property
    @pulumi.getter
    def timeout(self) -> Optional['outputs.JobDefinitionTimeout']:
        return pulumi.get(self, "timeout")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        return pulumi.get(self, "type")


class AwaitableGetJobDefinitionResult(GetJobDefinitionResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetJobDefinitionResult(
            container_properties=self.container_properties,
            id=self.id,
            node_properties=self.node_properties,
            parameters=self.parameters,
            platform_capabilities=self.platform_capabilities,
            propagate_tags=self.propagate_tags,
            retry_strategy=self.retry_strategy,
            scheduling_priority=self.scheduling_priority,
            timeout=self.timeout,
            type=self.type)


def get_job_definition(id: Optional[str] = None,
                       opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetJobDefinitionResult:
    """
    Resource Type definition for AWS::Batch::JobDefinition
    """
    __args__ = dict()
    __args__['id'] = id
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('aws-native:batch:getJobDefinition', __args__, opts=opts, typ=GetJobDefinitionResult).value

    return AwaitableGetJobDefinitionResult(
        container_properties=__ret__.container_properties,
        id=__ret__.id,
        node_properties=__ret__.node_properties,
        parameters=__ret__.parameters,
        platform_capabilities=__ret__.platform_capabilities,
        propagate_tags=__ret__.propagate_tags,
        retry_strategy=__ret__.retry_strategy,
        scheduling_priority=__ret__.scheduling_priority,
        timeout=__ret__.timeout,
        type=__ret__.type)


@_utilities.lift_output_func(get_job_definition)
def get_job_definition_output(id: Optional[pulumi.Input[str]] = None,
                              opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetJobDefinitionResult]:
    """
    Resource Type definition for AWS::Batch::JobDefinition
    """
    ...

# coding=utf-8
# *** WARNING: this file was generated by the Pulumi SDK Generator. ***
# *** Do not edit by hand unless you're certain you know what you are doing! ***

import warnings
import pulumi
import pulumi.runtime
from typing import Any, Mapping, Optional, Sequence, Union, overload
from .. import _utilities
from . import outputs

__all__ = [
    'GetJobDefinitionResult',
    'AwaitableGetJobDefinitionResult',
    'get_job_definition',
    'get_job_definition_output',
]

@pulumi.output_type
class GetJobDefinitionResult:
    def __init__(__self__, container_properties=None, id=None, node_properties=None, parameters=None, platform_capabilities=None, propagate_tags=None, retry_strategy=None, scheduling_priority=None, timeout=None, type=None):
        if container_properties and not isinstance(container_properties, dict):
            raise TypeError("Expected argument 'container_properties' to be a dict")
        pulumi.set(__self__, "container_properties", container_properties)
        if id and not isinstance(id, str):
            raise TypeError("Expected argument 'id' to be a str")
        pulumi.set(__self__, "id", id)
        if node_properties and not isinstance(node_properties, dict):
            raise TypeError("Expected argument 'node_properties' to be a dict")
        pulumi.set(__self__, "node_properties", node_properties)
        if parameters and not isinstance(parameters, dict):
            raise TypeError("Expected argument 'parameters' to be a dict")
        pulumi.set(__self__, "parameters", parameters)
        if platform_capabilities and not isinstance(platform_capabilities, list):
            raise TypeError("Expected argument 'platform_capabilities' to be a list")
        pulumi.set(__self__, "platform_capabilities", platform_capabilities)
        if propagate_tags and not isinstance(propagate_tags, bool):
            raise TypeError("Expected argument 'propagate_tags' to be a bool")
        pulumi.set(__self__, "propagate_tags", propagate_tags)
        if retry_strategy and not isinstance(retry_strategy, dict):
            raise TypeError("Expected argument 'retry_strategy' to be a dict")
        pulumi.set(__self__, "retry_strategy", retry_strategy)
        if scheduling_priority and not isinstance(scheduling_priority, int):
            raise TypeError("Expected argument 'scheduling_priority' to be a int")
        pulumi.set(__self__, "scheduling_priority", scheduling_priority)
        if timeout and not isinstance(timeout, dict):
            raise TypeError("Expected argument 'timeout' to be a dict")
        pulumi.set(__self__, "timeout", timeout)
        if type and not isinstance(type, str):
            raise TypeError("Expected argument 'type' to be a str")
        pulumi.set(__self__, "type", type)

    @property
    @pulumi.getter(name="containerProperties")
    def container_properties(self) -> Optional['outputs.JobDefinitionContainerProperties']:
        return pulumi.get(self, "container_properties")

    @property
    @pulumi.getter
    def id(self) -> Optional[str]:
        return pulumi.get(self, "id")

    @property
    @pulumi.getter(name="nodeProperties")
    def node_properties(self) -> Optional['outputs.JobDefinitionNodeProperties']:
        return pulumi.get(self, "node_properties")

    @property
    @pulumi.getter
    def parameters(self) -> Optional[Any]:
        return pulumi.get(self, "parameters")

    @property
    @pulumi.getter(name="platformCapabilities")
    def platform_capabilities(self) -> Optional[Sequence[str]]:
        return pulumi.get(self, "platform_capabilities")

    @property
    @pulumi.getter(name="propagateTags")
    def propagate_tags(self) -> Optional[bool]:
        return pulumi.get(self, "propagate_tags")

    @property
    @pulumi.getter(name="retryStrategy")
    def retry_strategy(self) -> Optional['outputs.JobDefinitionRetryStrategy']:
        return pulumi.get(self, "retry_strategy")

    @property
    @pulumi.getter(name="schedulingPriority")
    def scheduling_priority(self) -> Optional[int]:
        return pulumi.get(self, "scheduling_priority")

    @property
    @pulumi.getter
    def timeout(self) -> Optional['outputs.JobDefinitionTimeout']:
        return pulumi.get(self, "timeout")

    @property
    @pulumi.getter
    def type(self) -> Optional[str]:
        return pulumi.get(self, "type")


class AwaitableGetJobDefinitionResult(GetJobDefinitionResult):
    # pylint: disable=using-constant-test
    def __await__(self):
        if False:
            yield self
        return GetJobDefinitionResult(
            container_properties=self.container_properties,
            id=self.id,
            node_properties=self.node_properties,
            parameters=self.parameters,
            platform_capabilities=self.platform_capabilities,
            propagate_tags=self.propagate_tags,
            retry_strategy=self.retry_strategy,
            scheduling_priority=self.scheduling_priority,
            timeout=self.timeout,
            type=self.type)


def get_job_definition(id: Optional[str] = None,
                       opts: Optional[pulumi.InvokeOptions] = None) -> AwaitableGetJobDefinitionResult:
    """
    Resource Type definition for AWS::Batch::JobDefinition
    """
    __args__ = dict()
    __args__['id'] = id
    if opts is None:
        opts = pulumi.InvokeOptions()
    if opts.version is None:
        opts.version = _utilities.get_version()
    __ret__ = pulumi.runtime.invoke('aws-native:batch:getJobDefinition', __args__, opts=opts, typ=GetJobDefinitionResult).value

    return AwaitableGetJobDefinitionResult(
        container_properties=__ret__.container_properties,
        id=__ret__.id,
        node_properties=__ret__.node_properties,
        parameters=__ret__.parameters,
        platform_capabilities=__ret__.platform_capabilities,
        propagate_tags=__ret__.propagate_tags,
        retry_strategy=__ret__.retry_strategy,
        scheduling_priority=__ret__.scheduling_priority,
        timeout=__ret__.timeout,
        type=__ret__.type)


@_utilities.lift_output_func(get_job_definition)
def get_job_definition_output(id: Optional[pulumi.Input[str]] = None,
                              opts: Optional[pulumi.InvokeOptions] = None) -> pulumi.Output[GetJobDefinitionResult]:
    """
    Resource Type definition for AWS::Batch::JobDefinition
    """
    ...

# coding=utf-8 # *** WARNING: this file was generated by the Pulumi SDK Generator. *** # *** Do not edit by hand unless you're certain you know what you are doing! *** # pylint: disable=using-constant-test Resource Type definition for AWS::Batch::JobDefinition Resource Type definition for AWS::Batch::JobDefinition