1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274
|
// Code generated by smithy-go-codegen DO NOT EDIT.
package mturk
import (
"context"
"fmt"
awsmiddleware "github.com/aws/aws-sdk-go-v2/aws/middleware"
"github.com/aws/aws-sdk-go-v2/service/mturk/types"
"github.com/aws/smithy-go/middleware"
smithyhttp "github.com/aws/smithy-go/transport/http"
)
// The CreateHIT operation creates a new Human Intelligence Task (HIT). The new
// HIT is made available for Workers to find and accept on the Amazon Mechanical
// Turk website.
//
// This operation allows you to specify a new HIT by passing in values for the
// properties of the HIT, such as its title, reward amount and number of
// assignments. When you pass these values to CreateHIT , a new HIT is created for
// you, with a new HITTypeID . The HITTypeID can be used to create additional HITs
// in the future without needing to specify common parameters such as the title,
// description and reward amount each time.
//
// An alternative way to create HITs is to first generate a HITTypeID using the
// CreateHITType operation and then call the CreateHITWithHITType operation. This
// is the recommended best practice for Requesters who are creating large numbers
// of HITs.
//
// CreateHIT also supports several ways to provide question data: by providing a
// value for the Question parameter that fully specifies the contents of the HIT,
// or by providing a HitLayoutId and associated HitLayoutParameters .
//
// If a HIT is created with 10 or more maximum assignments, there is an additional
// fee. For more information, see [Amazon Mechanical Turk Pricing].
//
// [Amazon Mechanical Turk Pricing]: https://requester.mturk.com/pricing
func (c *Client) CreateHIT(ctx context.Context, params *CreateHITInput, optFns ...func(*Options)) (*CreateHITOutput, error) {
if params == nil {
params = &CreateHITInput{}
}
result, metadata, err := c.invokeOperation(ctx, "CreateHIT", params, optFns, c.addOperationCreateHITMiddlewares)
if err != nil {
return nil, err
}
out := result.(*CreateHITOutput)
out.ResultMetadata = metadata
return out, nil
}
type CreateHITInput struct {
// The amount of time, in seconds, that a Worker has to complete the HIT after
// accepting it. If a Worker does not complete the assignment within the specified
// duration, the assignment is considered abandoned. If the HIT is still active
// (that is, its lifetime has not elapsed), the assignment becomes available for
// other users to find and accept.
//
// This member is required.
AssignmentDurationInSeconds *int64
// A general description of the HIT. A description includes detailed information
// about the kind of task the HIT contains. On the Amazon Mechanical Turk web site,
// the HIT description appears in the expanded view of search results, and in the
// HIT and assignment screens. A good description gives the user enough information
// to evaluate the HIT before accepting it.
//
// This member is required.
Description *string
// An amount of time, in seconds, after which the HIT is no longer available for
// users to accept. After the lifetime of the HIT elapses, the HIT no longer
// appears in HIT searches, even if not all of the assignments for the HIT have
// been accepted.
//
// This member is required.
LifetimeInSeconds *int64
// The amount of money the Requester will pay a Worker for successfully
// completing the HIT.
//
// This member is required.
Reward *string
// The title of the HIT. A title should be short and descriptive about the kind
// of task the HIT contains. On the Amazon Mechanical Turk web site, the HIT title
// appears in search results, and everywhere the HIT is mentioned.
//
// This member is required.
Title *string
// The Assignment-level Review Policy applies to the assignments under the HIT.
// You can specify for Mechanical Turk to take various actions based on the policy.
AssignmentReviewPolicy *types.ReviewPolicy
// The number of seconds after an assignment for the HIT has been submitted,
// after which the assignment is considered Approved automatically unless the
// Requester explicitly rejects it.
AutoApprovalDelayInSeconds *int64
// The HITLayoutId allows you to use a pre-existing HIT design with placeholder
// values and create an additional HIT by providing those values as
// HITLayoutParameters.
//
// Constraints: Either a Question parameter or a HITLayoutId parameter must be
// provided.
HITLayoutId *string
// If the HITLayoutId is provided, any placeholder values must be filled in with
// values using the HITLayoutParameter structure. For more information, see
// HITLayout.
HITLayoutParameters []types.HITLayoutParameter
// The HIT-level Review Policy applies to the HIT. You can specify for Mechanical
// Turk to take various actions based on the policy.
HITReviewPolicy *types.ReviewPolicy
// One or more words or phrases that describe the HIT, separated by commas. These
// words are used in searches to find HITs.
Keywords *string
// The number of times the HIT can be accepted and completed before the HIT
// becomes unavailable.
MaxAssignments *int32
// Conditions that a Worker's Qualifications must meet in order to accept the
// HIT. A HIT can have between zero and ten Qualification requirements. All
// requirements must be met in order for a Worker to accept the HIT. Additionally,
// other actions can be restricted using the ActionsGuarded field on each
// QualificationRequirement structure.
QualificationRequirements []types.QualificationRequirement
// The data the person completing the HIT uses to produce the results.
//
// Constraints: Must be a QuestionForm data structure, an ExternalQuestion data
// structure, or an HTMLQuestion data structure. The XML question data must not be
// larger than 64 kilobytes (65,535 bytes) in size, including whitespace.
//
// Either a Question parameter or a HITLayoutId parameter must be provided.
Question *string
// An arbitrary data field. The RequesterAnnotation parameter lets your
// application attach arbitrary data to the HIT for tracking purposes. For example,
// this parameter could be an identifier internal to the Requester's application
// that corresponds with the HIT.
//
// The RequesterAnnotation parameter for a HIT is only visible to the Requester
// who created the HIT. It is not shown to the Worker, or any other Requester.
//
// The RequesterAnnotation parameter may be different for each HIT you submit. It
// does not affect how your HITs are grouped.
RequesterAnnotation *string
// A unique identifier for this request which allows you to retry the call on
// error without creating duplicate HITs. This is useful in cases such as network
// timeouts where it is unclear whether or not the call succeeded on the server. If
// the HIT already exists in the system from a previous call using the same
// UniqueRequestToken, subsequent calls will return a
// AWS.MechanicalTurk.HitAlreadyExists error with a message containing the HITId.
//
// Note: It is your responsibility to ensure uniqueness of the token. The unique
// token expires after 24 hours. Subsequent calls using the same UniqueRequestToken
// made after the 24 hour limit could create duplicate HITs.
UniqueRequestToken *string
noSmithyDocumentSerde
}
type CreateHITOutput struct {
// Contains the newly created HIT data. For a description of the HIT data
// structure as it appears in responses, see the HIT Data Structure documentation.
HIT *types.HIT
// Metadata pertaining to the operation's result.
ResultMetadata middleware.Metadata
noSmithyDocumentSerde
}
func (c *Client) addOperationCreateHITMiddlewares(stack *middleware.Stack, options Options) (err error) {
if err := stack.Serialize.Add(&setOperationInputMiddleware{}, middleware.After); err != nil {
return err
}
err = stack.Serialize.Add(&awsAwsjson11_serializeOpCreateHIT{}, middleware.After)
if err != nil {
return err
}
err = stack.Deserialize.Add(&awsAwsjson11_deserializeOpCreateHIT{}, middleware.After)
if err != nil {
return err
}
if err := addProtocolFinalizerMiddlewares(stack, options, "CreateHIT"); err != nil {
return fmt.Errorf("add protocol finalizers: %v", err)
}
if err = addlegacyEndpointContextSetter(stack, options); err != nil {
return err
}
if err = addSetLoggerMiddleware(stack, options); err != nil {
return err
}
if err = addClientRequestID(stack); err != nil {
return err
}
if err = addComputeContentLength(stack); err != nil {
return err
}
if err = addResolveEndpointMiddleware(stack, options); err != nil {
return err
}
if err = addComputePayloadSHA256(stack); err != nil {
return err
}
if err = addRetry(stack, options); err != nil {
return err
}
if err = addRawResponseToMetadata(stack); err != nil {
return err
}
if err = addRecordResponseTiming(stack); err != nil {
return err
}
if err = addClientUserAgent(stack, options); err != nil {
return err
}
if err = smithyhttp.AddErrorCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = smithyhttp.AddCloseResponseBodyMiddleware(stack); err != nil {
return err
}
if err = addSetLegacyContextSigningOptionsMiddleware(stack); err != nil {
return err
}
if err = addTimeOffsetBuild(stack, c); err != nil {
return err
}
if err = addUserAgentRetryMode(stack, options); err != nil {
return err
}
if err = addOpCreateHITValidationMiddleware(stack); err != nil {
return err
}
if err = stack.Initialize.Add(newServiceMetadataMiddleware_opCreateHIT(options.Region), middleware.Before); err != nil {
return err
}
if err = addRecursionDetection(stack); err != nil {
return err
}
if err = addRequestIDRetrieverMiddleware(stack); err != nil {
return err
}
if err = addResponseErrorMiddleware(stack); err != nil {
return err
}
if err = addRequestResponseLogging(stack, options); err != nil {
return err
}
if err = addDisableHTTPSMiddleware(stack, options); err != nil {
return err
}
return nil
}
func newServiceMetadataMiddleware_opCreateHIT(region string) *awsmiddleware.RegisterServiceMetadata {
return &awsmiddleware.RegisterServiceMetadata{
Region: region,
ServiceID: ServiceID,
OperationName: "CreateHIT",
}
}
|