def put_pipeline_definition(pipelineId=None, pipelineObjects=None,
    parameterObjects=None, parameterValues=None):
    """
    Adds tasks, schedules, and preconditions to the specified pipeline. You can use PutPipelineDefinition to populate a new pipeline.
    Pipeline object definitions are passed to the PutPipelineDefinition action and returned by the  GetPipelineDefinition action.
    See also: AWS API Documentation
    
    
    :example: response = client.put_pipeline_definition(
        pipelineId='string',
        pipelineObjects=[
            {
                'id': 'string',
                'name': 'string',
                'fields': [
                    {
                        'key': 'string',
                        'stringValue': 'string',
                        'refValue': 'string'
                    },
                ]
            },
        ],
        parameterObjects=[
            {
                'id': 'string',
                'attributes': [
                    {
                        'key': 'string',
                        'stringValue': 'string'
                    },
                ]
            },
        ],
        parameterValues=[
            {
                'id': 'string',
                'stringValue': 'string'
            },
        ]
    )
    
    
    :type pipelineId: string
    :param pipelineId: [REQUIRED]
            The ID of the pipeline.
            

    :type pipelineObjects: list
    :param pipelineObjects: [REQUIRED]
            The objects that define the pipeline. These objects overwrite the existing pipeline definition.
            (dict) --Contains information about a pipeline object. This can be a logical, physical, or physical attempt pipeline object. The complete set of components of a pipeline defines the pipeline.
            id (string) -- [REQUIRED]The ID of the object.
            name (string) -- [REQUIRED]The name of the object.
            fields (list) -- [REQUIRED]Key-value pairs that define the properties of the object.
            (dict) --A key-value pair that describes a property of a pipeline object. The value is specified as either a string value (StringValue ) or a reference to another object (RefValue ) but not as both.
            key (string) -- [REQUIRED]The field identifier.
            stringValue (string) --The field value, expressed as a String.
            refValue (string) --The field value, expressed as the identifier of another object.
            
            
            

    :type parameterObjects: list
    :param parameterObjects: The parameter objects used with the pipeline.
            (dict) --Contains information about a parameter object.
            id (string) -- [REQUIRED]The ID of the parameter object.
            attributes (list) -- [REQUIRED]The attributes of the parameter object.
            (dict) --The attributes allowed or specified with a parameter object.
            key (string) -- [REQUIRED]The field identifier.
            stringValue (string) -- [REQUIRED]The field value, expressed as a String.
            
            
            

    :type parameterValues: list
    :param parameterValues: The parameter values used with the pipeline.
            (dict) --A value or list of parameter values.
            id (string) -- [REQUIRED]The ID of the parameter value.
            stringValue (string) -- [REQUIRED]The field value, expressed as a String.
            
            

    :rtype: dict
    :return: {
        'validationErrors': [
            {
                'id': 'string',
                'errors': [
                    'string',
                ]
            },
        ],
        'validationWarnings': [
            {
                'id': 'string',
                'warnings': [
                    'string',
                ]
            },
        ],
        'errored': True|False
    }
    
    
    :returns: 
    pipelineId (string) -- [REQUIRED]
    The ID of the pipeline.
    
    pipelineObjects (list) -- [REQUIRED]
    The objects that define the pipeline. These objects overwrite the existing pipeline definition.
    
    (dict) --Contains information about a pipeline object. This can be a logical, physical, or physical attempt pipeline object. The complete set of components of a pipeline defines the pipeline.
    
    id (string) -- [REQUIRED]The ID of the object.
    
    name (string) -- [REQUIRED]The name of the object.
    
    fields (list) -- [REQUIRED]Key-value pairs that define the properties of the object.
    
    (dict) --A key-value pair that describes a property of a pipeline object. The value is specified as either a string value (StringValue ) or a reference to another object (RefValue ) but not as both.
    
    key (string) -- [REQUIRED]The field identifier.
    
    stringValue (string) --The field value, expressed as a String.
    
    refValue (string) --The field value, expressed as the identifier of another object.
    
    
    
    
    
    
    
    
    
    parameterObjects (list) -- The parameter objects used with the pipeline.
    
    (dict) --Contains information about a parameter object.
    
    id (string) -- [REQUIRED]The ID of the parameter object.
    
    attributes (list) -- [REQUIRED]The attributes of the parameter object.
    
    (dict) --The attributes allowed or specified with a parameter object.
    
    key (string) -- [REQUIRED]The field identifier.
    
    stringValue (string) -- [REQUIRED]The field value, expressed as a String.
    
    
    
    
    
    
    
    
    
    parameterValues (list) -- The parameter values used with the pipeline.
    
    (dict) --A value or list of parameter values.
    
    id (string) -- [REQUIRED]The ID of the parameter value.
    
    stringValue (string) -- [REQUIRED]The field value, expressed as a String.
    
    
    
    
    
    
    """
    pass
