github.com/yaegashi/msgraph.go@v0.1.4/beta/ActionSynchronization.go (about)

     1  // Code generated by msgraph.go/gen DO NOT EDIT.
     2  
     3  package msgraph
     4  
     5  import (
     6  	"context"
     7  	"fmt"
     8  	"io/ioutil"
     9  	"net/http"
    10  
    11  	"github.com/yaegashi/msgraph.go/jsonx"
    12  )
    13  
    14  // SynchronizationJobCollectionValidateCredentialsRequestParameter undocumented
    15  type SynchronizationJobCollectionValidateCredentialsRequestParameter struct {
    16  	// ApplicationIdentifier undocumented
    17  	ApplicationIdentifier *string `json:"applicationIdentifier,omitempty"`
    18  	// TemplateID undocumented
    19  	TemplateID *string `json:"templateId,omitempty"`
    20  	// UseSavedCredentials undocumented
    21  	UseSavedCredentials *bool `json:"useSavedCredentials,omitempty"`
    22  	// Credentials undocumented
    23  	Credentials []SynchronizationSecretKeyStringValuePair `json:"credentials,omitempty"`
    24  }
    25  
    26  // SynchronizationJobPauseRequestParameter undocumented
    27  type SynchronizationJobPauseRequestParameter struct {
    28  }
    29  
    30  // SynchronizationJobStartRequestParameter undocumented
    31  type SynchronizationJobStartRequestParameter struct {
    32  }
    33  
    34  // SynchronizationJobStopRequestParameter undocumented
    35  type SynchronizationJobStopRequestParameter struct {
    36  }
    37  
    38  // SynchronizationJobApplyRequestParameter undocumented
    39  type SynchronizationJobApplyRequestParameter struct {
    40  	// ObjectID undocumented
    41  	ObjectID *string `json:"objectId,omitempty"`
    42  	// TypeName undocumented
    43  	TypeName *string `json:"typeName,omitempty"`
    44  	// RuleID undocumented
    45  	RuleID *string `json:"ruleId,omitempty"`
    46  }
    47  
    48  // SynchronizationJobRestartRequestParameter undocumented
    49  type SynchronizationJobRestartRequestParameter struct {
    50  	// Criteria undocumented
    51  	Criteria *SynchronizationJobRestartCriteria `json:"criteria,omitempty"`
    52  }
    53  
    54  // SynchronizationJobValidateCredentialsRequestParameter undocumented
    55  type SynchronizationJobValidateCredentialsRequestParameter struct {
    56  	// ApplicationIdentifier undocumented
    57  	ApplicationIdentifier *string `json:"applicationIdentifier,omitempty"`
    58  	// TemplateID undocumented
    59  	TemplateID *string `json:"templateId,omitempty"`
    60  	// UseSavedCredentials undocumented
    61  	UseSavedCredentials *bool `json:"useSavedCredentials,omitempty"`
    62  	// Credentials undocumented
    63  	Credentials []SynchronizationSecretKeyStringValuePair `json:"credentials,omitempty"`
    64  }
    65  
    66  // SynchronizationSchemaParseExpressionRequestParameter undocumented
    67  type SynchronizationSchemaParseExpressionRequestParameter struct {
    68  	// Expression undocumented
    69  	Expression *string `json:"expression,omitempty"`
    70  	// TestInputObject undocumented
    71  	TestInputObject *ExpressionInputObject `json:"testInputObject,omitempty"`
    72  	// TargetAttributeDefinition undocumented
    73  	TargetAttributeDefinition *AttributeDefinition `json:"targetAttributeDefinition,omitempty"`
    74  }
    75  
    76  // Jobs returns request builder for SynchronizationJob collection
    77  func (b *SynchronizationRequestBuilder) Jobs() *SynchronizationJobsCollectionRequestBuilder {
    78  	bb := &SynchronizationJobsCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    79  	bb.baseURL += "/jobs"
    80  	return bb
    81  }
    82  
    83  // SynchronizationJobsCollectionRequestBuilder is request builder for SynchronizationJob collection
    84  type SynchronizationJobsCollectionRequestBuilder struct{ BaseRequestBuilder }
    85  
    86  // Request returns request for SynchronizationJob collection
    87  func (b *SynchronizationJobsCollectionRequestBuilder) Request() *SynchronizationJobsCollectionRequest {
    88  	return &SynchronizationJobsCollectionRequest{
    89  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
    90  	}
    91  }
    92  
    93  // ID returns request builder for SynchronizationJob item
    94  func (b *SynchronizationJobsCollectionRequestBuilder) ID(id string) *SynchronizationJobRequestBuilder {
    95  	bb := &SynchronizationJobRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
    96  	bb.baseURL += "/" + id
    97  	return bb
    98  }
    99  
   100  // SynchronizationJobsCollectionRequest is request for SynchronizationJob collection
   101  type SynchronizationJobsCollectionRequest struct{ BaseRequest }
   102  
   103  // Paging perfoms paging operation for SynchronizationJob collection
   104  func (r *SynchronizationJobsCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SynchronizationJob, error) {
   105  	req, err := r.NewJSONRequest(method, path, obj)
   106  	if err != nil {
   107  		return nil, err
   108  	}
   109  	if ctx != nil {
   110  		req = req.WithContext(ctx)
   111  	}
   112  	res, err := r.client.Do(req)
   113  	if err != nil {
   114  		return nil, err
   115  	}
   116  	var values []SynchronizationJob
   117  	for {
   118  		if res.StatusCode != http.StatusOK {
   119  			b, _ := ioutil.ReadAll(res.Body)
   120  			res.Body.Close()
   121  			errRes := &ErrorResponse{Response: res}
   122  			err := jsonx.Unmarshal(b, errRes)
   123  			if err != nil {
   124  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   125  			}
   126  			return nil, errRes
   127  		}
   128  		var (
   129  			paging Paging
   130  			value  []SynchronizationJob
   131  		)
   132  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   133  		res.Body.Close()
   134  		if err != nil {
   135  			return nil, err
   136  		}
   137  		err = jsonx.Unmarshal(paging.Value, &value)
   138  		if err != nil {
   139  			return nil, err
   140  		}
   141  		values = append(values, value...)
   142  		if n >= 0 {
   143  			n--
   144  		}
   145  		if n == 0 || len(paging.NextLink) == 0 {
   146  			return values, nil
   147  		}
   148  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   149  		if ctx != nil {
   150  			req = req.WithContext(ctx)
   151  		}
   152  		res, err = r.client.Do(req)
   153  		if err != nil {
   154  			return nil, err
   155  		}
   156  	}
   157  }
   158  
   159  // GetN performs GET request for SynchronizationJob collection, max N pages
   160  func (r *SynchronizationJobsCollectionRequest) GetN(ctx context.Context, n int) ([]SynchronizationJob, error) {
   161  	var query string
   162  	if r.query != nil {
   163  		query = "?" + r.query.Encode()
   164  	}
   165  	return r.Paging(ctx, "GET", query, nil, n)
   166  }
   167  
   168  // Get performs GET request for SynchronizationJob collection
   169  func (r *SynchronizationJobsCollectionRequest) Get(ctx context.Context) ([]SynchronizationJob, error) {
   170  	return r.GetN(ctx, 0)
   171  }
   172  
   173  // Add performs POST request for SynchronizationJob collection
   174  func (r *SynchronizationJobsCollectionRequest) Add(ctx context.Context, reqObj *SynchronizationJob) (resObj *SynchronizationJob, err error) {
   175  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   176  	return
   177  }
   178  
   179  // Templates returns request builder for SynchronizationTemplate collection
   180  func (b *SynchronizationRequestBuilder) Templates() *SynchronizationTemplatesCollectionRequestBuilder {
   181  	bb := &SynchronizationTemplatesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   182  	bb.baseURL += "/templates"
   183  	return bb
   184  }
   185  
   186  // SynchronizationTemplatesCollectionRequestBuilder is request builder for SynchronizationTemplate collection
   187  type SynchronizationTemplatesCollectionRequestBuilder struct{ BaseRequestBuilder }
   188  
   189  // Request returns request for SynchronizationTemplate collection
   190  func (b *SynchronizationTemplatesCollectionRequestBuilder) Request() *SynchronizationTemplatesCollectionRequest {
   191  	return &SynchronizationTemplatesCollectionRequest{
   192  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   193  	}
   194  }
   195  
   196  // ID returns request builder for SynchronizationTemplate item
   197  func (b *SynchronizationTemplatesCollectionRequestBuilder) ID(id string) *SynchronizationTemplateRequestBuilder {
   198  	bb := &SynchronizationTemplateRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   199  	bb.baseURL += "/" + id
   200  	return bb
   201  }
   202  
   203  // SynchronizationTemplatesCollectionRequest is request for SynchronizationTemplate collection
   204  type SynchronizationTemplatesCollectionRequest struct{ BaseRequest }
   205  
   206  // Paging perfoms paging operation for SynchronizationTemplate collection
   207  func (r *SynchronizationTemplatesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]SynchronizationTemplate, error) {
   208  	req, err := r.NewJSONRequest(method, path, obj)
   209  	if err != nil {
   210  		return nil, err
   211  	}
   212  	if ctx != nil {
   213  		req = req.WithContext(ctx)
   214  	}
   215  	res, err := r.client.Do(req)
   216  	if err != nil {
   217  		return nil, err
   218  	}
   219  	var values []SynchronizationTemplate
   220  	for {
   221  		if res.StatusCode != http.StatusOK {
   222  			b, _ := ioutil.ReadAll(res.Body)
   223  			res.Body.Close()
   224  			errRes := &ErrorResponse{Response: res}
   225  			err := jsonx.Unmarshal(b, errRes)
   226  			if err != nil {
   227  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   228  			}
   229  			return nil, errRes
   230  		}
   231  		var (
   232  			paging Paging
   233  			value  []SynchronizationTemplate
   234  		)
   235  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   236  		res.Body.Close()
   237  		if err != nil {
   238  			return nil, err
   239  		}
   240  		err = jsonx.Unmarshal(paging.Value, &value)
   241  		if err != nil {
   242  			return nil, err
   243  		}
   244  		values = append(values, value...)
   245  		if n >= 0 {
   246  			n--
   247  		}
   248  		if n == 0 || len(paging.NextLink) == 0 {
   249  			return values, nil
   250  		}
   251  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   252  		if ctx != nil {
   253  			req = req.WithContext(ctx)
   254  		}
   255  		res, err = r.client.Do(req)
   256  		if err != nil {
   257  			return nil, err
   258  		}
   259  	}
   260  }
   261  
   262  // GetN performs GET request for SynchronizationTemplate collection, max N pages
   263  func (r *SynchronizationTemplatesCollectionRequest) GetN(ctx context.Context, n int) ([]SynchronizationTemplate, error) {
   264  	var query string
   265  	if r.query != nil {
   266  		query = "?" + r.query.Encode()
   267  	}
   268  	return r.Paging(ctx, "GET", query, nil, n)
   269  }
   270  
   271  // Get performs GET request for SynchronizationTemplate collection
   272  func (r *SynchronizationTemplatesCollectionRequest) Get(ctx context.Context) ([]SynchronizationTemplate, error) {
   273  	return r.GetN(ctx, 0)
   274  }
   275  
   276  // Add performs POST request for SynchronizationTemplate collection
   277  func (r *SynchronizationTemplatesCollectionRequest) Add(ctx context.Context, reqObj *SynchronizationTemplate) (resObj *SynchronizationTemplate, err error) {
   278  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   279  	return
   280  }
   281  
   282  // Schema is navigation property
   283  func (b *SynchronizationJobRequestBuilder) Schema() *SynchronizationSchemaRequestBuilder {
   284  	bb := &SynchronizationSchemaRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   285  	bb.baseURL += "/schema"
   286  	return bb
   287  }
   288  
   289  // Directories returns request builder for DirectoryDefinition collection
   290  func (b *SynchronizationSchemaRequestBuilder) Directories() *SynchronizationSchemaDirectoriesCollectionRequestBuilder {
   291  	bb := &SynchronizationSchemaDirectoriesCollectionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   292  	bb.baseURL += "/directories"
   293  	return bb
   294  }
   295  
   296  // SynchronizationSchemaDirectoriesCollectionRequestBuilder is request builder for DirectoryDefinition collection
   297  type SynchronizationSchemaDirectoriesCollectionRequestBuilder struct{ BaseRequestBuilder }
   298  
   299  // Request returns request for DirectoryDefinition collection
   300  func (b *SynchronizationSchemaDirectoriesCollectionRequestBuilder) Request() *SynchronizationSchemaDirectoriesCollectionRequest {
   301  	return &SynchronizationSchemaDirectoriesCollectionRequest{
   302  		BaseRequest: BaseRequest{baseURL: b.baseURL, client: b.client},
   303  	}
   304  }
   305  
   306  // ID returns request builder for DirectoryDefinition item
   307  func (b *SynchronizationSchemaDirectoriesCollectionRequestBuilder) ID(id string) *DirectoryDefinitionRequestBuilder {
   308  	bb := &DirectoryDefinitionRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   309  	bb.baseURL += "/" + id
   310  	return bb
   311  }
   312  
   313  // SynchronizationSchemaDirectoriesCollectionRequest is request for DirectoryDefinition collection
   314  type SynchronizationSchemaDirectoriesCollectionRequest struct{ BaseRequest }
   315  
   316  // Paging perfoms paging operation for DirectoryDefinition collection
   317  func (r *SynchronizationSchemaDirectoriesCollectionRequest) Paging(ctx context.Context, method, path string, obj interface{}, n int) ([]DirectoryDefinition, error) {
   318  	req, err := r.NewJSONRequest(method, path, obj)
   319  	if err != nil {
   320  		return nil, err
   321  	}
   322  	if ctx != nil {
   323  		req = req.WithContext(ctx)
   324  	}
   325  	res, err := r.client.Do(req)
   326  	if err != nil {
   327  		return nil, err
   328  	}
   329  	var values []DirectoryDefinition
   330  	for {
   331  		if res.StatusCode != http.StatusOK {
   332  			b, _ := ioutil.ReadAll(res.Body)
   333  			res.Body.Close()
   334  			errRes := &ErrorResponse{Response: res}
   335  			err := jsonx.Unmarshal(b, errRes)
   336  			if err != nil {
   337  				return nil, fmt.Errorf("%s: %s", res.Status, string(b))
   338  			}
   339  			return nil, errRes
   340  		}
   341  		var (
   342  			paging Paging
   343  			value  []DirectoryDefinition
   344  		)
   345  		err := jsonx.NewDecoder(res.Body).Decode(&paging)
   346  		res.Body.Close()
   347  		if err != nil {
   348  			return nil, err
   349  		}
   350  		err = jsonx.Unmarshal(paging.Value, &value)
   351  		if err != nil {
   352  			return nil, err
   353  		}
   354  		values = append(values, value...)
   355  		if n >= 0 {
   356  			n--
   357  		}
   358  		if n == 0 || len(paging.NextLink) == 0 {
   359  			return values, nil
   360  		}
   361  		req, err = http.NewRequest("GET", paging.NextLink, nil)
   362  		if ctx != nil {
   363  			req = req.WithContext(ctx)
   364  		}
   365  		res, err = r.client.Do(req)
   366  		if err != nil {
   367  			return nil, err
   368  		}
   369  	}
   370  }
   371  
   372  // GetN performs GET request for DirectoryDefinition collection, max N pages
   373  func (r *SynchronizationSchemaDirectoriesCollectionRequest) GetN(ctx context.Context, n int) ([]DirectoryDefinition, error) {
   374  	var query string
   375  	if r.query != nil {
   376  		query = "?" + r.query.Encode()
   377  	}
   378  	return r.Paging(ctx, "GET", query, nil, n)
   379  }
   380  
   381  // Get performs GET request for DirectoryDefinition collection
   382  func (r *SynchronizationSchemaDirectoriesCollectionRequest) Get(ctx context.Context) ([]DirectoryDefinition, error) {
   383  	return r.GetN(ctx, 0)
   384  }
   385  
   386  // Add performs POST request for DirectoryDefinition collection
   387  func (r *SynchronizationSchemaDirectoriesCollectionRequest) Add(ctx context.Context, reqObj *DirectoryDefinition) (resObj *DirectoryDefinition, err error) {
   388  	err = r.JSONRequest(ctx, "POST", "", reqObj, &resObj)
   389  	return
   390  }
   391  
   392  // Schema is navigation property
   393  func (b *SynchronizationTemplateRequestBuilder) Schema() *SynchronizationSchemaRequestBuilder {
   394  	bb := &SynchronizationSchemaRequestBuilder{BaseRequestBuilder: b.BaseRequestBuilder}
   395  	bb.baseURL += "/schema"
   396  	return bb
   397  }